@backtickjs/compiler 0.1.9 → 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/printVirtualCode.js +1 -1
- package/dist/printVirtualCode.js.map +1 -1
- package/dist/resolveBindings.d.ts +15 -6
- package/dist/resolveBindings.js +76 -32
- package/dist/resolveBindings.js.map +1 -1
- package/dist/rewriteFile.d.ts +1 -0
- package/dist/rewriteFile.js +2 -2
- package/dist/rewriteFile.js.map +1 -1
- package/dist/rewriteScript.d.ts +1 -1
- package/dist/rewriteScript.js +16 -8
- package/dist/rewriteScript.js.map +1 -1
- package/dist/virtualScript.d.ts +10 -3
- package/dist/virtualScript.js +11 -58
- package/dist/virtualScript.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/printVirtualCode.ts +1 -1
- package/src/resolveBindings.ts +105 -40
- package/src/rewriteFile.ts +5 -3
- package/src/rewriteScript.ts +19 -9
- package/src/virtualScript.ts +12 -71
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":"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"}
|
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/printVirtualCode.js
CHANGED
|
@@ -28,7 +28,7 @@ function renderScript(ts, sourceFile, rewrittenFile, script) {
|
|
|
28
28
|
if (rewritten.leftAsWritten) {
|
|
29
29
|
return ["cs.lift(undefined as never)"];
|
|
30
30
|
}
|
|
31
|
-
return virtualScript(ts, script, rewrittenFile
|
|
31
|
+
return virtualScript(ts, script, rewrittenFile, (splice) => renderSplice(ts, sourceFile, rewrittenFile, splice, mayAwait(ts, script.sourceNode)));
|
|
32
32
|
}
|
|
33
33
|
// A splice's host code, each nested script rendered as a script wherever it's
|
|
34
34
|
// written. Where the host may await, an `await x` of its own is
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"printVirtualCode.js","sourceRoot":"","sources":["../src/printVirtualCode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAsB,MAAM,oBAAoB,CAAC;AAGvE,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAgB,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAOnD,MAAM,UAAU,gBAAgB,CAC9B,EAA+B,EAC/B,UAAsB,EACtB,aAA4B;IAE5B,MAAM,EAAE,UAAU,EAAE,GAAG,UAAU,CAAC;IAClC,MAAM,QAAQ,GAAc,EAAE,CAAC;IAE/B,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,MAAM,MAAM,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QACrD,QAAQ,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC;QAC1E,QAAQ,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,EAAE,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC;QACtE,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;IACtC,CAAC;IACD,QAAQ,CAAC,IAAI,CACX,GAAG,cAAc,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,CAC5E,CAAC;IAEF,OAAO;QACL,WAAW,EAAE,gBAAgB,CAAC,QAAQ,CAAC;QACvC,QAAQ,EAAE,aAAa,CAAC,QAAQ,CAAC;KAClC,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CACnB,EAA+B,EAC/B,UAAyB,EACzB,aAA4B,EAC5B,MAAoB;IAEpB,MAAM,SAAS,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAC/D,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,qEAAqE;IACrE,8CAA8C;IAC9C,IAAI,SAAS,CAAC,aAAa,EAAE,CAAC;QAC5B,OAAO,CAAC,6BAA6B,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"printVirtualCode.js","sourceRoot":"","sources":["../src/printVirtualCode.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type ts from "typescript";
|
|
2
|
-
import type { ClientScript } from "./parseFile.js";
|
|
2
|
+
import type { ClientScript, ParsedFile } from "./parseFile.js";
|
|
3
3
|
/**
|
|
4
4
|
* Every client script in a file, its scopes resolved by TypeScript's checker,
|
|
5
5
|
* so any syntax TypeScript reads is resolved as the language does. It produces
|
|
6
|
-
*
|
|
6
|
+
* three things:
|
|
7
7
|
*
|
|
8
8
|
* - `bindings`: every *bound* variable identifier — a declaration, an arrow
|
|
9
9
|
* parameter, or a reference that resolves to one of those — mapped to a
|
|
@@ -29,10 +29,18 @@ import type { ClientScript } from "./parseFile.js";
|
|
|
29
29
|
* captured by something, somewhere: a binding no fragment ever wants is
|
|
30
30
|
* dead weight in every thunk written for that hole.
|
|
31
31
|
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
32
|
+
* - `hostReferences`: every script identifier that resolves to a host
|
|
33
|
+
* binding — a name the host file declares in scope around the script,
|
|
34
|
+
* imports and all, and no script does. The client has no such binding, so
|
|
35
|
+
* the virtual code reports the read: it has to be spliced. A name that
|
|
36
|
+
* resolves to nothing is the client's global, read as written.
|
|
37
|
+
*
|
|
38
|
+
* The file is checked as one text: the host code as written, each script
|
|
39
|
+
* `(() => …)` where its template stands, a nested script where it stands in
|
|
40
|
+
* its splice's host expression, as it lands at runtime. A reference is free
|
|
34
41
|
* for the script it appears in exactly when the binding it resolves to was
|
|
35
|
-
* declared in an *enclosing* script (or in none at all)
|
|
42
|
+
* declared in an *enclosing* script (or in none at all); it is the host's when
|
|
43
|
+
* no script declares it.
|
|
36
44
|
*
|
|
37
45
|
* Uniqueness of keys has two axes. A per-file counter distinguishes bindings
|
|
38
46
|
* *within* a file; a hash of the file's text (see `hashText`) distinguishes
|
|
@@ -53,6 +61,7 @@ import type { ClientScript } from "./parseFile.js";
|
|
|
53
61
|
export type BindingResolution = Map<ts.Identifier, string>;
|
|
54
62
|
export interface ResolvedScopes {
|
|
55
63
|
bindings: BindingResolution;
|
|
64
|
+
hostReferences: Set<ts.Identifier>;
|
|
56
65
|
params: Map<ClientScript, ResolvedParam[]>;
|
|
57
66
|
}
|
|
58
67
|
/**
|
|
@@ -72,5 +81,5 @@ interface ResolvedCapture {
|
|
|
72
81
|
kind: "capture";
|
|
73
82
|
key: string;
|
|
74
83
|
}
|
|
75
|
-
export declare function resolveBindings(ts: typeof import("typescript"), scripts:
|
|
84
|
+
export declare function resolveBindings(ts: typeof import("typescript"), { sourceFile, scripts }: ParsedFile, fileHash: string): ResolvedScopes;
|
|
76
85
|
export {};
|
package/dist/resolveBindings.js
CHANGED
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
import { inTypePosition } from "./inTypePosition.js";
|
|
2
|
-
export function resolveBindings(ts, scripts, fileHash) {
|
|
3
|
-
const combined = combine(ts, scripts);
|
|
4
|
-
const file = ts.createSourceFile(
|
|
2
|
+
export function resolveBindings(ts, { sourceFile, scripts }, fileHash) {
|
|
3
|
+
const combined = combine(ts, sourceFile, scripts);
|
|
4
|
+
const file = ts.createSourceFile(sourceFile.fileName, combined.text, ts.ScriptTarget.Latest, true);
|
|
5
5
|
const checker = checkerOf(ts, file);
|
|
6
6
|
const binding = ts.SymbolFlags.Variable | ts.SymbolFlags.Function | ts.SymbolFlags.Class;
|
|
7
|
+
// what the host declares by a name: the above, an enum, a namespace, an import
|
|
8
|
+
const hostBinding = binding |
|
|
9
|
+
ts.SymbolFlags.Enum |
|
|
10
|
+
ts.SymbolFlags.Module |
|
|
11
|
+
ts.SymbolFlags.Alias;
|
|
7
12
|
const scriptAt = (position) => combined.pieces.find((piece) => position >= piece.start && position < piece.start + piece.length)?.script;
|
|
8
13
|
const own = new Map();
|
|
9
14
|
// The script's own identifier written at a combined position.
|
|
@@ -49,32 +54,47 @@ export function resolveBindings(ts, scripts, fileHash) {
|
|
|
49
54
|
}
|
|
50
55
|
return key;
|
|
51
56
|
};
|
|
52
|
-
//
|
|
53
|
-
const
|
|
57
|
+
// What a name resolves to, and where it is declared.
|
|
58
|
+
const resolve = (identifier) => {
|
|
54
59
|
const symbol = ts.isShorthandPropertyAssignment(identifier.parent) &&
|
|
55
60
|
identifier.parent.name === identifier
|
|
56
61
|
? checker.getShorthandAssignmentValueSymbol(identifier.parent)
|
|
57
62
|
: checker.getSymbolAtLocation(identifier);
|
|
58
|
-
|
|
59
|
-
|
|
63
|
+
const declaration = symbol?.declarations?.find((declaration) => declaration.getSourceFile() === file);
|
|
64
|
+
return symbol !== undefined && declaration !== undefined
|
|
65
|
+
? { symbol, declaration }
|
|
60
66
|
: undefined;
|
|
61
67
|
};
|
|
62
68
|
// Every binding some nested script captures, whatever hole it was written at.
|
|
63
69
|
const escaped = new Set();
|
|
70
|
+
const hostReferences = new Set();
|
|
64
71
|
const visit = (node) => {
|
|
65
72
|
// A type's names are never runtime bindings, but for a `typeof`, however
|
|
66
73
|
// deep in a type, and a class's `extends`, which read values.
|
|
67
74
|
if (ts.isIdentifier(node) && !inTypePosition(ts, node)) {
|
|
68
75
|
const script = scriptAt(node.getStart(file));
|
|
69
|
-
const declaration = declarationOf(node);
|
|
70
76
|
if (script === undefined) {
|
|
71
77
|
return;
|
|
72
78
|
}
|
|
73
|
-
|
|
79
|
+
const resolved = resolve(node);
|
|
80
|
+
if (resolved === undefined) {
|
|
74
81
|
return;
|
|
75
82
|
}
|
|
76
|
-
const
|
|
83
|
+
const { symbol, declaration } = resolved;
|
|
77
84
|
const identifier = identifierAt(node.getStart(file));
|
|
85
|
+
if (scriptAt(declaration.getStart(file)) === undefined) {
|
|
86
|
+
// The host's, unless a `declare global` declares it: that is a global.
|
|
87
|
+
if ((symbol.flags & hostBinding) !== 0 &&
|
|
88
|
+
!inGlobalAugmentation(ts, declaration) &&
|
|
89
|
+
identifier !== undefined) {
|
|
90
|
+
hostReferences.add(identifier);
|
|
91
|
+
}
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
if ((symbol.flags & binding) === 0) {
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
const key = keyOf(declaration);
|
|
78
98
|
if (identifier !== undefined) {
|
|
79
99
|
bindings.set(identifier, key);
|
|
80
100
|
}
|
|
@@ -126,59 +146,74 @@ export function resolveBindings(ts, scripts, fileHash) {
|
|
|
126
146
|
}
|
|
127
147
|
params.set(script, [...splices, ...captures.values()]);
|
|
128
148
|
}
|
|
129
|
-
return { bindings, params };
|
|
149
|
+
return { bindings, hostReferences, params };
|
|
130
150
|
}
|
|
131
|
-
// The
|
|
132
|
-
// its
|
|
133
|
-
|
|
151
|
+
// The file as one text: the host code as written, each script `(() => text)`
|
|
152
|
+
// where its template stands, a braced splice's host expression where its
|
|
153
|
+
// placeholder stands, parenthesized, with the scripts nested in it written the
|
|
154
|
+
// same way.
|
|
155
|
+
function combine(ts, sourceFile, scripts) {
|
|
134
156
|
const combined = {
|
|
135
157
|
text: "",
|
|
136
158
|
pieces: [],
|
|
137
159
|
parents: new Map(),
|
|
138
160
|
positions: new Map(),
|
|
139
161
|
};
|
|
162
|
+
// Host text up to an offset, from where the last host text ended.
|
|
163
|
+
let at = 0;
|
|
164
|
+
const host = (to) => {
|
|
165
|
+
combined.text += sourceFile.text.slice(at, to);
|
|
166
|
+
at = to;
|
|
167
|
+
};
|
|
140
168
|
const emit = (script, parent) => {
|
|
141
169
|
combined.parents.set(script, parent);
|
|
142
170
|
const identifiers = identifiersOf(ts, script.fileWithPlaceholders);
|
|
143
|
-
const holes = [...identifiers.values()].filter((identifier) =>
|
|
144
|
-
const splice = script.splices[identifier.text];
|
|
145
|
-
return splice?.kind === "braced" && splice.scripts.length > 0;
|
|
146
|
-
});
|
|
171
|
+
const holes = [...identifiers.values()].filter((identifier) => script.splices[identifier.text]?.kind === "braced");
|
|
147
172
|
combined.text += "(() => ";
|
|
148
|
-
let
|
|
173
|
+
let cursor = 0;
|
|
149
174
|
const copy = (to) => {
|
|
150
175
|
const start = combined.text.length;
|
|
151
|
-
combined.pieces.push({
|
|
176
|
+
combined.pieces.push({
|
|
177
|
+
start,
|
|
178
|
+
length: to - cursor,
|
|
179
|
+
script,
|
|
180
|
+
from: cursor,
|
|
181
|
+
});
|
|
152
182
|
for (const [offset, identifier] of identifiers) {
|
|
153
|
-
if (offset >=
|
|
154
|
-
combined.positions.set(identifier, start + offset -
|
|
183
|
+
if (offset >= cursor && offset < to) {
|
|
184
|
+
combined.positions.set(identifier, start + offset - cursor);
|
|
155
185
|
}
|
|
156
186
|
}
|
|
157
|
-
combined.text += script.textWithPlaceholders.slice(
|
|
158
|
-
|
|
187
|
+
combined.text += script.textWithPlaceholders.slice(cursor, to);
|
|
188
|
+
cursor = to;
|
|
159
189
|
};
|
|
160
190
|
for (const hole of holes) {
|
|
161
191
|
copy(hole.getStart(script.fileWithPlaceholders));
|
|
162
192
|
combined.positions.set(hole, combined.text.length);
|
|
163
193
|
const splice = script.splices[hole.text];
|
|
164
|
-
combined.text += "
|
|
165
|
-
splice.
|
|
166
|
-
|
|
194
|
+
combined.text += "(";
|
|
195
|
+
at = splice.expression.getStart(sourceFile);
|
|
196
|
+
for (const nested of splice.scripts) {
|
|
197
|
+
host(nested.sourceNode.getStart(sourceFile));
|
|
167
198
|
emit(nested, script);
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
199
|
+
at = nested.sourceNode.getEnd();
|
|
200
|
+
}
|
|
201
|
+
host(splice.expression.getEnd());
|
|
202
|
+
combined.text += ")";
|
|
203
|
+
cursor = hole.getEnd();
|
|
171
204
|
}
|
|
172
205
|
copy(script.textWithPlaceholders.length);
|
|
173
206
|
combined.text += ")";
|
|
174
207
|
};
|
|
175
208
|
for (const script of scripts) {
|
|
209
|
+
host(script.sourceNode.getStart(sourceFile));
|
|
176
210
|
emit(script);
|
|
177
|
-
|
|
211
|
+
at = script.sourceNode.getEnd();
|
|
178
212
|
}
|
|
213
|
+
host(sourceFile.text.length);
|
|
179
214
|
return combined;
|
|
180
215
|
}
|
|
181
|
-
// A checker over the one file: no libraries, as only the
|
|
216
|
+
// A checker over the one file: no libraries, as only the file's own
|
|
182
217
|
// bindings are asked about.
|
|
183
218
|
function checkerOf(ts, file) {
|
|
184
219
|
const host = {
|
|
@@ -196,6 +231,15 @@ function checkerOf(ts, file) {
|
|
|
196
231
|
.createProgram([file.fileName], { noLib: true, noResolve: true, types: [], jsx: ts.JsxEmit.Preserve }, host)
|
|
197
232
|
.getTypeChecker();
|
|
198
233
|
}
|
|
234
|
+
function inGlobalAugmentation(ts, declaration) {
|
|
235
|
+
for (let node = declaration; node; node = node.parent) {
|
|
236
|
+
if (ts.isModuleDeclaration(node) &&
|
|
237
|
+
(node.flags & ts.NodeFlags.GlobalAugmentation) !== 0) {
|
|
238
|
+
return true;
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
return false;
|
|
242
|
+
}
|
|
199
243
|
// A script's own identifiers, by where they start in its placeholder text.
|
|
200
244
|
function identifiersOf(ts, file) {
|
|
201
245
|
const identifiers = new Map();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolveBindings.js","sourceRoot":"","sources":["../src/resolveBindings.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"resolveBindings.js","sourceRoot":"","sources":["../src/resolveBindings.ts"],"names":[],"mappings":"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"}
|
package/dist/rewriteFile.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ export interface RewrittenFile {
|
|
|
7
7
|
sourceFile: ts.SourceFile;
|
|
8
8
|
scripts: Map<ts.TaggedTemplateExpression, RewrittenScript>;
|
|
9
9
|
bindings: BindingResolution;
|
|
10
|
+
hostReferences: Set<ts.Identifier>;
|
|
10
11
|
diagnostics: Diagnostic[];
|
|
11
12
|
}
|
|
12
13
|
export declare function rewriteFile(ts: typeof import("typescript"), parsedFile: ParsedFile): RewrittenFile;
|
package/dist/rewriteFile.js
CHANGED
|
@@ -10,13 +10,13 @@ export function rewriteFile(ts, parsedFile) {
|
|
|
10
10
|
// One hash per file, shared by binding keys and script locations: both need
|
|
11
11
|
// to distinguish this file from a same-named file in another codebase.
|
|
12
12
|
const fileHash = hashText(sourceFile.text);
|
|
13
|
-
const { bindings, params } = resolveBindings(ts, parsedFile
|
|
13
|
+
const { bindings, hostReferences, params } = resolveBindings(ts, parsedFile, fileHash);
|
|
14
14
|
for (const script of flattenScripts(parsedFile.scripts)) {
|
|
15
15
|
const rewritten = rewriteScript(ts, script, fileHash, bindings, params.get(script));
|
|
16
16
|
scripts.set(script.sourceNode, rewritten);
|
|
17
17
|
diagnostics.push(...rewritten.diagnostics);
|
|
18
18
|
}
|
|
19
19
|
diagnostics.push(...hostElementDiagnostics(ts, sourceFile));
|
|
20
|
-
return { sourceFile, scripts, bindings, diagnostics };
|
|
20
|
+
return { sourceFile, scripts, bindings, hostReferences, diagnostics };
|
|
21
21
|
}
|
|
22
22
|
//# sourceMappingURL=rewriteFile.js.map
|
package/dist/rewriteFile.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rewriteFile.js","sourceRoot":"","sources":["../src/rewriteFile.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,OAAO,EAA0B,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EAAwB,aAAa,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"rewriteFile.js","sourceRoot":"","sources":["../src/rewriteFile.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,OAAO,EAA0B,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC/E,OAAO,EAAwB,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAYzE,MAAM,UAAU,WAAW,CACzB,EAA+B,EAC/B,UAAsB;IAEtB,MAAM,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;IAEzC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAgD,CAAC;IACxE,MAAM,WAAW,GAAiB,EAAE,CAAC;IAErC,4EAA4E;IAC5E,uEAAuE;IACvE,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAE3C,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,eAAe,CAC1D,EAAE,EACF,UAAU,EACV,QAAQ,CACT,CAAC;IAEF,KAAK,MAAM,MAAM,IAAI,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACxD,MAAM,SAAS,GAAG,aAAa,CAC7B,EAAE,EACF,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CACnB,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QAC1C,WAAW,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;IAC7C,CAAC;IAED,WAAW,CAAC,IAAI,CAAC,GAAG,sBAAsB,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC;IAE5D,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC;AACxE,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) {
|