-
Notifications
You must be signed in to change notification settings - Fork 72
/
types.js
59 lines (53 loc) · 1.66 KB
/
types.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
// @ts-check
/** @import {GenericErrorConstructor, AssertMakeErrorOptions, DetailsToken, StringablePayload} from '../../types.js' */
/**
* @typedef {object} VirtualConsole
* @property {Console['debug']} debug
* @property {Console['log']} log
* @property {Console['info']} info
* @property {Console['warn']} warn
* @property {Console['error']} error
*
* @property {Console['trace']} trace
* @property {Console['dirxml']} dirxml
* @property {Console['group']} group
* @property {Console['groupCollapsed']} groupCollapsed
*
* @property {Console['assert']} assert
* @property {Console['timeLog']} timeLog
*
* @property {Console['clear']} clear
* @property {Console['count']} count
* @property {Console['countReset']} countReset
* @property {Console['dir']} dir
* @property {Console['groupEnd']} groupEnd
*
* @property {Console['table']} table
* @property {Console['time']} time
* @property {Console['timeEnd']} timeEnd
* @property {Console['timeStamp']} timeStamp
*/
/* This is deliberately *not* JSDoc, it is a regular comment.
*
* TODO: We'd like to add the following properties to the above
* VirtualConsole, but they currently cause conflicts where
* some Typescript implementations don't have these properties
* on the Console type.
*
* @property {Console['profile']} profile
* @property {Console['profileEnd']} profileEnd
*/
/**
* @typedef {'debug' | 'log' | 'info' | 'warn' | 'error'} LogSeverity
*/
/**
* @typedef ConsoleFilter
* @property {(severity: LogSeverity) => boolean} canLog
*/
/**
* @callback FilterConsole
* @param {VirtualConsole} baseConsole
* @param {ConsoleFilter} filter
* @param {string} [topic]
* @returns {VirtualConsole}
*/