js-dev-tool 1.2.13 → 1.2.15

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.
@@ -11,28 +11,28 @@
11
11
  * @version 2.3 2026/04/06 16:11:36
12
12
  * @version 2.4 2026/04/08 08:31:11 - expand `sjv` to v25x
13
13
  */
14
- const ccMap = require("./cc-map");
14
+ const { ECC_MAP } = require("ts-cc-map");
15
15
  /**
16
16
  * @typedef {{ src: string }} TJsonSourceEnvelop
17
17
  * @typedef {[ open: number, close: number ]} TBlacketPairCode
18
18
  */
19
19
  /** @type {TBlacketPairCode} */
20
- const array = [ccMap.LEFT_BRACKET, ccMap.RIGHT_BRACKET];
20
+ const array = [ECC_MAP.LEFT_BRACKET, ECC_MAP.RIGHT_BRACKET];
21
21
  /** @type {TBlacketPairCode} */
22
- const object = [ccMap.LEFT_BRACE, ccMap.RIGHT_BRACE];
22
+ const object = [ECC_MAP.LEFT_BRACE, ECC_MAP.RIGHT_BRACE];
23
23
  /**
24
24
  * ### (O)thers (M)ap
25
25
  *
26
26
  * @type {(0 | 1)[]}
27
27
  */
28
28
  const om = Array(127).fill(0);
29
- om[ccMap.DOUBLE_QUOTE] = 1;
30
- om[ccMap.COMMA] = 1;
31
- om[ccMap.COLON] = 1;
32
- om[ccMap.LEFT_BRACKET] = 1;
33
- om[ccMap.RIGHT_BRACKET] = 1;
34
- om[ccMap.LEFT_BRACE] = 1;
35
- om[ccMap.RIGHT_BRACE] = 1;
29
+ om[ECC_MAP.DOUBLE_QUOTE] = 1;
30
+ om[ECC_MAP.COMMA] = 1;
31
+ om[ECC_MAP.COLON] = 1;
32
+ om[ECC_MAP.LEFT_BRACKET] = 1;
33
+ om[ECC_MAP.RIGHT_BRACKET] = 1;
34
+ om[ECC_MAP.LEFT_BRACE] = 1;
35
+ om[ECC_MAP.RIGHT_BRACE] = 1;
36
36
  /**
37
37
  * @param {string} message
38
38
  * @param {number} offset
@@ -73,14 +73,14 @@ function v25x(source) {
73
73
  out.src += "\n";
74
74
  }
75
75
  switch (source.charCodeAt(next)) {
76
- case ccMap.DOUBLE_QUOTE: {
76
+ case ECC_MAP.DOUBLE_QUOTE: {
77
77
  const skiped = sqs(source, next);
78
78
  out.src += source.slice(next, skiped);
79
79
  offset = skiped;
80
80
  break;
81
81
  }
82
- case ccMap.LEFT_BRACKET:
83
- case ccMap.LEFT_BRACE:
82
+ case ECC_MAP.LEFT_BRACKET:
83
+ case ECC_MAP.LEFT_BRACE:
84
84
  offset = sjoCode(source, next, out);
85
85
  break;
86
86
  default: {
@@ -103,9 +103,9 @@ function v25x(source) {
103
103
  */
