@ttsc/factory 0.19.2 → 0.20.0
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/README.md +2 -0
- package/lib/TsPrinter.d.ts +124 -17
- package/lib/TsPrinter.js +414 -106
- package/lib/TsPrinter.js.map +1 -1
- package/lib/TsPrinter.mjs +413 -107
- package/lib/TsPrinter.mjs.map +1 -1
- package/lib/ast/expressions/Expression.d.ts +5 -1
- package/lib/ast/imports/ImportClause.d.ts +10 -2
- package/lib/ast/jsdoc/JSDocImportTag.d.ts +3 -0
- package/lib/ast/types/ImportTypeNode.d.ts +3 -0
- package/lib/factory/expressions/createComma.d.ts +3 -3
- package/lib/factory/expressions/createComma.js +3 -3
- package/lib/factory/expressions/createComma.mjs +3 -3
- package/lib/factory/imports/createImportClause.d.ts +9 -3
- package/lib/factory/imports/createImportClause.js +8 -3
- package/lib/factory/imports/createImportClause.js.map +1 -1
- package/lib/factory/imports/createImportClause.mjs +8 -3
- package/lib/factory/imports/createImportClause.mjs.map +1 -1
- package/lib/factory/jsdoc/createJSDocImportTag.d.ts +3 -2
- package/lib/factory/jsdoc/createJSDocImportTag.js +3 -1
- package/lib/factory/jsdoc/createJSDocImportTag.js.map +1 -1
- package/lib/factory/jsdoc/createJSDocImportTag.mjs +3 -1
- package/lib/factory/jsdoc/createJSDocImportTag.mjs.map +1 -1
- package/lib/factory/types/createImportTypeNode.d.ts +8 -2
- package/lib/factory/types/createImportTypeNode.js +13 -1
- package/lib/factory/types/createImportTypeNode.js.map +1 -1
- package/lib/factory/types/createImportTypeNode.mjs +13 -1
- package/lib/factory/types/createImportTypeNode.mjs.map +1 -1
- package/lib/internal/doc.d.ts +13 -0
- package/lib/internal/doc.js +31 -4
- package/lib/internal/doc.js.map +1 -1
- package/lib/internal/doc.mjs +30 -4
- package/lib/internal/doc.mjs.map +1 -1
- package/lib/syntax/NodeFlags.d.ts +6 -4
- package/lib/syntax/NodeFlags.js +6 -4
- package/lib/syntax/NodeFlags.js.map +1 -1
- package/lib/syntax/NodeFlags.mjs +6 -4
- package/lib/syntax/NodeFlags.mjs.map +1 -1
- package/lib/syntax/SyntaxKind.d.ts +2 -0
- package/lib/syntax/SyntaxKind.js +6 -0
- package/lib/syntax/SyntaxKind.js.map +1 -1
- package/lib/syntax/SyntaxKind.mjs +6 -0
- package/lib/syntax/SyntaxKind.mjs.map +1 -1
- package/package.json +1 -1
- package/src/TsPrinter.ts +489 -121
- package/src/ast/expressions/Expression.ts +8 -0
- package/src/ast/imports/ImportClause.ts +10 -2
- package/src/ast/jsdoc/JSDocImportTag.ts +4 -0
- package/src/ast/types/ImportTypeNode.ts +4 -0
- package/src/factory/expressions/createComma.ts +3 -3
- package/src/factory/imports/createImportClause.ts +12 -6
- package/src/factory/jsdoc/createJSDocImportTag.ts +5 -1
- package/src/factory/types/createImportTypeNode.ts +21 -3
- package/src/internal/doc.ts +30 -3
- package/src/syntax/NodeFlags.ts +6 -4
- package/src/syntax/SyntaxKind.ts +7 -0
|
@@ -1,7 +1,13 @@
|
|
|
1
|
-
import type { EntityName, ImportTypeNode, TypeNode } from "../../ast";
|
|
1
|
+
import type { EntityName, ImportAttributes, ImportTypeNode, TypeNode } from "../../ast";
|
|
2
2
|
/**
|
|
3
3
|
* Create an {@link ImportTypeNode}: an `import("module").Qualifier<Args>` type.
|
|
4
4
|
*
|
|
5
|
+
* The parameter order is upstream's: `isTypeOf` first, then the module
|
|
6
|
+
* specifier, then the `with { … }` attributes, then the qualifier and type
|
|
7
|
+
* arguments. This factory used to put `isTypeOf` last and omit `attributes`
|
|
8
|
+
* entirely, so a caller ported from `ts.factory` bound every argument to the
|
|
9
|
+
* wrong slot.
|
|
10
|
+
*
|
|
5
11
|
* The `argument` is the module specifier inside `import(...)`. A `qualifier`
|
|
6
12
|
* adds a `.Member` access, and type arguments add `<...>`. When `isTypeOf` is
|
|
7
13
|
* true the whole thing is prefixed with `typeof ` to query a value's type.
|
|
@@ -20,4 +26,4 @@ import type { EntityName, ImportTypeNode, TypeNode } from "../../ast";
|
|
|
20
26
|
* @param isTypeOf Whether to prefix the type with `typeof`.
|
|
21
27
|
* @returns The created {@link ImportTypeNode}.
|
|
22
28
|
*/
|
|
23
|
-
export declare const createImportTypeNode: (argument: TypeNode, qualifier?: EntityName, typeArguments?: readonly TypeNode[]
|
|
29
|
+
export declare const createImportTypeNode: (isTypeOf: boolean | undefined, argument: TypeNode, attributes?: ImportAttributes, qualifier?: EntityName, typeArguments?: readonly TypeNode[]) => ImportTypeNode;
|
|
@@ -5,6 +5,12 @@ const make_1 = require("../internal/make");
|
|
|
5
5
|
/**
|
|
6
6
|
* Create an {@link ImportTypeNode}: an `import("module").Qualifier<Args>` type.
|
|
7
7
|
*
|
|
8
|
+
* The parameter order is upstream's: `isTypeOf` first, then the module
|
|
9
|
+
* specifier, then the `with { … }` attributes, then the qualifier and type
|
|
10
|
+
* arguments. This factory used to put `isTypeOf` last and omit `attributes`
|
|
11
|
+
* entirely, so a caller ported from `ts.factory` bound every argument to the
|
|
12
|
+
* wrong slot.
|
|
13
|
+
*
|
|
8
14
|
* The `argument` is the module specifier inside `import(...)`. A `qualifier`
|
|
9
15
|
* adds a `.Member` access, and type arguments add `<...>`. When `isTypeOf` is
|
|
10
16
|
* true the whole thing is prefixed with `typeof ` to query a value's type.
|
|
@@ -23,6 +29,12 @@ const make_1 = require("../internal/make");
|
|
|
23
29
|
* @param isTypeOf Whether to prefix the type with `typeof`.
|
|
24
30
|
* @returns The created {@link ImportTypeNode}.
|
|
25
31
|
*/
|
|
26
|
-
const createImportTypeNode = (argument, qualifier, typeArguments
|
|
32
|
+
const createImportTypeNode = (isTypeOf, argument, attributes, qualifier, typeArguments) => (0, make_1.make)("ImportTypeNode", {
|
|
33
|
+
argument,
|
|
34
|
+
attributes,
|
|
35
|
+
qualifier,
|
|
36
|
+
typeArguments,
|
|
37
|
+
isTypeOf: isTypeOf === true,
|
|
38
|
+
});
|
|
27
39
|
exports.createImportTypeNode = createImportTypeNode;
|
|
28
40
|
//# sourceMappingURL=createImportTypeNode.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createImportTypeNode.js","sourceRoot":"","sources":["../../../src/factory/types/createImportTypeNode.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"createImportTypeNode.js","sourceRoot":"","sources":["../../../src/factory/types/createImportTypeNode.ts"],"names":[],"mappings":";;;AAMA,2CAAwC;AAExC;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACI,MAAM,oBAAoB,GAAG,CAClC,QAA6B,EAC7B,QAAkB,EAClB,UAA6B,EAC7B,SAAsB,EACtB,aAAmC,EACnB,EAAE,CAClB,IAAA,WAAI,EAAC,gBAAgB,EAAE;IACrB,QAAQ;IACR,UAAU;IACV,SAAS;IACT,aAAa;IACb,QAAQ,EAAE,QAAQ,KAAK,IAAI;CAC5B,CAAC,CAAC;AAbQ,QAAA,oBAAoB,GAApB,oBAAoB,CAa5B"}
|
|
@@ -3,6 +3,12 @@ import { make } from '../internal/make.mjs';
|
|
|
3
3
|
/**
|
|
4
4
|
* Create an {@link ImportTypeNode}: an `import("module").Qualifier<Args>` type.
|
|
5
5
|
*
|
|
6
|
+
* The parameter order is upstream's: `isTypeOf` first, then the module
|
|
7
|
+
* specifier, then the `with { … }` attributes, then the qualifier and type
|
|
8
|
+
* arguments. This factory used to put `isTypeOf` last and omit `attributes`
|
|
9
|
+
* entirely, so a caller ported from `ts.factory` bound every argument to the
|
|
10
|
+
* wrong slot.
|
|
11
|
+
*
|
|
6
12
|
* The `argument` is the module specifier inside `import(...)`. A `qualifier`
|
|
7
13
|
* adds a `.Member` access, and type arguments add `<...>`. When `isTypeOf` is
|
|
8
14
|
* true the whole thing is prefixed with `typeof ` to query a value's type.
|
|
@@ -21,7 +27,13 @@ import { make } from '../internal/make.mjs';
|
|
|
21
27
|
* @param isTypeOf Whether to prefix the type with `typeof`.
|
|
22
28
|
* @returns The created {@link ImportTypeNode}.
|
|
23
29
|
*/
|
|
24
|
-
const createImportTypeNode = (argument, qualifier, typeArguments
|
|
30
|
+
const createImportTypeNode = (isTypeOf, argument, attributes, qualifier, typeArguments) => make("ImportTypeNode", {
|
|
31
|
+
argument,
|
|
32
|
+
attributes,
|
|
33
|
+
qualifier,
|
|
34
|
+
typeArguments,
|
|
35
|
+
isTypeOf: isTypeOf === true,
|
|
36
|
+
});
|
|
25
37
|
|
|
26
38
|
export { createImportTypeNode };
|
|
27
39
|
//# sourceMappingURL=createImportTypeNode.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createImportTypeNode.mjs","sources":["../../../src/factory/types/createImportTypeNode.ts"],"sourcesContent":[null],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"createImportTypeNode.mjs","sources":["../../../src/factory/types/createImportTypeNode.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAQA;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BG;MACU,oBAAoB,GAAG,CAClC,QAA6B,EAC7B,QAAkB,EAClB,UAA6B,EAC7B,SAAsB,EACtB,aAAmC,KAEnC,IAAI,CAAC,gBAAgB,EAAE;IACrB,QAAQ;IACR,UAAU;IACV,SAAS;IACT,aAAa;IACb,QAAQ,EAAE,QAAQ,KAAK,IAAI;AAC5B,CAAA;;;;"}
|
package/lib/internal/doc.d.ts
CHANGED
|
@@ -11,6 +11,9 @@
|
|
|
11
11
|
* @author Jeongho Nam - https://github.com/samchon
|
|
12
12
|
*/
|
|
13
13
|
export type Doc = string | {
|
|
14
|
+
type: "raw";
|
|
15
|
+
text: string;
|
|
16
|
+
} | {
|
|
14
17
|
type: "concat";
|
|
15
18
|
parts: Doc[];
|
|
16
19
|
} | {
|
|
@@ -33,6 +36,16 @@ export type Doc = string | {
|
|
|
33
36
|
};
|
|
34
37
|
/** Concatenate documents. */
|
|
35
38
|
export declare const concat: (parts: Doc[]) => Doc;
|
|
39
|
+
/**
|
|
40
|
+
* Literal text whose trailing whitespace is content, not layout.
|
|
41
|
+
*
|
|
42
|
+
* {@link printDocToString} strips spaces and tabs from the end of a line before
|
|
43
|
+
* writing a newline, which is right for generated code and wrong for the one
|
|
44
|
+
* node emitted as unquoted source text, `JsxText`: a trimmed trailing space
|
|
45
|
+
* there deletes a JSX separator and changes what the component renders. Text
|
|
46
|
+
* emitted through this node is never trimmed.
|
|
47
|
+
*/
|
|
48
|
+
export declare const raw: (text: string) => Doc;
|
|
36
49
|
/** A group: printed flat when it fits, broken otherwise. */
|
|
37
50
|
export declare const group: (doc: Doc, shouldBreak?: boolean) => Doc;
|
|
38
51
|
/** Increase indentation of the inner document by one level. */
|
package/lib/internal/doc.js
CHANGED
|
@@ -1,9 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.printDocToString = exports.join = exports.ifBreak = exports.hardline = exports.softline = exports.line = exports.indent = exports.group = exports.concat = void 0;
|
|
3
|
+
exports.printDocToString = exports.join = exports.ifBreak = exports.hardline = exports.softline = exports.line = exports.indent = exports.group = exports.raw = exports.concat = void 0;
|
|
4
4
|
/** Concatenate documents. */
|
|
5
5
|
const concat = (parts) => ({ type: "concat", parts });
|
|
6
6
|
exports.concat = concat;
|
|
7
|
+
/**
|
|
8
|
+
* Literal text whose trailing whitespace is content, not layout.
|
|
9
|
+
*
|
|
10
|
+
* {@link printDocToString} strips spaces and tabs from the end of a line before
|
|
11
|
+
* writing a newline, which is right for generated code and wrong for the one
|
|
12
|
+
* node emitted as unquoted source text, `JsxText`: a trimmed trailing space
|
|
13
|
+
* there deletes a JSX separator and changes what the component renders. Text
|
|
14
|
+
* emitted through this node is never trimmed.
|
|
15
|
+
*/
|
|
16
|
+
const raw = (text) => ({ type: "raw", text });
|
|
17
|
+
exports.raw = raw;
|
|
7
18
|
/** A group: printed flat when it fits, broken otherwise. */
|
|
8
19
|
const group = (doc, shouldBreak = false) => ({
|
|
9
20
|
type: "group",
|
|
@@ -86,6 +97,9 @@ const fits = (next, rest, remaining) => {
|
|
|
86
97
|
continue;
|
|
87
98
|
}
|
|
88
99
|
switch (doc.type) {
|
|
100
|
+
case "raw":
|
|
101
|
+
width -= doc.text.length;
|
|
102
|
+
break;
|
|
89
103
|
case "concat":
|
|
90
104
|
for (let i = doc.parts.length - 1; i >= 0; i--)
|
|
91
105
|
cmds.push([ind, mode, doc.parts[i]]);
|
|
@@ -121,21 +135,34 @@ const printDocToString = (doc, options) => {
|
|
|
121
135
|
const { printWidth, newLine, indent: tab } = options;
|
|
122
136
|
const out = [];
|
|
123
137
|
let pos = 0;
|
|
138
|
+
// whether the tail of `out` is raw text, whose trailing whitespace is content
|
|
139
|
+
let rawTail = false;
|
|
124
140
|
const cmds = [[0, MODE_BREAK, doc]];
|
|
125
141
|
const newlineTo = (ind) => {
|
|
126
|
-
if (out.length)
|
|
142
|
+
if (out.length && !rawTail)
|
|
127
143
|
out[out.length - 1] = out[out.length - 1].replace(/[ \t]+$/, "");
|
|
128
144
|
out.push(newLine + tab.repeat(ind));
|
|
129
145
|
pos = tab.length * ind;
|
|
146
|
+
rawTail = false;
|
|
130
147
|
};
|
|
131
148
|
while (cmds.length) {
|
|
132
149
|
const [ind, mode, d] = cmds.pop();
|
|
133
150
|
if (typeof d === "string") {
|
|
134
|
-
|
|
135
|
-
|
|
151
|
+
// an empty string contributes nothing but would become the tail that
|
|
152
|
+
// `newlineTo` trims, hiding the real end of the line behind it
|
|
153
|
+
if (d.length !== 0) {
|
|
154
|
+
out.push(d);
|
|
155
|
+
pos += d.length;
|
|
156
|
+
rawTail = false;
|
|
157
|
+
}
|
|
136
158
|
continue;
|
|
137
159
|
}
|
|
138
160
|
switch (d.type) {
|
|
161
|
+
case "raw":
|
|
162
|
+
out.push(d.text);
|
|
163
|
+
pos += d.text.length;
|
|
164
|
+
rawTail = true;
|
|
165
|
+
break;
|
|
139
166
|
case "concat":
|
|
140
167
|
for (let i = d.parts.length - 1; i >= 0; i--)
|
|
141
168
|
cmds.push([ind, mode, d.parts[i]]);
|
package/lib/internal/doc.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doc.js","sourceRoot":"","sources":["../../src/internal/doc.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"doc.js","sourceRoot":"","sources":["../../src/internal/doc.ts"],"names":[],"mappings":"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"}
|
package/lib/internal/doc.mjs
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
/** Concatenate documents. */
|
|
2
2
|
const concat = (parts) => ({ type: "concat", parts });
|
|
3
|
+
/**
|
|
4
|
+
* Literal text whose trailing whitespace is content, not layout.
|
|
5
|
+
*
|
|
6
|
+
* {@link printDocToString} strips spaces and tabs from the end of a line before
|
|
7
|
+
* writing a newline, which is right for generated code and wrong for the one
|
|
8
|
+
* node emitted as unquoted source text, `JsxText`: a trimmed trailing space
|
|
9
|
+
* there deletes a JSX separator and changes what the component renders. Text
|
|
10
|
+
* emitted through this node is never trimmed.
|
|
11
|
+
*/
|
|
12
|
+
const raw = (text) => ({ type: "raw", text });
|
|
3
13
|
/** A group: printed flat when it fits, broken otherwise. */
|
|
4
14
|
const group = (doc, shouldBreak = false) => ({
|
|
5
15
|
type: "group",
|
|
@@ -78,6 +88,9 @@ const fits = (next, rest, remaining) => {
|
|
|
78
88
|
continue;
|
|
79
89
|
}
|
|
80
90
|
switch (doc.type) {
|
|
91
|
+
case "raw":
|
|
92
|
+
width -= doc.text.length;
|
|
93
|
+
break;
|
|
81
94
|
case "concat":
|
|
82
95
|
for (let i = doc.parts.length - 1; i >= 0; i--)
|
|
83
96
|
cmds.push([ind, mode, doc.parts[i]]);
|
|
@@ -113,21 +126,34 @@ const printDocToString = (doc, options) => {
|
|
|
113
126
|
const { printWidth, newLine, indent: tab } = options;
|
|
114
127
|
const out = [];
|
|
115
128
|
let pos = 0;
|
|
129
|
+
// whether the tail of `out` is raw text, whose trailing whitespace is content
|
|
130
|
+
let rawTail = false;
|
|
116
131
|
const cmds = [[0, MODE_BREAK, doc]];
|
|
117
132
|
const newlineTo = (ind) => {
|
|
118
|
-
if (out.length)
|
|
133
|
+
if (out.length && !rawTail)
|
|
119
134
|
out[out.length - 1] = out[out.length - 1].replace(/[ \t]+$/, "");
|
|
120
135
|
out.push(newLine + tab.repeat(ind));
|
|
121
136
|
pos = tab.length * ind;
|
|
137
|
+
rawTail = false;
|
|
122
138
|
};
|
|
123
139
|
while (cmds.length) {
|
|
124
140
|
const [ind, mode, d] = cmds.pop();
|
|
125
141
|
if (typeof d === "string") {
|
|
126
|
-
|
|
127
|
-
|
|
142
|
+
// an empty string contributes nothing but would become the tail that
|
|
143
|
+
// `newlineTo` trims, hiding the real end of the line behind it
|
|
144
|
+
if (d.length !== 0) {
|
|
145
|
+
out.push(d);
|
|
146
|
+
pos += d.length;
|
|
147
|
+
rawTail = false;
|
|
148
|
+
}
|
|
128
149
|
continue;
|
|
129
150
|
}
|
|
130
151
|
switch (d.type) {
|
|
152
|
+
case "raw":
|
|
153
|
+
out.push(d.text);
|
|
154
|
+
pos += d.text.length;
|
|
155
|
+
rawTail = true;
|
|
156
|
+
break;
|
|
131
157
|
case "concat":
|
|
132
158
|
for (let i = d.parts.length - 1; i >= 0; i--)
|
|
133
159
|
cmds.push([ind, mode, d.parts[i]]);
|
|
@@ -167,5 +193,5 @@ const printDocToString = (doc, options) => {
|
|
|
167
193
|
return out.join("");
|
|
168
194
|
};
|
|
169
195
|
|
|
170
|
-
export { concat, group, hardline, ifBreak, indent, join, line, printDocToString, softline };
|
|
196
|
+
export { concat, group, hardline, ifBreak, indent, join, line, printDocToString, raw, softline };
|
|
171
197
|
//# sourceMappingURL=doc.mjs.map
|
package/lib/internal/doc.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doc.mjs","sources":["../../src/internal/doc.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"doc.mjs","sources":["../../src/internal/doc.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -4,10 +4,12 @@
|
|
|
4
4
|
*
|
|
5
5
|
* An outline of the relevant subset of the legacy `ts.NodeFlags`. Each member's
|
|
6
6
|
* value is the keyword it implies (`Let = "let"`, `Const = "const"`), so the
|
|
7
|
-
* printer reads it directly. `Namespace`
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
7
|
+
* printer reads it directly. `Namespace` selects the keyword a module
|
|
8
|
+
* declaration with an identifier name prints: with the flag it is `namespace
|
|
9
|
+
* A`, without it `module A`. A string-literal name is always `module "…"`, so
|
|
10
|
+
* the flag says nothing there. A string-valued enum (deliberately not `const
|
|
11
|
+
* enum`, so consumers compiled with `isolatedModules` can still reference its
|
|
12
|
+
* members).
|
|
11
13
|
*
|
|
12
14
|
* @author Jeongho Nam - https://github.com/samchon
|
|
13
15
|
*/
|
package/lib/syntax/NodeFlags.js
CHANGED
|
@@ -7,10 +7,12 @@ exports.NodeFlags = void 0;
|
|
|
7
7
|
*
|
|
8
8
|
* An outline of the relevant subset of the legacy `ts.NodeFlags`. Each member's
|
|
9
9
|
* value is the keyword it implies (`Let = "let"`, `Const = "const"`), so the
|
|
10
|
-
* printer reads it directly. `Namespace`
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
10
|
+
* printer reads it directly. `Namespace` selects the keyword a module
|
|
11
|
+
* declaration with an identifier name prints: with the flag it is `namespace
|
|
12
|
+
* A`, without it `module A`. A string-literal name is always `module "…"`, so
|
|
13
|
+
* the flag says nothing there. A string-valued enum (deliberately not `const
|
|
14
|
+
* enum`, so consumers compiled with `isolatedModules` can still reference its
|
|
15
|
+
* members).
|
|
14
16
|
*
|
|
15
17
|
* @author Jeongho Nam - https://github.com/samchon
|
|
16
18
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeFlags.js","sourceRoot":"","sources":["../../src/syntax/NodeFlags.ts"],"names":[],"mappings":";;;AAAA
|
|
1
|
+
{"version":3,"file":"NodeFlags.js","sourceRoot":"","sources":["../../src/syntax/NodeFlags.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;GAcG;AACH,IAAY,SAKX;AALD,WAAY,SAAS;IACnB,sBAAS,CAAA;IACT,wBAAW,CAAA;IACX,4BAAe,CAAA;IACf,oCAAuB,CAAA;AACzB,CAAC,EALW,SAAS,aAAT,SAAS,GAAT,SAAS,QAKpB"}
|
package/lib/syntax/NodeFlags.mjs
CHANGED
|
@@ -4,10 +4,12 @@
|
|
|
4
4
|
*
|
|
5
5
|
* An outline of the relevant subset of the legacy `ts.NodeFlags`. Each member's
|
|
6
6
|
* value is the keyword it implies (`Let = "let"`, `Const = "const"`), so the
|
|
7
|
-
* printer reads it directly. `Namespace`
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
7
|
+
* printer reads it directly. `Namespace` selects the keyword a module
|
|
8
|
+
* declaration with an identifier name prints: with the flag it is `namespace
|
|
9
|
+
* A`, without it `module A`. A string-literal name is always `module "…"`, so
|
|
10
|
+
* the flag says nothing there. A string-valued enum (deliberately not `const
|
|
11
|
+
* enum`, so consumers compiled with `isolatedModules` can still reference its
|
|
12
|
+
* members).
|
|
11
13
|
*
|
|
12
14
|
* @author Jeongho Nam - https://github.com/samchon
|
|
13
15
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeFlags.mjs","sources":["../../src/syntax/NodeFlags.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"NodeFlags.mjs","sources":["../../src/syntax/NodeFlags.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;AAcG;IACS;AAAZ,CAAA,UAAY,SAAS,EAAA;AACnB,IAAA,SAAA,CAAA,MAAA,CAAA,GAAA,EAAS;AACT,IAAA,SAAA,CAAA,KAAA,CAAA,GAAA,KAAW;AACX,IAAA,SAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,SAAA,CAAA,WAAA,CAAA,GAAA,WAAuB;AACzB,CAAC,EALW,SAAS,KAAT,SAAS,GAAA,EAAA,CAAA,CAAA;;;;"}
|
package/lib/syntax/SyntaxKind.js
CHANGED
|
@@ -31,6 +31,12 @@ var SyntaxKind;
|
|
|
31
31
|
SyntaxKind["TrueKeyword"] = "true";
|
|
32
32
|
SyntaxKind["FalseKeyword"] = "false";
|
|
33
33
|
SyntaxKind["ThisKeyword"] = "this";
|
|
34
|
+
// import phase modifiers — the two keywords that may precede an import
|
|
35
|
+
// clause's bindings. Upstream types them as
|
|
36
|
+
// `ImportPhaseModifierSyntaxKind = TypeKeyword | DeferKeyword`, and
|
|
37
|
+
// `createImportClause` takes one where this factory used to take a boolean.
|
|
38
|
+
SyntaxKind["TypeKeyword"] = "type";
|
|
39
|
+
SyntaxKind["DeferKeyword"] = "defer";
|
|
34
40
|
// modifiers
|
|
35
41
|
SyntaxKind["ExportKeyword"] = "export";
|
|
36
42
|
SyntaxKind["DefaultKeyword"] = "default";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SyntaxKind.js","sourceRoot":"","sources":["../../src/syntax/SyntaxKind.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;GAWG;AACH,IAAY,
|
|
1
|
+
{"version":3,"file":"SyntaxKind.js","sourceRoot":"","sources":["../../src/syntax/SyntaxKind.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;GAWG;AACH,IAAY,UA4GX;AA5GD,WAAY,UAAU;IACpB,wCAAwC;IACxC,gCAAkB,CAAA;IAClB,wCAA0B,CAAA;IAC1B,sCAAwB,CAAA;IACxB,sCAAwB,CAAA;IACxB,sCAAwB,CAAA;IACxB,wCAA0B,CAAA;IAC1B,sCAAwB,CAAA;IACxB,sCAAwB,CAAA;IACxB,kCAAoB,CAAA;IACpB,4CAA8B,CAAA;IAC9B,kCAAoB,CAAA;IACpB,oCAAsB,CAAA;IACtB,kCAAoB,CAAA;IACpB,oCAAsB,CAAA;IACtB,kCAAoB,CAAA;IAEpB,uEAAuE;IACvE,4CAA4C;IAC5C,oEAAoE;IACpE,4EAA4E;IAC5E,kCAAoB,CAAA;IACpB,oCAAsB,CAAA;IAEtB,YAAY;IACZ,sCAAwB,CAAA;IACxB,wCAA0B,CAAA;IAC1B,wCAA0B,CAAA;IAC1B,0CAA4B,CAAA;IAC5B,oCAAsB,CAAA;IACtB,oCAAsB,CAAA;IACtB,sCAAwB,CAAA;IACxB,wCAA0B,CAAA;IAC1B,4CAA8B,CAAA;IAC9B,0CAA4B,CAAA;IAC5B,sCAAwB,CAAA;IACxB,0CAA4B,CAAA;IAC5B,0CAA4B,CAAA;IAE5B,6CAA6C;IAC7C,wCAA0B,CAAA;IAC1B,8CAAgC,CAAA;IAChC,oCAAsB,CAAA;IACtB,sCAAwB,CAAA;IACxB,wCAA0B,CAAA;IAC1B,oCAAsB,CAAA;IACtB,sCAAwB,CAAA;IACxB,gCAAkB,CAAA;IAClB,oCAAsB,CAAA;IACtB,8BAAgB,CAAA;IAChB,8CAAgC,CAAA;IAChC,8BAAgB,CAAA;IAChB,4CAA8B,CAAA;IAC9B,sCAAwB,CAAA;IAExB,cAAc;IACd,oCAAsB,CAAA;IACtB,iCAAmB,CAAA;IACnB,qCAAuB,CAAA;IACvB,8BAAgB,CAAA;IAChB,8BAAgB,CAAA;IAChB,2CAA6B,CAAA;IAE7B,qBAAqB;IACrB,6BAAe,CAAA;IACf,8BAAgB,CAAA;IAChB,iCAAmB,CAAA;IACnB,0CAA4B,CAAA;IAC5B,8BAAgB,CAAA;IAChB,gCAAkB,CAAA;IAClB,kCAAoB,CAAA;IACpB,oCAAsB,CAAA;IACtB,oCAAsB,CAAA;IACtB,8BAAgB,CAAA;IAEhB,UAAU;IACV,kCAAoB,CAAA;IACpB,4BAAc,CAAA;IACd,8BAAgB,CAAA;IAChB,0CAA4B,CAAA;IAC5B,gDAAkC,CAAA;IAClC,4DAA8C,CAAA;IAE9C,kCAAkC;IAClC,iCAAmB,CAAA;IACnB,wCAA0B,CAAA;IAC1B,oCAAsB,CAAA;IACtB,2CAA6B,CAAA;IAC7B,sCAAwB,CAAA;IACxB,6CAA+B,CAAA;IAC/B,2CAA6B,CAAA;IAC7B,kDAAoC,CAAA;IACpC,4CAA8B,CAAA;IAC9B,gCAAkB,CAAA;IAClB,0CAA4B,CAAA;IAE5B,aAAa;IACb,+BAAiB,CAAA;IACjB,oCAAsB,CAAA;IACtB,qCAAuB,CAAA;IACvB,wCAA0B,CAAA;IAC1B,qCAAuB,CAAA;IACvB,iDAAmC,CAAA;IAEnC,yEAAyE;IACzE,4CAA8B,CAAA;IAC9B,2CAA6B,CAAA;AAC/B,CAAC,EA5GW,UAAU,aAAV,UAAU,GAAV,UAAU,QA4GrB"}
|
|
@@ -28,6 +28,12 @@ var SyntaxKind;
|
|
|
28
28
|
SyntaxKind["TrueKeyword"] = "true";
|
|
29
29
|
SyntaxKind["FalseKeyword"] = "false";
|
|
30
30
|
SyntaxKind["ThisKeyword"] = "this";
|
|
31
|
+
// import phase modifiers — the two keywords that may precede an import
|
|
32
|
+
// clause's bindings. Upstream types them as
|
|
33
|
+
// `ImportPhaseModifierSyntaxKind = TypeKeyword | DeferKeyword`, and
|
|
34
|
+
// `createImportClause` takes one where this factory used to take a boolean.
|
|
35
|
+
SyntaxKind["TypeKeyword"] = "type";
|
|
36
|
+
SyntaxKind["DeferKeyword"] = "defer";
|
|
31
37
|
// modifiers
|
|
32
38
|
SyntaxKind["ExportKeyword"] = "export";
|
|
33
39
|
SyntaxKind["DefaultKeyword"] = "default";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SyntaxKind.mjs","sources":["../../src/syntax/SyntaxKind.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAA;;;;;;;;;;;AAWG;IACS;AAAZ,CAAA,UAAY,UAAU,EAAA;;AAEpB,IAAA,UAAA,CAAA,YAAA,CAAA,GAAA,KAAkB;AAClB,IAAA,UAAA,CAAA,gBAAA,CAAA,GAAA,SAA0B;AAC1B,IAAA,UAAA,CAAA,eAAA,CAAA,GAAA,QAAwB;AACxB,IAAA,UAAA,CAAA,eAAA,CAAA,GAAA,QAAwB;AACxB,IAAA,UAAA,CAAA,eAAA,CAAA,GAAA,QAAwB;AACxB,IAAA,UAAA,CAAA,gBAAA,CAAA,GAAA,SAA0B;AAC1B,IAAA,UAAA,CAAA,eAAA,CAAA,GAAA,QAAwB;AACxB,IAAA,UAAA,CAAA,eAAA,CAAA,GAAA,QAAwB;AACxB,IAAA,UAAA,CAAA,aAAA,CAAA,GAAA,MAAoB;AACpB,IAAA,UAAA,CAAA,kBAAA,CAAA,GAAA,WAA8B;AAC9B,IAAA,UAAA,CAAA,aAAA,CAAA,GAAA,MAAoB;AACpB,IAAA,UAAA,CAAA,cAAA,CAAA,GAAA,OAAsB;AACtB,IAAA,UAAA,CAAA,aAAA,CAAA,GAAA,MAAoB;AACpB,IAAA,UAAA,CAAA,cAAA,CAAA,GAAA,OAAsB;AACtB,IAAA,UAAA,CAAA,aAAA,CAAA,GAAA,MAAoB;;
|
|
1
|
+
{"version":3,"file":"SyntaxKind.mjs","sources":["../../src/syntax/SyntaxKind.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ttsc/factory",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.20.0",
|
|
4
4
|
"description": "Self-contained legacy-style TypeScript AST factory and printer for source code generation, surviving the TypeScript-Go (tsgo) migration. Zero dependencies, no `typescript` import.",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"exports": {
|