trace.ts
48 lines
| 1.3 KiB
| video/mp2t
|
TypeScriptLexer
|
|
r59 | import { TraceSource } from "./TraceSource"; | ||
| import { Predicate } from "../interfaces"; | ||||
| export = { | ||||
|
|
r65 | level: 0, | ||
| on(filter: any, cb: any) { | ||||
|
|
r59 | if (arguments.length === 1) { | ||
| cb = filter; | ||||
| filter = undefined; | ||||
| } | ||||
|
|
r115 | let test: Predicate<string> | undefined; | ||
|
|
r59 | if (filter instanceof RegExp) { | ||
| test = chId => filter.test(chId); | ||||
| } else if (filter instanceof Function) { | ||||
| test = filter; | ||||
| } else if (filter) { | ||||
| test = chId => chId === filter; | ||||
| } | ||||
| if (test) { | ||||
| TraceSource.on(source => { | ||||
|
|
r65 | source.level = this.level; | ||
|
|
r115 | if (test && test(source.id)) | ||
|
|
r59 | source.events.on(cb); | ||
| }); | ||||
| } else { | ||||
| TraceSource.on(source => { | ||||
|
|
r65 | source.level = this.level; | ||
|
|
r59 | source.events.on(cb); | ||
| }); | ||||
| } | ||||
| }, | ||||
| load(id: string, require: any, cb: (trace: TraceSource) => void) { | ||||
| if (id) { | ||||
| cb(TraceSource.get(id)); | ||||
| } else if (require.module && require.module.mid) { | ||||
| cb(TraceSource.get(require.module.mid)); | ||||
| } else { | ||||
| require(["module"], (module: { id: any; }) => { | ||||
| cb(TraceSource.get(module && module.id)); | ||||
| }); | ||||
| } | ||||
| }, | ||||
| dynamic: true | ||||
| }; | ||||
