Converter.ts
30 lines
| 904 B
| video/mp2t
|
TypeScriptLexer
|
|
r82 | import { isPrimitive, isNull } from "../safe"; | ||
| export class Converter { | ||||
| static readonly default = new Converter(); | ||||
| convert(value: any, pattern: string) { | ||||
| if (pattern && pattern.toLocaleLowerCase() === "json") { | ||||
| const seen = []; | ||||
| return JSON.stringify(value, (k, v) => { | ||||
| if (!isPrimitive(v)) { | ||||
| const id = seen.indexOf(v); | ||||
| if (id >= 0) | ||||
| return "@ref-" + id; | ||||
| else { | ||||
| seen.push(v); | ||||
| return v; | ||||
| } | ||||
| } else { | ||||
| return v; | ||||
| } | ||||
| }, 2); | ||||
| } else if (isNull(value)) { | ||||
| return ""; | ||||
| } else if (value instanceof Date) { | ||||
| return value.toISOString(); | ||||
| } else { | ||||
| return value.toString(); | ||||
| } | ||||
| } | ||||
| } | ||||
