@mirascript/cli 0.1.87 → 0.1.89

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  // src/index.ts
2
- import { program as program4 } from "@commander-js/extra-typings";
2
+ import { program as program5 } from "@commander-js/extra-typings";
3
3
  import pkg from "#package.json" with { type: "json" };
4
4
 
5
5
  // src/commands/run.ts
@@ -28,13 +28,23 @@ import {
28
28
  // src/utils/color.ts
29
29
  import supportsColor from "supports-color";
30
30
  var noColor = !supportsColor.stdout;
31
+ function format(text2, style) {
32
+ if (style && !noColor) {
33
+ return style.open + text2 + style.close;
34
+ } else {
35
+ return text2;
36
+ }
37
+ }
38
+ function write(text2, style) {
39
+ process.stdout.write(format(text2, style));
40
+ }
31
41
 
32
42
  // src/utils/print.ts
33
43
  var options = {
34
44
  maxDepth: 3,
35
- serializeNil: noColor ? void 0 : () => styles.gray.open + serializeNil() + styles.gray.close,
36
- serializeBoolean: noColor ? void 0 : (v) => styles.blue.open + serializeBoolean(v) + styles.blue.close,
37
- serializeNumber: noColor ? void 0 : (v) => styles.yellow.open + serializeNumber(v) + styles.yellow.close,
45
+ serializeNil: noColor ? void 0 : () => format(serializeNil(), styles.gray),
46
+ serializeBoolean: noColor ? void 0 : (v) => format(serializeBoolean(v), styles.blue),
47
+ serializeNumber: noColor ? void 0 : (v) => format(serializeNumber(v), styles.yellow),
38
48
  serializeStringQuote: noColor ? void 0 : (v, open) => {
39
49
  const q = styles.dim.open + v + styles.dim.close;
40
50
  if (open) {
@@ -43,30 +53,27 @@ var options = {
43
53
  return q + styles.green.close;
44
54
  }
45
55
  },
46
- serializeStringEscape: noColor ? void 0 : (v) => styles.bold.open + v + styles.bold.close,
47
- serializePropName: noColor ? void 0 : (v) => styles.whiteBright.open + String(v) + styles.whiteBright.close,
48
- serializeFunction: noColor ? operations.$ToString : (v) => styles.cyan.open + operations.$ToString(v) + styles.cyan.close,
49
- serializeModule: noColor ? (v, depth, options2) => {
50
- return operations.$ToString(v) + " " + options2.serializeRecord(v.value, depth, options2);
51
- } : (v, depth, options2) => {
52
- return styles.magenta.open + operations.$ToString(v) + styles.magenta.close + " " + options2.serializeRecord(v.value, depth, options2);
56
+ serializeStringEscape: noColor ? void 0 : (v) => format(v, styles.bold),
57
+ serializePropName: noColor ? void 0 : (v) => format(String(v), styles.whiteBright),
58
+ serializeFunction: (v) => format(operations.$ToString(v), styles.cyan),
59
+ serializeModule: (v, depth, options2) => {
60
+ return format(operations.$ToString(v), styles.magenta) + " " + options2.serializeRecord(v.value, depth, options2);
53
61
  }
54
62
  };
55
63
  function print(value, depth = 3) {
56
64
  if (value === void 0) {
57
- if (noColor) return "<uninitialized>";
58
- return styles.gray.open + "<uninitialized>" + styles.gray.close;
65
+ return format("<undefined>", styles.gray);
59
66
  }
60
67
  return serialize(value, { ...options, maxDepth: depth });
61
68
  }
62
69
 
63
70
  // src/utils/execute.ts
64
71
  var { panic, debug_print } = lib;
65
- panic.serializer = debug_print.serializer = (arg, format2) => {
66
- if (!format2 && typeof arg == "string") {
72
+ panic.serializer = debug_print.serializer = (arg, format3) => {
73
+ if (!format3 && typeof arg == "string") {
67
74
  return null;
68
75
  }
69
- if (format2 === "%o" || format2 === "%O" || !format2) {
76
+ if (format3 === "%o" || format3 === "%O" || !format3) {
70
77
  return print(arg);
71
78
  }
72
79
  return null;
@@ -300,7 +307,7 @@ async function getConfig(templateMode) {
300
307
  const mod = await loadModule();
301
308
  if (templateMode) {
302
309
  if (!templateConfig) {
303
- templateConfig = new mod.wasm.Config();
310
+ templateConfig = new mod.wasm.CompileConfig();
304
311
  templateConfig.input_mode = mod.wasm.InputMode.Template;
305
312
  templateConfig.trivia = true;
306
313
  templateConfig.diagnostic_position_encoding = mod.wasm.DiagnosticPositionEncoding.Utf8;
@@ -308,7 +315,7 @@ async function getConfig(templateMode) {
308
315
  return templateConfig;
309
316
  } else {
310
317
  if (!scriptConfig) {
311
- scriptConfig = new mod.wasm.Config();
318
+ scriptConfig = new mod.wasm.CompileConfig();
312
319
  scriptConfig.input_mode = mod.wasm.InputMode.Script;
313
320
  scriptConfig.trivia = true;
314
321
  scriptConfig.diagnostic_position_encoding = mod.wasm.DiagnosticPositionEncoding.Utf8;
@@ -316,7 +323,7 @@ async function getConfig(templateMode) {
316
323
  return scriptConfig;
317
324
  }
318
325
  }
319
- async function format(input, templateMode) {
326
+ async function format2(input, templateMode) {
320
327
  if (!input) return "";
321
328
  const mod = await loadModule();
322
329
  const compiler = new mod.wasm.MonacoCompiler(input, await getConfig(templateMode));
@@ -339,7 +346,7 @@ command2.description("格式化 MiraScript 脚本").option("-w, --write", "直
339
346
  for await (const chunk of process.stdin) {
340
347
  input += chunk;
341
348
  }
342
- const output = await format(input, !!opt.template);
349
+ const output = await format2(input, !!opt.template);
343
350
  if (output == null) {
344
351
  console.error("格式化失败");
345
352
  process.exit(1);
@@ -349,7 +356,7 @@ command2.description("格式化 MiraScript 脚本").option("-w, --write", "直
349
356
  }
350
357
  for await (const file of fs.glob(script)) {
351
358
  const input = await fs.readFile(file, "utf8");
352
- const output = await format(input, !!opt.template);
359
+ const output = await format2(input, !!opt.template);
353
360
  if (opt.write) {
354
361
  if (output == null) {
355
362
  console.error(`格式化失败: ${file}`);
@@ -375,11 +382,163 @@ program3.command("repl").description("启动 MiraScript REPL(交互式命令
375
382
  await startRepl();
376
383
  });
377
384
 
385
+ // src/commands/man/index.ts
386
+ import { program as program4 } from "@commander-js/extra-typings";
387
+ import { lib as lib3 } from "@mirascript/mirascript/subtle";
388
+ import { KEYWORDS, OPERATORS } from "@mirascript/help";
389
+
390
+ // src/commands/man/lib.ts
391
+ import styles4 from "ansi-styles";
392
+ import { lib as lib2 } from "@mirascript/mirascript/subtle";
393
+
394
+ // src/commands/man/table.ts
395
+ import styles3 from "ansi-styles";
396
+ function printTable(map, title, formatter = String) {
397
+ if (title) {
398
+ write(title + "\n", styles3.bold);
399
+ }
400
+ const keys = Object.keys(map).sort();
401
+ const maxKeyLength = Math.max(...keys.map((k) => k.length));
402
+ for (const key of keys) {
403
+ const value = map[key];
404
+ if (value === void 0) continue;
405
+ const firstLine = formatter(value, key).split("\n")[0];
406
+ write(" ", styles3.dim);
407
+ write(key, styles3.greenBright);
408
+ write(" ".repeat(maxKeyLength - key.length), styles3.dim);
409
+ write(" " + firstLine + "\n");
410
+ }
411
+ }
412
+
413
+ // src/commands/man/lib.ts
414
+ function analyzePath(path2) {
415
+ const segments = path2.split(".").map((s) => s.trim()).filter((s) => s.length > 0);
416
+ if (segments.length === 0) return [];
417
+ if (segments[0] === "lib") {
418
+ return segments.slice(1);
419
+ }
420
+ return segments;
421
+ }
422
+ function getLibValue(path2) {
423
+ let value = lib2;
424
+ for (const seg of path2) {
425
+ if (value === void 0) return void 0;
426
+ value = value[seg.trim()];
427
+ }
428
+ return value;
429
+ }
430
+ function printKw(kw) {
431
+ write(kw, styles4.blueBright);
432
+ }
433
+ function printComment(comment) {
434
+ const lines = comment.split("\n");
435
+ for (const line of lines) {
436
+ write("// ", styles4.dim);
437
+ write(line, styles4.gray);
438
+ write("\n");
439
+ }
440
+ }
441
+ function printLib(name) {
442
+ const path2 = analyzePath(name);
443
+ const value = getLibValue(path2);
444
+ if (value === void 0) return false;
445
+ if ("value" in value) {
446
+ if (value.summary) {
447
+ printComment(value.summary);
448
+ }
449
+ printKw("let");
450
+ write(" ");
451
+ write(path2.join("."), styles4.cyanBright);
452
+ write(" = ");
453
+ write(print(value.value));
454
+ write(";\n");
455
+ } else if ("summary" in value) {
456
+ if (value.summary) {
457
+ printComment(value.summary);
458
+ }
459
+ const params = value.params ? Object.entries(value.params) : null;
460
+ for (const [name2, param] of params ?? []) {
461
+ if (!param.description) continue;
462
+ const comment = `\`${name2}\` - ${param.description}`;
463
+ printComment(comment);
464
+ }
465
+ if (value.returns?.description) {
466
+ printComment(`返回值 - ${value.returns.description}`);
467
+ }
468
+ printKw("fn");
469
+ write(" ");
470
+ write(path2.join("."), styles4.yellowBright);
471
+ write("(");
472
+ if (!params) {
473
+ write("..");
474
+ } else {
475
+ for (let i = 0; i < params.length; i++) {
476
+ const [name2, param] = params[i];
477
+ if (i > 0) {
478
+ write(", ");
479
+ }
480
+ write(format(name2, styles4.italic), styles4.cyanBright);
481
+ write(": ");
482
+ write(param.type, styles4.greenBright);
483
+ }
484
+ }
485
+ write(")");
486
+ if (value.returns) {
487
+ write(" -> ");
488
+ write(value.returns.type, styles4.greenBright);
489
+ }
490
+ write(";\n");
491
+ if (value.examples?.length) {
492
+ for (const example of value.examples) {
493
+ printComment(example);
494
+ }
495
+ }
496
+ } else {
497
+ printKw("mod");
498
+ write(" ");
499
+ write(path2.join("."), styles4.cyanBright);
500
+ write(" {\n");
501
+ printTable(value, "", (v) => v.summary);
502
+ write("}\n");
503
+ }
504
+ return true;
505
+ }
506
+
507
+ // src/commands/man/index.ts
508
+ var command3 = program4.command("man");
509
+ command3.description("显示 MiraScript 的手册").argument(
510
+ "<topic>",
511
+ '要显示的主题,可以是 "keywords"、"operators"、"libraries" 或标准库中的函数/模块名(如 "matrix.add")、关键字/操作符(如 "if"、"&&")'
512
+ ).action((topic) => {
513
+ if (topic in KEYWORDS) {
514
+ const desc = KEYWORDS[topic];
515
+ console.log(desc);
516
+ } else if (topic in OPERATORS) {
517
+ const desc = OPERATORS[topic];
518
+ console.log(desc);
519
+ } else if (printLib(topic)) {
520
+ return;
521
+ } else if (topic === "keywords") {
522
+ printTable(KEYWORDS, "MiraScript 关键字:");
523
+ } else if (topic === "operators") {
524
+ printTable(OPERATORS, "MiraScript 操作符:");
525
+ } else if (topic === "libraries") {
526
+ printTable(lib3, "MiraScript 标准库:", (v, k) => {
527
+ if ("summary" in v) {
528
+ return v.summary ?? k;
529
+ }
530
+ return `模块 ${k}`;
531
+ });
532
+ } else {
533
+ command3.help({ error: true });
534
+ }
535
+ });
536
+
378
537
  // src/index.ts
379
- var p = program4;
538
+ var p = program5;
380
539
  var binName = Object.keys(pkg.bin)[0];
381
540
  if (binName) {
382
- p = program4.name(binName);
541
+ p = program5.name(binName);
383
542
  }
384
543
  var index_default = p.version(pkg.version).description(pkg.description);
385
544
  export {
package/dist/index.js.map CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../src/index.ts", "../src/commands/run.ts", "../src/utils/execute.ts", "../src/utils/print.ts", "../src/utils/color.ts", "../src/utils/repl.ts", "../src/commands/format.ts", "../src/commands/repl.ts"],
4
- "mappings": "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",
5
- "names": ["program", "styles", "supportsColor", "options", "format", "supportsColor", "styles", "compile", "CompileError", "createVmContext", "CompileError", "createVmContext", "script", "compile", "result", "p", "template", "program", "command", "program", "program", "program"]
3
+ "sources": ["../src/index.ts", "../src/commands/run.ts", "../src/utils/execute.ts", "../src/utils/print.ts", "../src/utils/color.ts", "../src/utils/repl.ts", "../src/commands/format.ts", "../src/commands/repl.ts", "../src/commands/man/index.ts", "../src/commands/man/lib.ts", "../src/commands/man/table.ts"],
4
+ "mappings": "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",
5
+ "names": ["program", "styles", "supportsColor", "text", "options", "format", "supportsColor", "styles", "compile", "CompileError", "createVmContext", "CompileError", "createVmContext", "script", "compile", "result", "p", "template", "program", "format", "command", "program", "program", "program", "lib", "styles", "lib", "styles", "styles", "path", "lib", "styles", "name", "command", "program", "lib", "program"]
6
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mirascript/cli",
3
- "version": "0.1.87",
3
+ "version": "0.1.89",
4
4
  "author": "CloudPSS",
5
5
  "license": "MIT",
6
6
  "description": "Cli for MiraScript, an expression based scripting language.",
@@ -38,8 +38,9 @@
38
38
  "ansi-styles": "^7.0.0",
39
39
  "commander": "^15.0.0",
40
40
  "supports-color": "^11.0.0",
41
- "@mirascript/bindings": "~0.1.87",
42
- "@mirascript/mirascript": "~0.1.87"
41
+ "@mirascript/bindings": "~0.1.89",
42
+ "@mirascript/mirascript": "~0.1.89",
43
+ "@mirascript/help": "~0.1.89"
43
44
  },
44
45
  "devDependencies": {
45
46
  "type-fest": "^5.8.0"
@@ -3,15 +3,15 @@ import fs from 'node:fs/promises';
3
3
  import { program } from '@commander-js/extra-typings';
4
4
  import { loadModule, type BcModule } from '@mirascript/bindings/wasm';
5
5
 
6
- let templateConfig: BcModule.wasm.Config | null = null;
7
- let scriptConfig: BcModule.wasm.Config | null = null;
6
+ let templateConfig: BcModule.wasm.CompileConfig | null = null;
7
+ let scriptConfig: BcModule.wasm.CompileConfig | null = null;
8
8
 
9
9
  /** 获取配置 */
10
- async function getConfig(templateMode: boolean): Promise<BcModule.wasm.Config> {
10
+ async function getConfig(templateMode: boolean): Promise<BcModule.wasm.CompileConfig> {
11
11
  const mod = await loadModule();
12
12
  if (templateMode) {
13
13
  if (!templateConfig) {
14
- templateConfig = new mod.wasm.Config();
14
+ templateConfig = new mod.wasm.CompileConfig();
15
15
  templateConfig.input_mode = mod.wasm.InputMode.Template;
16
16
  templateConfig.trivia = true;
17
17
  templateConfig.diagnostic_position_encoding = mod.wasm.DiagnosticPositionEncoding.Utf8;
@@ -19,7 +19,7 @@ async function getConfig(templateMode: boolean): Promise<BcModule.wasm.Config> {
19
19
  return templateConfig;
20
20
  } else {
21
21
  if (!scriptConfig) {
22
- scriptConfig = new mod.wasm.Config();
22
+ scriptConfig = new mod.wasm.CompileConfig();
23
23
  scriptConfig.input_mode = mod.wasm.InputMode.Script;
24
24
  scriptConfig.trivia = true;
25
25
  scriptConfig.diagnostic_position_encoding = mod.wasm.DiagnosticPositionEncoding.Utf8;
@@ -0,0 +1,38 @@
1
+ /* eslint-disable no-console */
2
+ import { program } from '@commander-js/extra-typings';
3
+ import { lib } from '@mirascript/mirascript/subtle';
4
+ import { KEYWORDS, OPERATORS } from '@mirascript/help';
5
+ import { printLib } from './lib.js';
6
+ import { printTable } from './table.js';
7
+
8
+ const command = program.command('man');
9
+ command
10
+ .description('显示 MiraScript 的手册')
11
+ .argument(
12
+ '<topic>',
13
+ '要显示的主题,可以是 "keywords"、"operators"、"libraries" 或标准库中的函数/模块名(如 "matrix.add")、关键字/操作符(如 "if"、"&&")',
14
+ )
15
+ .action((topic) => {
16
+ if (topic in KEYWORDS) {
17
+ const desc = KEYWORDS[topic as keyof typeof KEYWORDS];
18
+ console.log(desc);
19
+ } else if (topic in OPERATORS) {
20
+ const desc = OPERATORS[topic as keyof typeof OPERATORS];
21
+ console.log(desc);
22
+ } else if (printLib(topic)) {
23
+ return;
24
+ } else if (topic === 'keywords') {
25
+ printTable(KEYWORDS, 'MiraScript 关键字:');
26
+ } else if (topic === 'operators') {
27
+ printTable(OPERATORS, 'MiraScript 操作符:');
28
+ } else if (topic === 'libraries') {
29
+ printTable(lib, 'MiraScript 标准库:', (v, k) => {
30
+ if ('summary' in v) {
31
+ return v.summary ?? k;
32
+ }
33
+ return `模块 ${k}`;
34
+ });
35
+ } else {
36
+ command.help({ error: true });
37
+ }
38
+ });
@@ -0,0 +1,110 @@
1
+ import styles from 'ansi-styles';
2
+ import { format, write } from '../../utils/color.js';
3
+ import { print } from '../../utils/print.js';
4
+ import { lib } from '@mirascript/mirascript/subtle';
5
+ import { printTable } from './table.js';
6
+
7
+ /** 分析路径 */
8
+ function analyzePath(path: string): readonly string[] {
9
+ const segments = path
10
+ .split('.')
11
+ .map((s) => s.trim())
12
+ .filter((s) => s.length > 0);
13
+ if (segments.length === 0) return [];
14
+ if (segments[0] === 'lib') {
15
+ return segments.slice(1);
16
+ }
17
+ return segments;
18
+ }
19
+
20
+ /** 获取库值 */
21
+ function getLibValue(path: readonly string[]): (typeof lib)[keyof typeof lib] | undefined {
22
+ let value: object = lib;
23
+ for (const seg of path) {
24
+ if (value === undefined) return undefined;
25
+ value = value[seg.trim() as keyof typeof value];
26
+ }
27
+ return value as (typeof lib)[keyof typeof lib] | undefined;
28
+ }
29
+
30
+ /** 打印关键字 */
31
+ function printKw(kw: string): void {
32
+ write(kw, styles.blueBright);
33
+ }
34
+
35
+ /** 打印注释 */
36
+ function printComment(comment: string): void {
37
+ const lines = comment.split('\n');
38
+ for (const line of lines) {
39
+ write('// ', styles.dim);
40
+ write(line, styles.gray);
41
+ write('\n');
42
+ }
43
+ }
44
+
45
+ /** 打印库 */
46
+ export function printLib(name: string): boolean {
47
+ const path = analyzePath(name);
48
+ const value = getLibValue(path);
49
+ if (value === undefined) return false;
50
+ if ('value' in value) {
51
+ if (value.summary) {
52
+ printComment(value.summary);
53
+ }
54
+ printKw('let');
55
+ write(' ');
56
+ write(path.join('.'), styles.cyanBright);
57
+ write(' = ');
58
+ write(print(value.value));
59
+ write(';\n');
60
+ } else if ('summary' in value) {
61
+ if (value.summary) {
62
+ printComment(value.summary);
63
+ }
64
+ const params = value.params ? Object.entries(value.params) : null;
65
+ for (const [name, param] of params ?? []) {
66
+ if (!param.description) continue;
67
+ const comment = `\`${name}\` - ${param.description}`;
68
+ printComment(comment);
69
+ }
70
+ if (value.returns?.description) {
71
+ printComment(`返回值 - ${value.returns.description}`);
72
+ }
73
+ printKw('fn');
74
+ write(' ');
75
+ write(path.join('.'), styles.yellowBright);
76
+ write('(');
77
+ if (!params) {
78
+ write('..');
79
+ } else {
80
+ for (let i = 0; i < params.length; i++) {
81
+ const [name, param] = params[i]!;
82
+ if (i > 0) {
83
+ write(', ');
84
+ }
85
+ write(format(name, styles.italic), styles.cyanBright);
86
+ write(': ');
87
+ write(param.type, styles.greenBright);
88
+ }
89
+ }
90
+ write(')');
91
+ if (value.returns) {
92
+ write(' -> ');
93
+ write(value.returns.type, styles.greenBright);
94
+ }
95
+ write(';\n');
96
+ if (value.examples?.length) {
97
+ for (const example of value.examples) {
98
+ printComment(example);
99
+ }
100
+ }
101
+ } else {
102
+ printKw('mod');
103
+ write(' ');
104
+ write(path.join('.'), styles.cyanBright);
105
+ write(' {\n');
106
+ printTable(value as Record<string, { summary: string }>, '', (v) => v.summary);
107
+ write('}\n');
108
+ }
109
+ return true;
110
+ }
@@ -0,0 +1,27 @@
1
+ import styles from 'ansi-styles';
2
+ import { write } from '../../utils/color.js';
3
+
4
+ /** 打印表格 */
5
+ export function printTable<T>(
6
+ map: Record<string, T>,
7
+ title: string,
8
+ formatter: (value: T, key: string) => string = String,
9
+ ): void {
10
+ if (title) {
11
+ write(title + '\n', styles.bold);
12
+ }
13
+
14
+ const keys = Object.keys(map).sort();
15
+ const maxKeyLength = Math.max(...keys.map((k) => k.length));
16
+
17
+ for (const key of keys) {
18
+ const value = map[key];
19
+ if (value === undefined) continue;
20
+
21
+ const firstLine = formatter(value, key).split('\n')[0];
22
+ write(' ', styles.dim);
23
+ write(key, styles.greenBright);
24
+ write(' '.repeat(maxKeyLength - key.length), styles.dim);
25
+ write(' ' + firstLine + '\n');
26
+ }
27
+ }
package/src/index.ts CHANGED
@@ -4,6 +4,7 @@ import pkg from '#package.json' with { type: 'json' };
4
4
  import './commands/run.js';
5
5
  import './commands/format.js';
6
6
  import './commands/repl.js';
7
+ import './commands/man/index.js';
7
8
 
8
9
  let p = program;
9
10
  const binName = Object.keys(pkg.bin)[0];
@@ -1,2 +1,16 @@
1
+ import type { CSPair } from 'ansi-styles';
1
2
  import supportsColor from 'supports-color';
2
3
  export const noColor = !supportsColor.stdout;
4
+
5
+ /** 格式化 */
6
+ export function format(text: string, style?: CSPair): string {
7
+ if (style && !noColor) {
8
+ return style.open + text + style.close;
9
+ } else {
10
+ return text;
11
+ }
12
+ }
13
+ /** 写入 */
14
+ export function write(text: string, style?: CSPair): void {
15
+ process.stdout.write(format(text, style));
16
+ }
@@ -8,13 +8,13 @@ import {
8
8
  type SerializeOptions,
9
9
  operations,
10
10
  } from '@mirascript/mirascript/subtle';
11
- import { noColor } from './color.js';
11
+ import { noColor, format } from './color.js';
12
12
 
13
13
  const options: Partial<SerializeOptions> = {
14
14
  maxDepth: 3,
15
- serializeNil: noColor ? undefined : () => styles.gray.open + serializeNil() + styles.gray.close,
16
- serializeBoolean: noColor ? undefined : (v) => styles.blue.open + serializeBoolean(v) + styles.blue.close,
17
- serializeNumber: noColor ? undefined : (v) => styles.yellow.open + serializeNumber(v) + styles.yellow.close,
15
+ serializeNil: noColor ? undefined : () => format(serializeNil(), styles.gray),
16
+ serializeBoolean: noColor ? undefined : (v) => format(serializeBoolean(v), styles.blue),
17
+ serializeNumber: noColor ? undefined : (v) => format(serializeNumber(v), styles.yellow),
18
18
  serializeStringQuote: noColor
19
19
  ? undefined
20
20
  : (v, open) => {
@@ -25,31 +25,22 @@ const options: Partial<SerializeOptions> = {
25
25
  return q + styles.green.close;
26
26
  }
27
27
  },
28
- serializeStringEscape: noColor ? undefined : (v) => styles.bold.open + v + styles.bold.close,
29
- serializePropName: noColor ? undefined : (v) => styles.whiteBright.open + String(v) + styles.whiteBright.close,
30
- serializeFunction: noColor
31
- ? operations.$ToString
32
- : (v) => styles.cyan.open + operations.$ToString(v) + styles.cyan.close,
33
- serializeModule: noColor
34
- ? (v, depth, options) => {
35
- return operations.$ToString(v) + ' ' + options.serializeRecord(v.value as VmRecord, depth, options);
36
- }
37
- : (v, depth, options) => {
38
- return (
39
- styles.magenta.open +
40
- operations.$ToString(v) +
41
- styles.magenta.close +
42
- ' ' +
43
- options.serializeRecord(v.value as VmRecord, depth, options)
44
- );
45
- },
28
+ serializeStringEscape: noColor ? undefined : (v) => format(v, styles.bold),
29
+ serializePropName: noColor ? undefined : (v) => format(String(v), styles.whiteBright),
30
+ serializeFunction: (v) => format(operations.$ToString(v), styles.cyan),
31
+ serializeModule: (v, depth, options) => {
32
+ return (
33
+ format(operations.$ToString(v), styles.magenta) +
34
+ ' ' +
35
+ options.serializeRecord(v.value as VmRecord, depth, options)
36
+ );
37
+ },
46
38
  };
47
39
 
48
40
  /** 序列化值 */
49
41
  export function print(value: VmAny, depth = 3): string {
50
42
  if (value === undefined) {
51
- if (noColor) return '<uninitialized>';
52
- return styles.gray.open + '<uninitialized>' + styles.gray.close;
43
+ return format('<undefined>', styles.gray);
53
44
  }
54
45
  return serialize(value, { ...options, maxDepth: depth });
55
46
  }