@backtickjs/compiler 0.1.10 → 0.1.11
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 +1 -1
- package/dist/compileScript.js +4 -2
- package/dist/compileScript.js.map +1 -1
- package/dist/emitScript.js +14 -5
- package/dist/emitScript.js.map +1 -1
- package/dist/inTypePosition.d.ts +1 -0
- package/dist/inTypePosition.js +14 -4
- package/dist/inTypePosition.js.map +1 -1
- package/dist/isClass.d.ts +2 -0
- package/dist/isClass.js +7 -0
- package/dist/isClass.js.map +1 -0
- package/dist/rewriteScript.d.ts +1 -1
- package/dist/rewriteScript.js +16 -8
- package/dist/rewriteScript.js.map +1 -1
- package/package.json +2 -2
- package/src/compileScript.ts +4 -2
- package/src/emitScript.ts +32 -6
- package/src/inTypePosition.ts +20 -6
- package/src/isClass.ts +11 -0
- package/src/rewriteScript.ts +19 -9
package/README.md
CHANGED
|
@@ -19,7 +19,7 @@ It finds each script in a source file, resolves its splices, compiles the script
|
|
|
19
19
|
|
|
20
20
|
- [`@backtickjs/core`](https://github.com/backtickjs/backtick/tree/main/packages/core): the `cs` tag
|
|
21
21
|
- [`@backtickjs/tsc`](https://github.com/backtickjs/backtick/tree/main/packages/tsc), [`@backtickjs/node-plugin`](https://github.com/backtickjs/backtick/tree/main/packages/node-plugin), [`@backtickjs/bun-plugin`](https://github.com/backtickjs/backtick/tree/main/packages/bun-plugin): packages that use it
|
|
22
|
-
- [How it works](https://backtickjs.com/docs/how-it-works)
|
|
22
|
+
- [How it works](https://backtickjs.com/docs/how-it-works/)
|
|
23
23
|
|
|
24
24
|
## License
|
|
25
25
|
|
package/dist/compileScript.js
CHANGED
|
@@ -16,13 +16,15 @@ export function compileScript(ts, script, sourceName, plugins) {
|
|
|
16
16
|
maps.unshift(compiled.map);
|
|
17
17
|
}
|
|
18
18
|
// The module as CommonJS, by TypeScript: its imports `require` calls, its
|
|
19
|
-
// default export `exports.default`, so it runs as a function's body.
|
|
19
|
+
// default export `exports.default`, so it runs as a function's body. As
|
|
20
|
+
// Node's CommonJS, which keeps a dynamic `import()` one, as it would be in
|
|
21
|
+
// the same code written by hand, not a `require` of the module table.
|
|
20
22
|
const dependencies = [];
|
|
21
23
|
const output = ts.transpileModule(code, {
|
|
22
24
|
fileName: "module.jsx",
|
|
23
25
|
compilerOptions: {
|
|
24
26
|
jsx: ts.JsxEmit.Preserve,
|
|
25
|
-
module: ts.ModuleKind.
|
|
27
|
+
module: ts.ModuleKind.NodeNext,
|
|
26
28
|
target: ts.ScriptTarget.ESNext,
|
|
27
29
|
sourceMap: true,
|
|
28
30
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compileScript.js","sourceRoot":"","sources":["../src/compileScript.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,uBAAuB,CAAC;AAoB9C;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAC3B,EAA+B,EAC/B,MAAqB,EACrB,UAAkB,EAClB,OAA0B;IAE1B,IAAI,IAAI,GAAG,qBAAqB,MAAM,CAAC,IAAI,MAAM,CAAC;IAClD,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IACrD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,MAAM,CAAC,CAAC;QACnD,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;QACrB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IACD,0EAA0E;IAC1E,
|
|
1
|
+
{"version":3,"file":"compileScript.js","sourceRoot":"","sources":["../src/compileScript.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,uBAAuB,CAAC;AAoB9C;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAC3B,EAA+B,EAC/B,MAAqB,EACrB,UAAkB,EAClB,OAA0B;IAE1B,IAAI,IAAI,GAAG,qBAAqB,MAAM,CAAC,IAAI,MAAM,CAAC;IAClD,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IACrD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,MAAM,CAAC,CAAC;QACnD,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;QACrB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IACD,0EAA0E;IAC1E,wEAAwE;IACxE,2EAA2E;IAC3E,sEAAsE;IACtE,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,MAAM,MAAM,GAAG,EAAE,CAAC,eAAe,CAAC,IAAI,EAAE;QACtC,QAAQ,EAAE,YAAY;QACtB,eAAe,EAAE;YACf,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ;YACxB,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ;YAC9B,MAAM,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM;YAC9B,SAAS,EAAE,IAAI;SAChB;QACD,YAAY,EAAE,EAAE,MAAM,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC,EAAE;KACzD,CAAC,CAAC;IACH,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,aAAc,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,8BAA8B,EAAE,EAAE,CAAC,CAAC;IAC3E,yEAAyE;IACzE,qBAAqB;IACrB,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC7E,OAAO;QACL,IAAI,EAAE,oCAAoC,IAAI,KAAK;QACnD,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC;QACd,YAAY;KACb,CAAC;AACJ,CAAC;AAED,0EAA0E;AAC1E,SAAS,UAAU,CACjB,EAA+B,EAC/B,IAAc;IAEd,OAAO,GAAG,EAAE,CAAC,CAAC,UAAU,EAAE,EAAE;QAC1B,KAAK,MAAM,SAAS,IAAI,UAAU,CAAC,UAAU,EAAE,CAAC;YAC9C,IACE,EAAE,CAAC,mBAAmB,CAAC,SAAS,CAAC;gBACjC,EAAE,CAAC,eAAe,CAAC,SAAS,CAAC,eAAe,CAAC;gBAC7C,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,EAC9C,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;AACJ,CAAC;AAED,yEAAyE;AACzE,SAAS,OAAO,CAAC,GAAW,EAAE,UAAkB;IAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAW,CAAC;IACzC,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AAC9D,CAAC;AAED,8EAA8E;AAC9E,mBAAmB;AACnB,SAAS,IAAI,CAAC,GAAW;IACvB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAyB,CAAC;IACvD,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AACxE,CAAC"}
|
package/dist/emitScript.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { addMapping, GenMapping, toEncodedMap } from "@jridgewell/gen-mapping";
|
|
2
2
|
import { eachMapping, TraceMap } from "@jridgewell/trace-mapping";
|
|
3
|
+
import { namesValue } from "./inTypePosition.js";
|
|
4
|
+
import { isClass } from "./isClass.js";
|
|
3
5
|
import { tagRoot } from "./tagRoot.js";
|
|
4
6
|
/**
|
|
5
7
|
* A script parameter's name: its kind and its index in a script's `params`,
|
|
@@ -99,8 +101,10 @@ export function emitScript(ts, script, params, edits) {
|
|
|
99
101
|
: call;
|
|
100
102
|
};
|
|
101
103
|
const visit = (node) => {
|
|
102
|
-
// Types are TypeScript's to strip, after this
|
|
103
|
-
|
|
104
|
+
// Types are TypeScript's to strip, after this, but for the type nodes
|
|
105
|
+
// that name a value, which is rewritten.
|
|
106
|
+
if ((ts.isTypeNode(node) && !namesValue(ts, node)) ||
|
|
107
|
+
asWritten.has(node)) {
|
|
104
108
|
return node;
|
|
105
109
|
}
|
|
106
110
|
if (ts.isJsxElement(node) || ts.isJsxSelfClosingElement(node)) {
|
|
@@ -126,10 +130,15 @@ export function emitScript(ts, script, params, edits) {
|
|
|
126
130
|
if (statement === undefined) {
|
|
127
131
|
return file;
|
|
128
132
|
}
|
|
129
|
-
|
|
130
|
-
|
|
133
|
+
const classExpression = (node) => ts.setOriginalNode(ts.setTextRange(f.createClassExpression(undefined, node.name, node.typeParameters, node.heritageClauses, node.members), node), node);
|
|
134
|
+
// Where the script stands, so the entry maps to it. A class declaration
|
|
135
|
+
// is its class as an expression.
|
|
136
|
+
const body = ts.isExpressionStatement(statement)
|
|
131
137
|
? ts.visitNode(statement.expression, visit, ts.isExpression)
|
|
132
|
-
:
|
|
138
|
+
: isClass(ts, statement)
|
|
139
|
+
? classExpression(ts.visitNode(statement, visit, ts.isClassDeclaration))
|
|
140
|
+
: ts.visitNode(statement, visit, ts.isBlock);
|
|
141
|
+
const entry = ts.setTextRange(f.createArrowFunction(undefined, undefined, params.map((name) => f.createParameterDeclaration(undefined, undefined, name)), undefined, f.createToken(ts.SyntaxKind.EqualsGreaterThanToken), body), statement);
|
|
133
142
|
return f.updateSourceFile(file, [
|
|
134
143
|
ts.setOriginalNode(f.createExpressionStatement(entry), statement),
|
|
135
144
|
]);
|
package/dist/emitScript.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emitScript.js","sourceRoot":"","sources":["../src/emitScript.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"emitScript.js","sourceRoot":"","sources":["../src/emitScript.ts"],"names":[],"mappings":"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"}
|
package/dist/inTypePosition.d.ts
CHANGED
package/dist/inTypePosition.js
CHANGED
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
// Whether a name stands in a type, which names types rather than values: all
|
|
2
|
-
// but what a `typeof` reads, and a
|
|
2
|
+
// but what a `typeof` reads, and what `namesValue` says is a value.
|
|
3
3
|
export function inTypePosition(ts, node) {
|
|
4
4
|
for (let at = node; at.parent !== undefined; at = at.parent) {
|
|
5
5
|
const parent = at.parent;
|
|
6
6
|
if (ts.isTypeQueryNode(parent)) {
|
|
7
7
|
return false;
|
|
8
8
|
}
|
|
9
|
-
if (ts
|
|
10
|
-
ts.isHeritageClause(parent.parent) &&
|
|
11
|
-
ts.isClassLike(parent.parent.parent)) {
|
|
9
|
+
if (namesValue(ts, parent)) {
|
|
12
10
|
return false;
|
|
13
11
|
}
|
|
14
12
|
if (ts.isTypeNode(parent)) {
|
|
@@ -17,4 +15,16 @@ export function inTypePosition(ts, node) {
|
|
|
17
15
|
}
|
|
18
16
|
return false;
|
|
19
17
|
}
|
|
18
|
+
// A type node that names a value: `f<T>`, a function given type arguments,
|
|
19
|
+
// and a class's `extends Base<T>`. `implements` and an interface's `extends`
|
|
20
|
+
// name types.
|
|
21
|
+
export function namesValue(ts, node) {
|
|
22
|
+
if (!ts.isExpressionWithTypeArguments(node)) {
|
|
23
|
+
return false;
|
|
24
|
+
}
|
|
25
|
+
const clause = node.parent;
|
|
26
|
+
return (!ts.isHeritageClause(clause) ||
|
|
27
|
+
(clause.token === ts.SyntaxKind.ExtendsKeyword &&
|
|
28
|
+
ts.isClassLike(clause.parent)));
|
|
29
|
+
}
|
|
20
30
|
//# sourceMappingURL=inTypePosition.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inTypePosition.js","sourceRoot":"","sources":["../src/inTypePosition.ts"],"names":[],"mappings":"AAEA,6EAA6E;AAC7E,
|
|
1
|
+
{"version":3,"file":"inTypePosition.js","sourceRoot":"","sources":["../src/inTypePosition.ts"],"names":[],"mappings":"AAEA,6EAA6E;AAC7E,oEAAoE;AACpE,MAAM,UAAU,cAAc,CAC5B,EAA+B,EAC/B,IAAmB;IAEnB,KAAK,IAAI,EAAE,GAAY,IAAI,EAAE,EAAE,CAAC,MAAM,KAAK,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC;QACrE,MAAM,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;QACzB,IAAI,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/B,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,UAAU,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC;YAC3B,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,2EAA2E;AAC3E,6EAA6E;AAC7E,cAAc;AACd,MAAM,UAAU,UAAU,CACxB,EAA+B,EAC/B,IAAa;IAEb,IAAI,CAAC,EAAE,CAAC,6BAA6B,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5C,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAC3B,OAAO,CACL,CAAC,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC;QAC5B,CAAC,MAAM,CAAC,KAAK,KAAK,EAAE,CAAC,UAAU,CAAC,cAAc;YAC5C,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CACjC,CAAC;AACJ,CAAC"}
|
package/dist/isClass.js
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// `class Foo {}`, a script that is a class, written as a declaration: its class
|
|
2
|
+
// as an expression. Modifiers such as `export` or `abstract` have no
|
|
3
|
+
// expression form.
|
|
4
|
+
export function isClass(ts, statement) {
|
|
5
|
+
return ts.isClassDeclaration(statement) && statement.modifiers === undefined;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=isClass.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isClass.js","sourceRoot":"","sources":["../src/isClass.ts"],"names":[],"mappings":"AAEA,gFAAgF;AAChF,qEAAqE;AACrE,mBAAmB;AACnB,MAAM,UAAU,OAAO,CACrB,EAA+B,EAC/B,SAAuB;IAEvB,OAAO,EAAE,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,SAAS,KAAK,SAAS,CAAC;AAC/E,CAAC"}
|
package/dist/rewriteScript.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ import type { BindingResolution, ResolvedParam } from "./resolveBindings.js";
|
|
|
7
7
|
/** What `cs.create` is handed for a script: which it is, and what it runs. */
|
|
8
8
|
export interface RuntimeScript {
|
|
9
9
|
id: string;
|
|
10
|
-
kind: "function" | "expression" | "block";
|
|
10
|
+
kind: "function" | "class" | "expression" | "block";
|
|
11
11
|
params: ts.Expression;
|
|
12
12
|
args: ts.Expression;
|
|
13
13
|
emitted: EmittedScript;
|
package/dist/rewriteScript.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { emitScript, paramName, scriptEdits, } from "./emitScript.js";
|
|
2
|
+
import { isClass } from "./isClass.js";
|
|
2
3
|
import { isComponentTag } from "./isComponentTag.js";
|
|
3
4
|
import { call } from "./nodeFactory.js";
|
|
4
5
|
import { tagRoot } from "./tagRoot.js";
|
|
@@ -71,26 +72,33 @@ export function rewriteScript(ts, clientScript, fileHash, bindings, params = [])
|
|
|
71
72
|
code: diagnostic.code,
|
|
72
73
|
})));
|
|
73
74
|
}
|
|
74
|
-
// A script is one expression or one block: statements go in
|
|
75
|
+
// A script is one expression, one class or one block: statements go in
|
|
76
|
+
// braces. A class is written as a declaration, `class Foo {}`.
|
|
75
77
|
const [statement] = fileWithPlaceholders.statements;
|
|
76
78
|
if (fileWithPlaceholders.statements.length !== 1 ||
|
|
77
|
-
!(ts.isExpressionStatement(statement) ||
|
|
79
|
+
!(ts.isExpressionStatement(statement) ||
|
|
80
|
+
ts.isBlock(statement) ||
|
|
81
|
+
isClass(ts, statement))) {
|
|
78
82
|
return leftAsWritten([
|
|
79
83
|
{
|
|
80
84
|
range: scriptRange,
|
|
81
|
-
message: "A `cs` client script is one expression or one block:
|
|
82
|
-
"statements in braces, e.g. cs`{ a(); b(); }`.",
|
|
85
|
+
message: "A `cs` client script is one expression, one class or one block: " +
|
|
86
|
+
"write statements in braces, e.g. cs`{ a(); b(); }`.",
|
|
83
87
|
category: ts.DiagnosticCategory.Error,
|
|
84
88
|
code: 0,
|
|
85
89
|
},
|
|
86
90
|
]);
|
|
87
91
|
}
|
|
92
|
+
const expression = ts.isExpressionStatement(statement)
|
|
93
|
+
? skipParentheses(ts, statement.expression)
|
|
94
|
+
: undefined;
|
|
88
95
|
const kind = ts.isBlock(statement)
|
|
89
96
|
? "block"
|
|
90
|
-
: ts.
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
97
|
+
: expression === undefined || ts.isClassExpression(expression)
|
|
98
|
+
? "class"
|
|
99
|
+
: ts.isArrowFunction(expression) || ts.isFunctionExpression(expression)
|
|
100
|
+
? "function"
|
|
101
|
+
: "expression";
|
|
94
102
|
// A `${…}` written where the script has text rather than code is no splice.
|
|
95
103
|
const unspliced = unsplicedSpans(ts, clientScript);
|
|
96
104
|
if (unspliced.length > 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rewriteScript.js","sourceRoot":"","sources":["../src/rewriteScript.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rewriteScript.js","sourceRoot":"","sources":["../src/rewriteScript.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,UAAU,EACV,SAAS,EACT,WAAW,GACZ,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAIxC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAcvC;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAC/B,EAA+B,EAC/B,IAAY,EACZ,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAiB,EACnC,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAkB;IAE3C,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC;IACrB,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC7D,OAAO,CAAC,CAAC,uBAAuB,CAC9B,SAAS,EACT,CAAC,CAAC,6BAA6B,CAC7B;QACE,CAAC,CAAC,yBAAyB,CACzB,IAAI,EACJ,SAAS,EACT,SAAS,EACT,CAAC,CAAC,6BAA6B,CAC7B;YACE,CAAC,CAAC,wBAAwB,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;YAC5C,CAAC,CAAC,wBAAwB,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YAChD,CAAC,CAAC,wBAAwB,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;YAC9C,CAAC,CAAC,wBAAwB,CACxB,cAAc,EACd,CAAC,CAAC,4BAA4B,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CACzD;YACD,CAAC,CAAC,wBAAwB,CAAC,QAAQ,EAAE,MAAM,CAAC;YAC5C,CAAC,CAAC,wBAAwB,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;SACjD,EACD,IAAI,CACL,CACF;KACF,EACD,EAAE,CAAC,SAAS,CAAC,KAAK,CACnB,CACF,CAAC;AACJ,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,UAAU,CACxB,EAA+B,EAC/B,UAAkB,EAClB,EAAE,IAAI,EAAiB;IAEvB,OAAO,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC9B,EAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC;QACvC,IAAI;KACL,CAAC,CAAC;AACL,CAAC;AAWD,MAAM,UAAU,aAAa,CAC3B,EAA+B,EAC/B,YAA0B,EAC1B,QAAgB,EAChB,QAA2B,EAC3B,SAAmC,EAAE;IAErC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,oBAAoB,EAAE,GAAG,YAAY,CAAC;IAEtE,sEAAsE;IACtE,0DAA0D;IAC1D,MAAM,aAAa,GAAG,CAAC,WAAyB,EAAmB,EAAE,CAAC,CAAC;QACrE,OAAO,EAAE,IAAI;QACb,aAAa,EAAE,IAAI;QACnB,WAAW;KACZ,CAAC,CAAC;IAEH,MAAM,WAAW,GAAgB;QAC/B,KAAK,EAAE,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC;QACtC,GAAG,EAAE,UAAU,CAAC,MAAM,EAAE;KACzB,CAAC;IAEF,0EAA0E;IAC1E,4EAA4E;IAC5E,0EAA0E;IAC1E,yEAAyE;IACzE,MAAM,WAAW,GAAG,gBAAgB,CAAC,oBAAoB,CAAC,CAAC;IAC3D,MAAM,eAAe,GAAG,WAAW,CAAC,IAAI,CACtC,CAAC,UAAU,EAAE,EAAE,CACb,YAAY,CAAC,oBAAoB,CAAC,KAAK,CACrC,UAAU,CAAC,KAAM,EACjB,UAAU,CAAC,KAAM,GAAG,CAAC,CACtB,KAAK,KAAK,CACd,CAAC;IACF,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;QAClC,OAAO,aAAa,CAAC;YACnB;gBACE,KAAK,EAAE;oBACL,KAAK,EAAE,YAAY,CAAC,cAAc,CAAC,eAAe,CAAC,KAAM,CAAC;oBAC1D,GAAG,EAAE,YAAY,CAAC,cAAc,CAAC,eAAe,CAAC,KAAM,GAAG,CAAC,CAAC;iBAC7D;gBACD,OAAO,EACL,kEAAkE;oBAClE,uDAAuD;gBACzD,QAAQ,EAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK;gBACrC,IAAI,EAAE,CAAC;aACR;SACF,CAAC,CAAC;IACL,CAAC;IACD,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,OAAO,aAAa,CAClB,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;YAC/B,KAAK,EAAE;gBACL,KAAK,EAAE,YAAY,CAAC,cAAc,CAAC,UAAU,CAAC,KAAM,CAAC;gBACrD,GAAG,EAAE,YAAY,CAAC,cAAc,CAC9B,UAAU,CAAC,KAAM,GAAG,UAAU,CAAC,MAAO,CACvC;aACF;YACD,OAAO,EAAE,EAAE,CAAC,4BAA4B,CAAC,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC;YACtE,QAAQ,EAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK;YACrC,IAAI,EAAE,UAAU,CAAC,IAAI;SACtB,CAAC,CAAC,CACJ,CAAC;IACJ,CAAC;IAED,uEAAuE;IACvE,+DAA+D;IAC/D,MAAM,CAAC,SAAS,CAAC,GAAG,oBAAoB,CAAC,UAAU,CAAC;IACpD,IACE,oBAAoB,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC;QAC5C,CAAC,CACC,EAAE,CAAC,qBAAqB,CAAC,SAAU,CAAC;YACpC,EAAE,CAAC,OAAO,CAAC,SAAU,CAAC;YACtB,OAAO,CAAC,EAAE,EAAE,SAAU,CAAC,CACxB,EACD,CAAC;QACD,OAAO,aAAa,CAAC;YACnB;gBACE,KAAK,EAAE,WAAW;gBAClB,OAAO,EACL,kEAAkE;oBAClE,qDAAqD;gBACvD,QAAQ,EAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK;gBACrC,IAAI,EAAE,CAAC;aACR;SACF,CAAC,CAAC;IACL,CAAC;IAED,MAAM,UAAU,GAAG,EAAE,CAAC,qBAAqB,CAAC,SAAU,CAAC;QACrD,CAAC,CAAC,eAAe,CAAC,EAAE,EAAE,SAAS,CAAC,UAAU,CAAC;QAC3C,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,SAAU,CAAC;QACjC,CAAC,CAAC,OAAO;QACT,CAAC,CAAC,UAAU,KAAK,SAAS,IAAI,EAAE,CAAC,iBAAiB,CAAC,UAAU,CAAC;YAC5D,CAAC,CAAC,OAAO;YACT,CAAC,CAAC,EAAE,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,oBAAoB,CAAC,UAAU,CAAC;gBACrE,CAAC,CAAC,UAAU;gBACZ,CAAC,CAAC,YAAY,CAAC;IAErB,4EAA4E;IAC5E,MAAM,SAAS,GAAG,cAAc,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;IACnD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,OAAO,aAAa,CAAC,SAAS,CAAC,CAAC;IAClC,CAAC;IAED,oEAAoE;IACpE,4DAA4D;IAC5D,MAAM,OAAO,GAAG,QAAQ,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;IACrD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,aAAa,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAED,yEAAyE;IACzE,iBAAiB;IACjB,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,UAAU,CAAC,6BAA6B,CAClE,WAAW,CAAC,KAAK,CAClB,CAAC;IACF,MAAM,EAAE,GAAG,GAAG,QAAQ,IAAI,IAAI,GAAG,CAAC,IAAI,SAAS,EAAE,CAAC;IAElD,0EAA0E;IAC1E,0EAA0E;IAC1E,SAAS;IACT,MAAM,aAAa,GAAG,CAAC,UAAyC,EAAE,EAAE,CAClE,EAAE,CAAC,OAAO,CAAC,6BAA6B,CACtC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAC/C,EAAE,CAAC,OAAO,CAAC,wBAAwB,CAAC,IAAI,EAAE,KAAK,CAAC,CACjD,EACD,KAAK,CACN,CAAC;IACJ,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACtE,MAAM,aAAa,GAAG,EAAE,CAAC,OAAO,CAAC,4BAA4B,CAC3D,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACnB,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,QAAQ;gBACX,OAAO,aAAa,CAAC;oBACnB,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC;oBACtB,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,4BAA4B,CAC/C,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAC1B,KAAK,CACN;iBACF,CAAC,CAAC;YACL,KAAK,SAAS;gBACZ,OAAO,aAAa,CAAC;oBACnB,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC;oBACvB,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;iBACvB,CAAC,CAAC;QACP,CAAC;IACH,CAAC,CAAC,EACF,KAAK,CACN,CAAC;IACF,MAAM,WAAW,GAAG,EAAE,CAAC,OAAO,CAAC,4BAA4B,CACzD,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CACvB,KAAK,CAAC,IAAI,KAAK,SAAS;QACtB,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAE,CAAC,UAAU,CAAC,CAClD,EACD,KAAK,CACN,CAAC;IAEF,MAAM,OAAO,GAAG,UAAU,CACxB,EAAE,EACF,YAAY,EACZ,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,EACrB,WAAW,CAAC,YAAY,EAAE,QAAQ,EAAE,MAAM,CAAC,CAC5C,CAAC;IAEF,OAAO;QACL,OAAO,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE;QACxE,aAAa,EAAE,KAAK;QACpB,WAAW,EAAE,EAAE;KAChB,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,0EAA0E;AAC1E,8DAA8D;AAC9D,MAAM,UAAU,QAAQ,CACtB,EAA+B,EAC/B,IAAa;IAEb,KAAK,IAAI,KAAK,GAAG,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM,GAAI,CAAC;QACtD,IAAI,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,6BAA6B,CAAC,KAAK,CAAC,EAAE,CAAC;YACrE,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,EAAE,CAAC,qBAAqB,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,WAAW,KAAK,KAAK,EAAE,CAAC;YACrE,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9B,OAAO,CACL,EAAE;iBACC,YAAY,CAAC,MAAoC,CAAC;gBACnD,EAAE,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC;gBACpE,KAAK,CACN,CAAC;QACJ,CAAC;QACD,KAAK,GAAG,MAAM,CAAC;QACf,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IACzB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,0EAA0E;AAC1E,kEAAkE;AAClE,SAAS,cAAc,CACrB,EAA+B,EAC/B,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAgB;IAEjD,MAAM,KAAK,GAAG,EAAE,CAAC,oBAAoB,CAAC,UAAU,CAAC,QAAQ,CAAC;QACxD,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,aAAa;QACnC,CAAC,CAAC,EAAE,CAAC;IACP,OAAO,KAAK;SACT,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,KAAK,EAAE,CAAC,KAAK,SAAS,CAAC;SAC/D,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACd,KAAK,EAAE;YACL,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,GAAG,CAAC,EAAE,UAAU;YACrD,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,WAAW;SACxD;QACD,OAAO,EACL,+DAA+D;YAC/D,gDAAgD;QAClD,QAAQ,EAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK;QACrC,IAAI,EAAE,CAAC;KACR,CAAC,CAAC,CAAC;AACR,CAAC;AAED,yEAAyE;AACzE,8EAA8E;AAC9E,2BAA2B;AAC3B,SAAS,QAAQ,CACf,EAA+B,EAC/B,MAAoB,EACpB,QAA2B;IAE3B,MAAM,WAAW,GAAiB,EAAE,CAAC;IACrC,MAAM,MAAM,GAAG,CAAC,IAAa,EAAE,OAAe,EAAQ,EAAE;QACtD,WAAW,CAAC,IAAI,CAAC;YACf,KAAK,EAAE,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC;YACjC,OAAO;YACP,QAAQ,EAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK;YACrC,IAAI,EAAE,CAAC;SACR,CAAC,CAAC;IACL,CAAC,CAAC;IACF,MAAM,KAAK,GAAG,CAAC,IAAa,EAAQ,EAAE;QACpC,MAAM,IAAI,GACR,CAAC,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC;YAC7B,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC;YACzB,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC;YACpB,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC;YAC9B,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;YAC9B,IAAI,CAAC,IAAI,KAAK,SAAS;YACvB,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;YACxB,CAAC,CAAC,IAAI,CAAC,IAAI;YACX,CAAC,CAAC,SAAS,CAAC;QAChB,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,oEAAoE;YACpE,2DAA2D;YAC3D,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC9B,MAAM,CACJ,IAAI,EACJ,iEAAiE;oBAC/D,gBAAgB,CACnB,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,sEAAsE;gBACtE,gEAAgE;gBAChE,qDAAqD;gBACrD,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACvC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;oBACpB,MAAM,CACJ,IAAI,EACJ,KAAK,IAAI,CAAC,IAAI,0BACZ,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,sBACvC,UAAU,MAAM,GAAG,CACpB,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QACD,0EAA0E;QAC1E,2EAA2E;QAC3E,iCAAiC;QACjC,IAAI,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,uBAAuB,CAAC,IAAI,CAAC,EAAE,CAAC;YACrE,4DAA4D;YAC5D,MAAM,IAAI,GAAG,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YACvC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;YAClE,IAAI,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBACtC,MAAM,CACJ,IAAI,EACJ,8DAA8D;oBAC5D,cAAc,CACjB,CAAC;YACJ,CAAC;iBAAM,IACL,IAAI,KAAK,SAAS;gBAClB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;gBAC1B,oEAAoE;gBACpE,qBAAqB;gBACrB,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACpD,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EACnB,CAAC;gBACD,MAAM,CACJ,IAAI,EACJ,MAAM,OAAO,uDAAuD;oBAClE,iCAAiC,OAAO,MAAM,CACjD,CAAC;YACJ,CAAC;QACH,CAAC;QACD,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC,CAAC;IACF,KAAK,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;IACnC,oEAAoE;IACpE,oCAAoC;IACpC,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QACnD,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACzE,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC9B,MAAM,CACJ,GAAG,EACH,kBAAkB,MAAM,CAAC,UAAU,CAAC,IAAI,iBAAiB;oBACvD,sDAAsD;oBACtD,QAAQ,MAAM,CAAC,UAAU,CAAC,IAAI,MAAM,CACvC,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,oEAAoE;AACpE,SAAS,YAAY,CAAC,IAAY;IAChC,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,MAAM,CAAC;QACZ,KAAK,WAAW;YACd,OAAO,gCAAgC,CAAC;QAC1C,KAAK,KAAK,CAAC;QACX,KAAK,QAAQ,CAAC;QACd,KAAK,OAAO,CAAC;QACb,KAAK,YAAY,CAAC;QAClB,KAAK,WAAW,CAAC;QACjB,KAAK,SAAS,CAAC;QACf,KAAK,SAAS,CAAC;QACf,KAAK,WAAW,CAAC;QACjB,KAAK,QAAQ;YACX,OAAO,+BAA+B,CAAC;QACzC,KAAK,OAAO;YACV,OAAO,+BAA+B,CAAC;QACzC;YACE,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC;AAED,yEAAyE;AACzE,yDAAyD;AACzD,SAAS,gBAAgB,CAAC,IAAmB;IAC3C,OAAQ,IAAyD;SAC9D,gBAAgB,CAAC;AACtB,CAAC;AAED,SAAS,eAAe,CACtB,EAA+B,EAC/B,IAAmB;IAEnB,OAAO,EAAE,CAAC,yBAAyB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1C,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@backtickjs/compiler",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.11",
|
|
4
4
|
"description": "Internal: the compiler for Backtick client scripts, used by the build plugins, backtick-tsc and the editor tooling",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"backtick",
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
"@jridgewell/trace-mapping": "^0.3.31"
|
|
47
47
|
},
|
|
48
48
|
"devDependencies": {
|
|
49
|
-
"@backtickjs/core": "^0.1.
|
|
49
|
+
"@backtickjs/core": "^0.1.11",
|
|
50
50
|
"prettier": "^3.6.2",
|
|
51
51
|
"typescript": "^6.0.3"
|
|
52
52
|
},
|
package/src/compileScript.ts
CHANGED
|
@@ -40,13 +40,15 @@ export function compileScript(
|
|
|
40
40
|
maps.unshift(compiled.map);
|
|
41
41
|
}
|
|
42
42
|
// The module as CommonJS, by TypeScript: its imports `require` calls, its
|
|
43
|
-
// default export `exports.default`, so it runs as a function's body.
|
|
43
|
+
// default export `exports.default`, so it runs as a function's body. As
|
|
44
|
+
// Node's CommonJS, which keeps a dynamic `import()` one, as it would be in
|
|
45
|
+
// the same code written by hand, not a `require` of the module table.
|
|
44
46
|
const dependencies: string[] = [];
|
|
45
47
|
const output = ts.transpileModule(code, {
|
|
46
48
|
fileName: "module.jsx",
|
|
47
49
|
compilerOptions: {
|
|
48
50
|
jsx: ts.JsxEmit.Preserve,
|
|
49
|
-
module: ts.ModuleKind.
|
|
51
|
+
module: ts.ModuleKind.NodeNext,
|
|
50
52
|
target: ts.ScriptTarget.ESNext,
|
|
51
53
|
sourceMap: true,
|
|
52
54
|
},
|
package/src/emitScript.ts
CHANGED
|
@@ -3,6 +3,8 @@ import { eachMapping, TraceMap } from "@jridgewell/trace-mapping";
|
|
|
3
3
|
import type ts from "typescript";
|
|
4
4
|
import type { ClientScript } from "./parseFile.js";
|
|
5
5
|
import type { BindingResolution, ResolvedParam } from "./resolveBindings.js";
|
|
6
|
+
import { namesValue } from "./inTypePosition.js";
|
|
7
|
+
import { isClass } from "./isClass.js";
|
|
6
8
|
import { tagRoot } from "./tagRoot.js";
|
|
7
9
|
|
|
8
10
|
/** A script as the client runs it, and where its code came from. */
|
|
@@ -176,8 +178,12 @@ export function emitScript(
|
|
|
176
178
|
: call;
|
|
177
179
|
};
|
|
178
180
|
const visit = (node: ts.Node): ts.Node => {
|
|
179
|
-
// Types are TypeScript's to strip, after this
|
|
180
|
-
|
|
181
|
+
// Types are TypeScript's to strip, after this, but for the type nodes
|
|
182
|
+
// that name a value, which is rewritten.
|
|
183
|
+
if (
|
|
184
|
+
(ts.isTypeNode(node) && !namesValue(ts, node)) ||
|
|
185
|
+
asWritten.has(node)
|
|
186
|
+
) {
|
|
181
187
|
return node;
|
|
182
188
|
}
|
|
183
189
|
if (ts.isJsxElement(node) || ts.isJsxSelfClosingElement(node)) {
|
|
@@ -207,7 +213,29 @@ export function emitScript(
|
|
|
207
213
|
if (statement === undefined) {
|
|
208
214
|
return file;
|
|
209
215
|
}
|
|
210
|
-
|
|
216
|
+
const classExpression = (node: ts.ClassDeclaration) =>
|
|
217
|
+
ts.setOriginalNode(
|
|
218
|
+
ts.setTextRange(
|
|
219
|
+
f.createClassExpression(
|
|
220
|
+
undefined,
|
|
221
|
+
node.name,
|
|
222
|
+
node.typeParameters,
|
|
223
|
+
node.heritageClauses,
|
|
224
|
+
node.members,
|
|
225
|
+
),
|
|
226
|
+
node,
|
|
227
|
+
),
|
|
228
|
+
node,
|
|
229
|
+
);
|
|
230
|
+
// Where the script stands, so the entry maps to it. A class declaration
|
|
231
|
+
// is its class as an expression.
|
|
232
|
+
const body = ts.isExpressionStatement(statement)
|
|
233
|
+
? ts.visitNode(statement.expression, visit, ts.isExpression)
|
|
234
|
+
: isClass(ts, statement)
|
|
235
|
+
? classExpression(
|
|
236
|
+
ts.visitNode(statement, visit, ts.isClassDeclaration),
|
|
237
|
+
)
|
|
238
|
+
: ts.visitNode(statement, visit, ts.isBlock);
|
|
211
239
|
const entry = ts.setTextRange(
|
|
212
240
|
f.createArrowFunction(
|
|
213
241
|
undefined,
|
|
@@ -217,9 +245,7 @@ export function emitScript(
|
|
|
217
245
|
),
|
|
218
246
|
undefined,
|
|
219
247
|
f.createToken(ts.SyntaxKind.EqualsGreaterThanToken),
|
|
220
|
-
|
|
221
|
-
? ts.visitNode(statement.expression, visit, ts.isExpression)
|
|
222
|
-
: ts.visitNode(statement, visit, ts.isBlock),
|
|
248
|
+
body,
|
|
223
249
|
),
|
|
224
250
|
statement,
|
|
225
251
|
);
|
package/src/inTypePosition.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type ts from "typescript";
|
|
2
2
|
|
|
3
3
|
// Whether a name stands in a type, which names types rather than values: all
|
|
4
|
-
// but what a `typeof` reads, and a
|
|
4
|
+
// but what a `typeof` reads, and what `namesValue` says is a value.
|
|
5
5
|
export function inTypePosition(
|
|
6
6
|
ts: typeof import("typescript"),
|
|
7
7
|
node: ts.Identifier,
|
|
@@ -11,11 +11,7 @@ export function inTypePosition(
|
|
|
11
11
|
if (ts.isTypeQueryNode(parent)) {
|
|
12
12
|
return false;
|
|
13
13
|
}
|
|
14
|
-
if (
|
|
15
|
-
ts.isExpressionWithTypeArguments(parent) &&
|
|
16
|
-
ts.isHeritageClause(parent.parent) &&
|
|
17
|
-
ts.isClassLike(parent.parent.parent)
|
|
18
|
-
) {
|
|
14
|
+
if (namesValue(ts, parent)) {
|
|
19
15
|
return false;
|
|
20
16
|
}
|
|
21
17
|
if (ts.isTypeNode(parent)) {
|
|
@@ -24,3 +20,21 @@ export function inTypePosition(
|
|
|
24
20
|
}
|
|
25
21
|
return false;
|
|
26
22
|
}
|
|
23
|
+
|
|
24
|
+
// A type node that names a value: `f<T>`, a function given type arguments,
|
|
25
|
+
// and a class's `extends Base<T>`. `implements` and an interface's `extends`
|
|
26
|
+
// name types.
|
|
27
|
+
export function namesValue(
|
|
28
|
+
ts: typeof import("typescript"),
|
|
29
|
+
node: ts.Node,
|
|
30
|
+
): boolean {
|
|
31
|
+
if (!ts.isExpressionWithTypeArguments(node)) {
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
const clause = node.parent;
|
|
35
|
+
return (
|
|
36
|
+
!ts.isHeritageClause(clause) ||
|
|
37
|
+
(clause.token === ts.SyntaxKind.ExtendsKeyword &&
|
|
38
|
+
ts.isClassLike(clause.parent))
|
|
39
|
+
);
|
|
40
|
+
}
|
package/src/isClass.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type ts from "typescript";
|
|
2
|
+
|
|
3
|
+
// `class Foo {}`, a script that is a class, written as a declaration: its class
|
|
4
|
+
// as an expression. Modifiers such as `export` or `abstract` have no
|
|
5
|
+
// expression form.
|
|
6
|
+
export function isClass(
|
|
7
|
+
ts: typeof import("typescript"),
|
|
8
|
+
statement: ts.Statement,
|
|
9
|
+
): statement is ts.ClassDeclaration {
|
|
10
|
+
return ts.isClassDeclaration(statement) && statement.modifiers === undefined;
|
|
11
|
+
}
|
package/src/rewriteScript.ts
CHANGED
|
@@ -7,6 +7,7 @@ import {
|
|
|
7
7
|
paramName,
|
|
8
8
|
scriptEdits,
|
|
9
9
|
} from "./emitScript.js";
|
|
10
|
+
import { isClass } from "./isClass.js";
|
|
10
11
|
import { isComponentTag } from "./isComponentTag.js";
|
|
11
12
|
import { call } from "./nodeFactory.js";
|
|
12
13
|
import type { ClientScript } from "./parseFile.js";
|
|
@@ -18,7 +19,7 @@ import { tagRoot } from "./tagRoot.js";
|
|
|
18
19
|
export interface RuntimeScript {
|
|
19
20
|
id: string;
|
|
20
21
|
// the module's `kind`
|
|
21
|
-
kind: "function" | "expression" | "block";
|
|
22
|
+
kind: "function" | "class" | "expression" | "block";
|
|
22
23
|
// the module's `params`, an array literal of literals
|
|
23
24
|
params: ts.Expression;
|
|
24
25
|
// the script's `args`, an array literal of host expressions
|
|
@@ -153,30 +154,39 @@ export function rewriteScript(
|
|
|
153
154
|
);
|
|
154
155
|
}
|
|
155
156
|
|
|
156
|
-
// A script is one expression or one block: statements go in
|
|
157
|
+
// A script is one expression, one class or one block: statements go in
|
|
158
|
+
// braces. A class is written as a declaration, `class Foo {}`.
|
|
157
159
|
const [statement] = fileWithPlaceholders.statements;
|
|
158
160
|
if (
|
|
159
161
|
fileWithPlaceholders.statements.length !== 1 ||
|
|
160
|
-
!(
|
|
162
|
+
!(
|
|
163
|
+
ts.isExpressionStatement(statement!) ||
|
|
164
|
+
ts.isBlock(statement!) ||
|
|
165
|
+
isClass(ts, statement!)
|
|
166
|
+
)
|
|
161
167
|
) {
|
|
162
168
|
return leftAsWritten([
|
|
163
169
|
{
|
|
164
170
|
range: scriptRange,
|
|
165
171
|
message:
|
|
166
|
-
"A `cs` client script is one expression or one block:
|
|
167
|
-
"statements in braces, e.g. cs`{ a(); b(); }`.",
|
|
172
|
+
"A `cs` client script is one expression, one class or one block: " +
|
|
173
|
+
"write statements in braces, e.g. cs`{ a(); b(); }`.",
|
|
168
174
|
category: ts.DiagnosticCategory.Error,
|
|
169
175
|
code: 0,
|
|
170
176
|
},
|
|
171
177
|
]);
|
|
172
178
|
}
|
|
173
179
|
|
|
180
|
+
const expression = ts.isExpressionStatement(statement!)
|
|
181
|
+
? skipParentheses(ts, statement.expression)
|
|
182
|
+
: undefined;
|
|
174
183
|
const kind = ts.isBlock(statement!)
|
|
175
184
|
? "block"
|
|
176
|
-
: ts.
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
185
|
+
: expression === undefined || ts.isClassExpression(expression)
|
|
186
|
+
? "class"
|
|
187
|
+
: ts.isArrowFunction(expression) || ts.isFunctionExpression(expression)
|
|
188
|
+
? "function"
|
|
189
|
+
: "expression";
|
|
180
190
|
|
|
181
191
|
// A `${…}` written where the script has text rather than code is no splice.
|
|
182
192
|
const unspliced = unsplicedSpans(ts, clientScript);
|