104
104
  function sjv(source, offset, out) {
105
105
  switch (source.charCodeAt(offset)) {
106
- case ccMap.LEFT_BRACE:
107
- case ccMap.LEFT_BRACKET: return sjoCode(source, offset, out);
108
- case ccMap.DOUBLE_QUOTE: {
106
+ case ECC_MAP.LEFT_BRACE:
107
+ case ECC_MAP.LEFT_BRACKET: return sjoCode(source, offset, out);
108
+ case ECC_MAP.DOUBLE_QUOTE: {
109
109
  const next = sqs(source, offset);
110
110
  out.src += source.slice(offset, next);
111
111
  return next;
@@ -136,8 +136,8 @@ function sjoCode(source, offset, out) {
136
136
  const sourceLen = source.length;
137
137
  while (offset < sourceLen) {
138
138
  const code = source.charCodeAt(offset++);
139
- if (code <= 32 /* ccMap.SPACE */) continue;
140
- if (code === 34 /* ccMap.DOUBLE_QUOTE */) {
139
+ if (code <= 32 /* ECC_MAP.SPACE */) continue;
140
+ if (code === 34 /* ECC_MAP.DOUBLE_QUOTE */) {
141
141
  const next = sqs(source, offset - 1);
142
142
  sourceRef += source.slice(offset - 1, next);
143
143
  offset = next;
@@ -188,11 +188,11 @@ function sqs(source, offset) {
188
188
  let inEscape = false;
189
189
  while (next < srcLen) {
190
190
  const code = source.charCodeAt(next++);
191
- if (code === 92 /* ccMap.BACKSLASH */) {
191
+ if (code === 92 /* ECC_MAP.BACKSLASH */) {
192
192
  inEscape = !inEscape;
193
193
  } else if (inEscape) {
194
194
  inEscape = false;
195
- } else if (code === 34 /* ccMap.DOUBLE_QUOTE */) {
195
+ } else if (code === 34 /* ECC_MAP.DOUBLE_QUOTE */) {
196
196
  return next;
197
197
  }
198
198
  }
@@ -258,14 +258,14 @@ function parseJsonl(source) {
258
258
  out.src = "";
259
259
  }
260
260
  switch (source.charCodeAt(next)) {
261
- case ccMap.DOUBLE_QUOTE: {
261
+ case ECC_MAP.DOUBLE_QUOTE: {
262
262
  const skiped = sqs(source, next);
263
263
  out.src += source.slice(next, skiped);
264
264
  offset = skiped;
265
265
  break;
266
266
  }
267
- case ccMap.LEFT_BRACKET:
268
- case ccMap.LEFT_BRACE:
267
+ case ECC_MAP.LEFT_BRACKET:
268
+ case ECC_MAP.LEFT_BRACE:
269
269
  offset = sjoCode(source, next, out);
270
270
  break;
271
271
  default: {
@@ -0,0 +1,60 @@
1
+ #!/usr/bin/env node
2
+ /*!
3
+ // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
4
+ // Copyright (C) 2026 jeffy-g <hirotom1107@gmail.com>
5
+ // Released under the MIT license
6
+ // https://opensource.org/licenses/mit-license.php
7
+ // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
8
+ */
9
+ "use strict";
10
+ /**
11
+ * @file extras/toggle-jsonl.js
12
+ * @command tgl-jsonl [-un] <jsonl path> <jsonl path>
13
+ * @command node extras/toggle-jsonl.js
14
+ */
15
+ const tinArgs = require("tin-args");
16
+ const utils = require("../utils.js");
17
+ const { parseJsonl } = require("./json-minify.js");
18
+ const reset = "\x1b[0m";
19
+ const green = "\x1b[32m";
20
+ const yellow = "\x1b[33m";
21
+ const blue = "\x1b[34m";
22
+ const orange = "\x1b[38;5;208m";
23
+ /**
24
+ * @typedef TToggleJsonArgs
25
+ * @prop {true=} un un format jsonl file
26
+ */
27
+ /** @type {tinArgs.TTinArgsReturnType<TToggleJsonArgs>} */
28
+ const args = tinArgs();
29
+ const files = args.args;
30
+ if (files) {
31
+ const needFormat = !args.un;
32
+ for (const file of files) {
33
+ utils.log(`${blue}[toggle-jsonl]${reset}: convert to ${yellow}${needFormat ? "" : "un-"}formatted jsonl${reset} - ${green}${file}${reset}`);
34
+ let jsonlSource = "";
35
+ const source = utils.readText(file);
36
+ /** @type {Record<string, any>[]} */
37
+ const jsonArray = parseJsonl(source);
38
+ if (needFormat) {
39
+ for (const json of jsonArray) {
40
+ jsonlSource += utils.formatedStringify(json) + "\n";
41
+ }
42
+ } else {
43
+ for (const json of jsonArray) {
44
+ jsonlSource += JSON.stringify(json) + "\n";
45
+ }
46
+ }
47
+ utils.writeText(jsonlSource, file);
48
+ }
49
+ } else {
50
+ utils.log(
51
+ `${orange}Please specify the path to the JSONL file to process...${reset}` +
52
+ `
53
+
54
+ Usage: ${yellow}tgl-jsonl${reset} [-un] <jsonl path> <jsonl path>
55
+
56
+ about: options
57
+ -un: convert to "un-formatted jsonl", if not spcedified then will be formatted jsonl source
58
+ `
59
+ );
60
+ }
package/package.json CHANGED
@@ -1,8 +1,9 @@
1
1
  {
2
2
  "name": "js-dev-tool",
3
- "version": "1.2.13",
3
+ "version": "1.2.15",
4
4
  "bin": {
5
- "jstool": "tools.js"
5
+ "jstool": "tools.js",
6
+ "tgl-jsonl": "extras/toggle-jsonl.js"
6
7
  },
7
8
  "types": "./index.d.ts",
8
9
  "main": "./index.js",
@@ -92,6 +93,7 @@
92
93
  "replace": "^1.2.2",
93
94
  "rm-cstyle-cmts": "^3.4.4",
94
95
  "terser": "^5.46.1",
95
- "tin-args": "^0.1.5"
96
+ "tin-args": "^0.1.5",
97
+ "ts-cc-map": "^1.1.0"
96
98
  }
97
99
  }