numtypes 0.0.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/CHANGELOG.md +6 -0
- package/LICENSE +12 -0
- package/LICENSE-APACHE +201 -0
- package/LICENSE-MIT +21 -0
- package/README.md +652 -0
- package/dist/lib/index.d.ts +22 -0
- package/dist/lib/index.d.ts.map +1 -0
- package/dist/lib/index.js +2 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/transformer/analyze/analyze-source-file.d.ts +15 -0
- package/dist/transformer/analyze/analyze-source-file.d.ts.map +1 -0
- package/dist/transformer/analyze/analyze-source-file.js +605 -0
- package/dist/transformer/analyze/analyze-source-file.js.map +1 -0
- package/dist/transformer/analyze/get-contextual-domain.d.ts +19 -0
- package/dist/transformer/analyze/get-contextual-domain.d.ts.map +1 -0
- package/dist/transformer/analyze/get-contextual-domain.js +197 -0
- package/dist/transformer/analyze/get-contextual-domain.js.map +1 -0
- package/dist/transformer/analyze/get-expression-domain.d.ts +26 -0
- package/dist/transformer/analyze/get-expression-domain.d.ts.map +1 -0
- package/dist/transformer/analyze/get-expression-domain.js +804 -0
- package/dist/transformer/analyze/get-expression-domain.js.map +1 -0
- package/dist/transformer/analyze/type-domain.d.ts +41 -0
- package/dist/transformer/analyze/type-domain.d.ts.map +1 -0
- package/dist/transformer/analyze/type-domain.js +260 -0
- package/dist/transformer/analyze/type-domain.js.map +1 -0
- package/dist/transformer/ast.d.ts +10 -0
- package/dist/transformer/ast.d.ts.map +1 -0
- package/dist/transformer/ast.js +115 -0
- package/dist/transformer/ast.js.map +1 -0
- package/dist/transformer/diagnostics.d.ts +17 -0
- package/dist/transformer/diagnostics.d.ts.map +1 -0
- package/dist/transformer/diagnostics.js +30 -0
- package/dist/transformer/diagnostics.js.map +1 -0
- package/dist/transformer/domains.d.ts +11 -0
- package/dist/transformer/domains.d.ts.map +1 -0
- package/dist/transformer/domains.js +32 -0
- package/dist/transformer/domains.js.map +1 -0
- package/dist/transformer/index.d.ts +10 -0
- package/dist/transformer/index.d.ts.map +1 -0
- package/dist/transformer/index.js +60 -0
- package/dist/transformer/index.js.map +1 -0
- package/dist/transformer/operators.d.ts +16 -0
- package/dist/transformer/operators.d.ts.map +1 -0
- package/dist/transformer/operators.js +44 -0
- package/dist/transformer/operators.js.map +1 -0
- package/dist/transformer/options.d.ts +19 -0
- package/dist/transformer/options.d.ts.map +1 -0
- package/dist/transformer/options.js +17 -0
- package/dist/transformer/options.js.map +1 -0
- package/dist/transformer/symbols.d.ts +56 -0
- package/dist/transformer/symbols.d.ts.map +1 -0
- package/dist/transformer/symbols.js +270 -0
- package/dist/transformer/symbols.js.map +1 -0
- package/dist/transformer/transform/erase-imports.d.ts +14 -0
- package/dist/transformer/transform/erase-imports.d.ts.map +1 -0
- package/dist/transformer/transform/erase-imports.js +174 -0
- package/dist/transformer/transform/erase-imports.js.map +1 -0
- package/dist/transformer/transform/generated-coercions.d.ts +9 -0
- package/dist/transformer/transform/generated-coercions.d.ts.map +1 -0
- package/dist/transformer/transform/generated-coercions.js +22 -0
- package/dist/transformer/transform/generated-coercions.js.map +1 -0
- package/dist/transformer/transform/optimize-coercions.d.ts +11 -0
- package/dist/transformer/transform/optimize-coercions.d.ts.map +1 -0
- package/dist/transformer/transform/optimize-coercions.js +1702 -0
- package/dist/transformer/transform/optimize-coercions.js.map +1 -0
- package/dist/transformer/transform/transform-declaration-file.d.ts +9 -0
- package/dist/transformer/transform/transform-declaration-file.d.ts.map +1 -0
- package/dist/transformer/transform/transform-declaration-file.js +376 -0
- package/dist/transformer/transform/transform-declaration-file.js.map +1 -0
- package/dist/transformer/transform/transform-expression.d.ts +24 -0
- package/dist/transformer/transform/transform-expression.d.ts.map +1 -0
- package/dist/transformer/transform/transform-expression.js +545 -0
- package/dist/transformer/transform/transform-expression.js.map +1 -0
- package/dist/transformer/transform/transform-source-file.d.ts +10 -0
- package/dist/transformer/transform/transform-source-file.d.ts.map +1 -0
- package/dist/transformer/transform/transform-source-file.js +52 -0
- package/dist/transformer/transform/transform-source-file.js.map +1 -0
- package/dist/transformer/ts-compat.d.ts +4 -0
- package/dist/transformer/ts-compat.d.ts.map +1 -0
- package/dist/transformer/ts-compat.js +24 -0
- package/dist/transformer/ts-compat.js.map +1 -0
- package/docs/implementation-plan.md +335 -0
- package/docs/lib-implementation.md +77 -0
- package/docs/lowering-optimization-spec.md +1020 -0
- package/docs/project-structure.md +52 -0
- package/docs/transform-spec.md +2114 -0
- package/package.json +83 -0
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as ts from "typescript";
|
|
2
|
+
import type { NumtypesSourceTransformerOptions, NumtypesTransformerOptions } from "./options.js";
|
|
3
|
+
export type NumtypesTransformerFactory = (program: ts.Program, options?: NumtypesSourceTransformerOptions) => ts.TransformerFactory<ts.SourceFile>;
|
|
4
|
+
export type NumtypesCustomTransformersFactory = (program: ts.Program, options?: NumtypesTransformerOptions) => ts.CustomTransformers;
|
|
5
|
+
export declare function createTransformer(program: ts.Program, options?: NumtypesSourceTransformerOptions): ts.TransformerFactory<ts.SourceFile>;
|
|
6
|
+
export declare function createDeclarationTransformer(program: ts.Program, options?: NumtypesTransformerOptions): ts.TransformerFactory<ts.Bundle | ts.SourceFile>;
|
|
7
|
+
export declare function createTransformers(program: ts.Program, options?: NumtypesTransformerOptions): ts.CustomTransformers;
|
|
8
|
+
export default createTransformer;
|
|
9
|
+
export type { DeclarationTypesMode, NormalizedNumtypesTransformerOptions, NumtypesSourceTransformerOptions, NumtypesTransformerOptions } from "./options.js";
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/transformer/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,KAAK,EAEV,gCAAgC,EAChC,0BAA0B,EAC3B,MAAM,cAAc,CAAC;AAEtB,MAAM,MAAM,0BAA0B,GAAG,CACvC,OAAO,EAAE,EAAE,CAAC,OAAO,EACnB,OAAO,CAAC,EAAE,gCAAgC,KACvC,EAAE,CAAC,kBAAkB,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;AAE1C,MAAM,MAAM,iCAAiC,GAAG,CAC9C,OAAO,EAAE,EAAE,CAAC,OAAO,EACnB,OAAO,CAAC,EAAE,0BAA0B,KACjC,EAAE,CAAC,kBAAkB,CAAC;AAE3B,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,EAAE,CAAC,OAAO,EACnB,OAAO,GAAE,gCAAqC,GAC7C,EAAE,CAAC,kBAAkB,CAAC,EAAE,CAAC,UAAU,CAAC,CAWtC;AAED,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,EAAE,CAAC,OAAO,EACnB,OAAO,GAAE,0BAA+B,GACvC,EAAE,CAAC,kBAAkB,CAAC,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,UAAU,CAAC,CA8BlD;AAED,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,EAAE,CAAC,OAAO,EACnB,OAAO,GAAE,0BAA+B,GACvC,EAAE,CAAC,kBAAkB,CAiBvB;AAkBD,eAAe,iBAAiB,CAAC;AACjC,YAAY,EACV,oBAAoB,EACpB,oCAAoC,EACpC,gCAAgC,EAChC,0BAA0B,EAC3B,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { normalizeOptions } from "./options.js";
|
|
2
|
+
import { transformDeclarationFile } from "./transform/transform-declaration-file.js";
|
|
3
|
+
import { transformSourceFile } from "./transform/transform-source-file.js";
|
|
4
|
+
import * as ts from "typescript";
|
|
5
|
+
export function createTransformer(program, options = {}) {
|
|
6
|
+
const normalizedOptions = normalizeOptions(options);
|
|
7
|
+
if (normalizedOptions.declarationTypes === "erase") {
|
|
8
|
+
throw new Error('declarationTypes: "erase" requires createTransformers() or createDeclarationTransformer() so an afterDeclarations transformer can be installed');
|
|
9
|
+
}
|
|
10
|
+
return createSourceTransformer(program, normalizedOptions);
|
|
11
|
+
}
|
|
12
|
+
export function createDeclarationTransformer(program, options = {}) {
|
|
13
|
+
void program;
|
|
14
|
+
const normalizedOptions = normalizeOptions(options);
|
|
15
|
+
return (context) => {
|
|
16
|
+
return (node) => {
|
|
17
|
+
if (ts.isBundle(node)) {
|
|
18
|
+
return context.factory.updateBundle(node, node.sourceFiles.map((sourceFile) => transformDeclarationFile({
|
|
19
|
+
context,
|
|
20
|
+
options: normalizedOptions,
|
|
21
|
+
sourceFile
|
|
22
|
+
})));
|
|
23
|
+
}
|
|
24
|
+
return transformDeclarationFile({
|
|
25
|
+
context,
|
|
26
|
+
options: normalizedOptions,
|
|
27
|
+
sourceFile: node
|
|
28
|
+
});
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
export function createTransformers(program, options = {}) {
|
|
33
|
+
const normalizedOptions = normalizeOptions(options);
|
|
34
|
+
const transformers = {
|
|
35
|
+
before: [createSourceTransformer(program, normalizedOptions)]
|
|
36
|
+
};
|
|
37
|
+
if (normalizedOptions.declarationTypes === "erase") {
|
|
38
|
+
return {
|
|
39
|
+
...transformers,
|
|
40
|
+
afterDeclarations: [
|
|
41
|
+
createDeclarationTransformer(program, normalizedOptions)
|
|
42
|
+
]
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
return transformers;
|
|
46
|
+
}
|
|
47
|
+
function createSourceTransformer(program, normalizedOptions) {
|
|
48
|
+
return (context) => {
|
|
49
|
+
return (sourceFile) => {
|
|
50
|
+
return transformSourceFile({
|
|
51
|
+
context,
|
|
52
|
+
options: normalizedOptions,
|
|
53
|
+
program,
|
|
54
|
+
sourceFile
|
|
55
|
+
});
|
|
56
|
+
};
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
export default createTransformer;
|
|
60
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/transformer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AACrF,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAiBjC,MAAM,UAAU,iBAAiB,CAC/B,OAAmB,EACnB,UAA4C,EAAE;IAE9C,MAAM,iBAAiB,GACrB,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAE5B,IAAI,iBAAiB,CAAC,gBAAgB,KAAK,OAAO,EAAE,CAAC;QACnD,MAAM,IAAI,KAAK,CACb,gJAAgJ,CACjJ,CAAC;IACJ,CAAC;IAED,OAAO,uBAAuB,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,OAAmB,EACnB,UAAsC,EAAE;IAExC,KAAK,OAAO,CAAC;IAEb,MAAM,iBAAiB,GACrB,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAE5B,OAAO,CACL,OAAiC,EACU,EAAE;QAC7C,OAAO,CAAC,IAA+B,EAA6B,EAAE;YACpE,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtB,OAAO,OAAO,CAAC,OAAO,CAAC,YAAY,CACjC,IAAI,EACJ,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAyB,EAAiB,EAAE,CAChE,wBAAwB,CAAC;oBACvB,OAAO;oBACP,OAAO,EAAE,iBAAiB;oBAC1B,UAAU;iBACX,CAAC,CACH,CACF,CAAC;YACJ,CAAC;YAED,OAAO,wBAAwB,CAAC;gBAC9B,OAAO;gBACP,OAAO,EAAE,iBAAiB;gBAC1B,UAAU,EAAE,IAAI;aACjB,CAAC,CAAC;QACL,CAAC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,OAAmB,EACnB,UAAsC,EAAE;IAExC,MAAM,iBAAiB,GACrB,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC5B,MAAM,YAAY,GAA0B;QAC1C,MAAM,EAAE,CAAC,uBAAuB,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;KAC9D,CAAC;IAEF,IAAI,iBAAiB,CAAC,gBAAgB,KAAK,OAAO,EAAE,CAAC;QACnD,OAAO;YACL,GAAG,YAAY;YACf,iBAAiB,EAAE;gBACjB,4BAA4B,CAAC,OAAO,EAAE,iBAAiB,CAAC;aACzD;SACF,CAAC;IACJ,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,SAAS,uBAAuB,CAC9B,OAAmB,EACnB,iBAAuD;IAEvD,OAAO,CAAC,OAAiC,EAAiC,EAAE;QAC1E,OAAO,CAAC,UAAyB,EAAiB,EAAE;YAClD,OAAO,mBAAmB,CAAC;gBACzB,OAAO;gBACP,OAAO,EAAE,iBAAiB;gBAC1B,OAAO;gBACP,UAAU;aACX,CAAC,CAAC;QACL,CAAC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAED,eAAe,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { NumericDomain } from "./domains.js";
|
|
2
|
+
export declare const unaryArithmeticOperators: readonly ["+", "-"];
|
|
3
|
+
export declare const binaryArithmeticOperators: readonly ["+", "-", "*", "/", "%", "**"];
|
|
4
|
+
export declare const integerBitwiseOperators: readonly ["&", "|", "^", "<<", ">>", ">>>"];
|
|
5
|
+
export type UnaryArithmeticOperator = (typeof unaryArithmeticOperators)[number];
|
|
6
|
+
export type BinaryArithmeticOperator = (typeof binaryArithmeticOperators)[number];
|
|
7
|
+
export type IntegerBitwiseOperator = (typeof integerBitwiseOperators)[number];
|
|
8
|
+
export type SupportedOperator = BinaryArithmeticOperator | IntegerBitwiseOperator | UnaryArithmeticOperator;
|
|
9
|
+
export interface DomainOperatorSupport {
|
|
10
|
+
readonly binaryArithmetic: readonly BinaryArithmeticOperator[];
|
|
11
|
+
readonly bitwise: readonly IntegerBitwiseOperator[];
|
|
12
|
+
readonly unaryArithmetic: readonly UnaryArithmeticOperator[];
|
|
13
|
+
}
|
|
14
|
+
export declare const operatorSupport: Readonly<Record<NumericDomain, DomainOperatorSupport>>;
|
|
15
|
+
export declare function supportsBitwiseOperator(domain: NumericDomain, operator: IntegerBitwiseOperator): boolean;
|
|
16
|
+
//# sourceMappingURL=operators.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"operators.d.ts","sourceRoot":"","sources":["../../src/transformer/operators.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD,eAAO,MAAM,wBAAwB,qBAAsB,CAAC;AAC5D,eAAO,MAAM,yBAAyB,0CAO5B,CAAC;AACX,eAAO,MAAM,uBAAuB,6CAO1B,CAAC;AAEX,MAAM,MAAM,uBAAuB,GACjC,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC;AAC5C,MAAM,MAAM,wBAAwB,GAClC,CAAC,OAAO,yBAAyB,CAAC,CAAC,MAAM,CAAC,CAAC;AAC7C,MAAM,MAAM,sBAAsB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9E,MAAM,MAAM,iBAAiB,GACzB,wBAAwB,GACxB,sBAAsB,GACtB,uBAAuB,CAAC;AAE5B,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,gBAAgB,EAAE,SAAS,wBAAwB,EAAE,CAAC;IAC/D,QAAQ,CAAC,OAAO,EAAE,SAAS,sBAAsB,EAAE,CAAC;IACpD,QAAQ,CAAC,eAAe,EAAE,SAAS,uBAAuB,EAAE,CAAC;CAC9D;AAID,eAAO,MAAM,eAAe,EAAE,QAAQ,CACpC,MAAM,CAAC,aAAa,EAAE,qBAAqB,CAAC,CAsB7C,CAAC;AAEF,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,sBAAsB,GAC/B,OAAO,CAET"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
export const unaryArithmeticOperators = ["+", "-"];
|
|
2
|
+
export const binaryArithmeticOperators = [
|
|
3
|
+
"+",
|
|
4
|
+
"-",
|
|
5
|
+
"*",
|
|
6
|
+
"/",
|
|
7
|
+
"%",
|
|
8
|
+
"**"
|
|
9
|
+
];
|
|
10
|
+
export const integerBitwiseOperators = [
|
|
11
|
+
"&",
|
|
12
|
+
"|",
|
|
13
|
+
"^",
|
|
14
|
+
"<<",
|
|
15
|
+
">>",
|
|
16
|
+
">>>"
|
|
17
|
+
];
|
|
18
|
+
const floatBitwiseOperators = [];
|
|
19
|
+
export const operatorSupport = {
|
|
20
|
+
f32: {
|
|
21
|
+
binaryArithmetic: binaryArithmeticOperators,
|
|
22
|
+
bitwise: floatBitwiseOperators,
|
|
23
|
+
unaryArithmetic: unaryArithmeticOperators
|
|
24
|
+
},
|
|
25
|
+
f64: {
|
|
26
|
+
binaryArithmetic: binaryArithmeticOperators,
|
|
27
|
+
bitwise: floatBitwiseOperators,
|
|
28
|
+
unaryArithmetic: unaryArithmeticOperators
|
|
29
|
+
},
|
|
30
|
+
i32: {
|
|
31
|
+
binaryArithmetic: binaryArithmeticOperators,
|
|
32
|
+
bitwise: integerBitwiseOperators,
|
|
33
|
+
unaryArithmetic: unaryArithmeticOperators
|
|
34
|
+
},
|
|
35
|
+
u32: {
|
|
36
|
+
binaryArithmetic: binaryArithmeticOperators,
|
|
37
|
+
bitwise: integerBitwiseOperators,
|
|
38
|
+
unaryArithmetic: unaryArithmeticOperators
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
export function supportsBitwiseOperator(domain, operator) {
|
|
42
|
+
return operatorSupport[domain].bitwise.includes(operator);
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=operators.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"operators.js","sourceRoot":"","sources":["../../src/transformer/operators.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,GAAG,EAAE,GAAG,CAAU,CAAC;AAC5D,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,IAAI;CACI,CAAC;AACX,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,GAAG;IACH,GAAG;IACH,GAAG;IACH,IAAI;IACJ,IAAI;IACJ,KAAK;CACG,CAAC;AAmBX,MAAM,qBAAqB,GAAG,EAAuD,CAAC;AAEtF,MAAM,CAAC,MAAM,eAAe,GAExB;IACF,GAAG,EAAE;QACH,gBAAgB,EAAE,yBAAyB;QAC3C,OAAO,EAAE,qBAAqB;QAC9B,eAAe,EAAE,wBAAwB;KAC1C;IACD,GAAG,EAAE;QACH,gBAAgB,EAAE,yBAAyB;QAC3C,OAAO,EAAE,qBAAqB;QAC9B,eAAe,EAAE,wBAAwB;KAC1C;IACD,GAAG,EAAE;QACH,gBAAgB,EAAE,yBAAyB;QAC3C,OAAO,EAAE,uBAAuB;QAChC,eAAe,EAAE,wBAAwB;KAC1C;IACD,GAAG,EAAE;QACH,gBAAgB,EAAE,yBAAyB;QAC3C,OAAO,EAAE,uBAAuB;QAChC,eAAe,EAAE,wBAAwB;KAC1C;CACF,CAAC;AAEF,MAAM,UAAU,uBAAuB,CACrC,MAAqB,EACrB,QAAgC;IAEhC,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC5D,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export type DeclarationTypesMode = "erase" | "preserve";
|
|
2
|
+
export interface NumtypesTransformerOptions {
|
|
3
|
+
readonly collectDiagnostics?: boolean;
|
|
4
|
+
readonly declarationTypes?: DeclarationTypesMode;
|
|
5
|
+
readonly optimizeTypedArrayElementAccess?: boolean;
|
|
6
|
+
readonly preservePhantomImports?: boolean;
|
|
7
|
+
}
|
|
8
|
+
export type NumtypesSourceTransformerOptions = Omit<NumtypesTransformerOptions, "declarationTypes"> & {
|
|
9
|
+
readonly declarationTypes?: "preserve";
|
|
10
|
+
};
|
|
11
|
+
export interface NormalizedNumtypesTransformerOptions {
|
|
12
|
+
readonly collectDiagnostics: boolean;
|
|
13
|
+
readonly declarationTypes: DeclarationTypesMode;
|
|
14
|
+
readonly optimizeTypedArrayElementAccess: boolean;
|
|
15
|
+
readonly preservePhantomImports: boolean;
|
|
16
|
+
}
|
|
17
|
+
export declare const defaultTransformerOptions: NormalizedNumtypesTransformerOptions;
|
|
18
|
+
export declare function normalizeOptions(options: NumtypesTransformerOptions): NormalizedNumtypesTransformerOptions;
|
|
19
|
+
//# sourceMappingURL=options.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/transformer/options.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,oBAAoB,GAAG,OAAO,GAAG,UAAU,CAAC;AAExD,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IACtC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,oBAAoB,CAAC;IACjD,QAAQ,CAAC,+BAA+B,CAAC,EAAE,OAAO,CAAC;IACnD,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAC3C;AAED,MAAM,MAAM,gCAAgC,GAAG,IAAI,CACjD,0BAA0B,EAC1B,kBAAkB,CACnB,GAAG;IACF,QAAQ,CAAC,gBAAgB,CAAC,EAAE,UAAU,CAAC;CACxC,CAAC;AAEF,MAAM,WAAW,oCAAoC;IACnD,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;IACrC,QAAQ,CAAC,gBAAgB,EAAE,oBAAoB,CAAC;IAChD,QAAQ,CAAC,+BAA+B,EAAE,OAAO,CAAC;IAClD,QAAQ,CAAC,sBAAsB,EAAE,OAAO,CAAC;CAC1C;AAED,eAAO,MAAM,yBAAyB,EAAE,oCAKvC,CAAC;AAEF,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,0BAA0B,GAClC,oCAAoC,CAatC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export const defaultTransformerOptions = {
|
|
2
|
+
collectDiagnostics: true,
|
|
3
|
+
declarationTypes: "preserve",
|
|
4
|
+
optimizeTypedArrayElementAccess: false,
|
|
5
|
+
preservePhantomImports: false
|
|
6
|
+
};
|
|
7
|
+
export function normalizeOptions(options) {
|
|
8
|
+
return {
|
|
9
|
+
collectDiagnostics: options.collectDiagnostics ?? defaultTransformerOptions.collectDiagnostics,
|
|
10
|
+
declarationTypes: options.declarationTypes ?? defaultTransformerOptions.declarationTypes,
|
|
11
|
+
optimizeTypedArrayElementAccess: options.optimizeTypedArrayElementAccess ??
|
|
12
|
+
defaultTransformerOptions.optimizeTypedArrayElementAccess,
|
|
13
|
+
preservePhantomImports: options.preservePhantomImports ??
|
|
14
|
+
defaultTransformerOptions.preservePhantomImports
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=options.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/transformer/options.ts"],"names":[],"mappings":"AAuBA,MAAM,CAAC,MAAM,yBAAyB,GAAyC;IAC7E,kBAAkB,EAAE,IAAI;IACxB,gBAAgB,EAAE,UAAU;IAC5B,+BAA+B,EAAE,KAAK;IACtC,sBAAsB,EAAE,KAAK;CAC9B,CAAC;AAEF,MAAM,UAAU,gBAAgB,CAC9B,OAAmC;IAEnC,OAAO;QACL,kBAAkB,EAChB,OAAO,CAAC,kBAAkB,IAAI,yBAAyB,CAAC,kBAAkB;QAC5E,gBAAgB,EACd,OAAO,CAAC,gBAAgB,IAAI,yBAAyB,CAAC,gBAAgB;QACxE,+BAA+B,EAC7B,OAAO,CAAC,+BAA+B;YACvC,yBAAyB,CAAC,+BAA+B;QAC3D,sBAAsB,EACpB,OAAO,CAAC,sBAAsB;YAC9B,yBAAyB,CAAC,sBAAsB;KACnD,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import * as ts from "typescript";
|
|
2
|
+
import type { NumericDomain } from "./domains.js";
|
|
3
|
+
export declare const numtypesModuleSpecifier = "numtypes";
|
|
4
|
+
interface BaseNumtypeImportBinding {
|
|
5
|
+
readonly domain: NumericDomain;
|
|
6
|
+
readonly exportedSymbol: ts.Symbol | undefined;
|
|
7
|
+
readonly importedName: NumericDomain;
|
|
8
|
+
readonly importDeclaration: ts.ImportDeclaration;
|
|
9
|
+
readonly isTypeOnly: boolean;
|
|
10
|
+
readonly localIdentifier: ts.Identifier;
|
|
11
|
+
}
|
|
12
|
+
export interface NumtypeNamedImportBinding extends BaseNumtypeImportBinding {
|
|
13
|
+
readonly importSpecifier: ts.ImportSpecifier;
|
|
14
|
+
readonly kind: "named";
|
|
15
|
+
readonly localIdentifier: ts.Identifier;
|
|
16
|
+
readonly localSymbol: ts.Symbol;
|
|
17
|
+
}
|
|
18
|
+
export interface NumtypeNamespaceImportBinding extends BaseNumtypeImportBinding {
|
|
19
|
+
readonly kind: "namespace";
|
|
20
|
+
readonly localIdentifier: ts.Identifier;
|
|
21
|
+
readonly localSymbol: ts.Symbol;
|
|
22
|
+
readonly namespaceImport: ts.NamespaceImport;
|
|
23
|
+
}
|
|
24
|
+
export type NumtypeImportBinding = NumtypeNamedImportBinding | NumtypeNamespaceImportBinding;
|
|
25
|
+
export interface NumtypeImportDeclaration {
|
|
26
|
+
readonly bindings: readonly NumtypeImportBinding[];
|
|
27
|
+
readonly importDeclaration: ts.ImportDeclaration;
|
|
28
|
+
}
|
|
29
|
+
export interface NumtypeNamespaceImport {
|
|
30
|
+
readonly importDeclaration: ts.ImportDeclaration;
|
|
31
|
+
readonly isTypeOnly: boolean;
|
|
32
|
+
readonly localIdentifier: ts.Identifier;
|
|
33
|
+
readonly localSymbol: ts.Symbol;
|
|
34
|
+
readonly namespaceImport: ts.NamespaceImport;
|
|
35
|
+
}
|
|
36
|
+
export interface NumtypeSymbolTable {
|
|
37
|
+
readonly bindings: readonly NumtypeImportBinding[];
|
|
38
|
+
readonly importDeclarations: readonly NumtypeImportDeclaration[];
|
|
39
|
+
readonly namespaceImports: readonly NumtypeNamespaceImport[];
|
|
40
|
+
getBindingForCastCallee(expression: ts.Expression): NumtypeImportBinding | undefined;
|
|
41
|
+
getBindingForDomain(domain: NumericDomain): readonly NumtypeImportBinding[];
|
|
42
|
+
getBindingForIdentifier(identifier: ts.Identifier): NumtypeImportBinding | undefined;
|
|
43
|
+
getBindingForImportSpecifier(importSpecifier: ts.ImportSpecifier): NumtypeImportBinding | undefined;
|
|
44
|
+
getBindingForPropertyAccessExpression(expression: ts.PropertyAccessExpression): NumtypeImportBinding | undefined;
|
|
45
|
+
getBindingForQualifiedName(qualifiedName: ts.QualifiedName): NumtypeImportBinding | undefined;
|
|
46
|
+
getBindingForExportedSymbol(symbol: ts.Symbol): NumtypeImportBinding | undefined;
|
|
47
|
+
getNamespaceImportForIdentifier(identifier: ts.Identifier): NumtypeNamespaceImport | undefined;
|
|
48
|
+
getNamespaceImportForSymbol(symbol: ts.Symbol): NumtypeNamespaceImport | undefined;
|
|
49
|
+
getBindingForSymbol(symbol: ts.Symbol): NumtypeImportBinding | undefined;
|
|
50
|
+
isNumtypeIdentifier(identifier: ts.Identifier, domain?: NumericDomain): boolean;
|
|
51
|
+
isNumtypeSymbol(symbol: ts.Symbol, domain?: NumericDomain): boolean;
|
|
52
|
+
}
|
|
53
|
+
export declare function resolveNumtypeSymbols(checker: ts.TypeChecker, sourceFile: ts.SourceFile): NumtypeSymbolTable;
|
|
54
|
+
export declare function getNumtypeBindingName(binding: NumtypeImportBinding): string;
|
|
55
|
+
export {};
|
|
56
|
+
//# sourceMappingURL=symbols.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"symbols.d.ts","sourceRoot":"","sources":["../../src/transformer/symbols.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
import { isNumericDomain, numericDomains } from "./domains.js";
|
|
2
|
+
import { isImportClauseTypeOnly } from "./ts-compat.js";
|
|
3
|
+
import * as ts from "typescript";
|
|
4
|
+
export const numtypesModuleSpecifier = "numtypes";
|
|
5
|
+
export function resolveNumtypeSymbols(checker, sourceFile) {
|
|
6
|
+
const bindings = [];
|
|
7
|
+
const importDeclarations = [];
|
|
8
|
+
const namespaceImports = [];
|
|
9
|
+
const localSymbolBindings = new Map();
|
|
10
|
+
const namespaceSymbolImports = new Map();
|
|
11
|
+
const namespaceSymbolBindings = new Map();
|
|
12
|
+
const exportedSymbolBindings = new Map();
|
|
13
|
+
const importSpecifierBindings = new WeakMap();
|
|
14
|
+
for (const statement of sourceFile.statements) {
|
|
15
|
+
const namedImport = getNumtypesNamedImport(statement);
|
|
16
|
+
if (namedImport === undefined) {
|
|
17
|
+
continue;
|
|
18
|
+
}
|
|
19
|
+
const importDeclarationBindings = [];
|
|
20
|
+
const importClause = namedImport.importClause;
|
|
21
|
+
const namedBindings = namedImport.namedBindings;
|
|
22
|
+
for (const importSpecifier of namedBindings.elements) {
|
|
23
|
+
const importedName = getModuleExportNameText(importSpecifier.propertyName ?? importSpecifier.name);
|
|
24
|
+
if (!isNumericDomain(importedName)) {
|
|
25
|
+
continue;
|
|
26
|
+
}
|
|
27
|
+
const localSymbol = checker.getSymbolAtLocation(importSpecifier.name);
|
|
28
|
+
if (localSymbol === undefined) {
|
|
29
|
+
continue;
|
|
30
|
+
}
|
|
31
|
+
const binding = {
|
|
32
|
+
domain: importedName,
|
|
33
|
+
exportedSymbol: getAliasedSymbol(checker, localSymbol),
|
|
34
|
+
importDeclaration: namedImport.importDeclaration,
|
|
35
|
+
importSpecifier,
|
|
36
|
+
importedName,
|
|
37
|
+
isTypeOnly: isImportClauseTypeOnly(importClause) || importSpecifier.isTypeOnly,
|
|
38
|
+
kind: "named",
|
|
39
|
+
localIdentifier: importSpecifier.name,
|
|
40
|
+
localSymbol
|
|
41
|
+
};
|
|
42
|
+
bindings.push(binding);
|
|
43
|
+
importDeclarationBindings.push(binding);
|
|
44
|
+
localSymbolBindings.set(localSymbol, binding);
|
|
45
|
+
if (binding.exportedSymbol !== undefined) {
|
|
46
|
+
exportedSymbolBindings.set(binding.exportedSymbol, binding);
|
|
47
|
+
}
|
|
48
|
+
importSpecifierBindings.set(importSpecifier, binding);
|
|
49
|
+
}
|
|
50
|
+
if (importDeclarationBindings.length > 0) {
|
|
51
|
+
importDeclarations.push({
|
|
52
|
+
bindings: importDeclarationBindings,
|
|
53
|
+
importDeclaration: namedImport.importDeclaration
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
for (const statement of sourceFile.statements) {
|
|
58
|
+
const namespaceImport = getNumtypesNamespaceImport(statement);
|
|
59
|
+
if (namespaceImport === undefined) {
|
|
60
|
+
continue;
|
|
61
|
+
}
|
|
62
|
+
const localSymbol = checker.getSymbolAtLocation(namespaceImport.namespaceImport.name);
|
|
63
|
+
if (localSymbol === undefined) {
|
|
64
|
+
continue;
|
|
65
|
+
}
|
|
66
|
+
const numtypeNamespaceImport = {
|
|
67
|
+
importDeclaration: namespaceImport.importDeclaration,
|
|
68
|
+
isTypeOnly: isImportClauseTypeOnly(namespaceImport.importClause),
|
|
69
|
+
localIdentifier: namespaceImport.namespaceImport.name,
|
|
70
|
+
localSymbol,
|
|
71
|
+
namespaceImport: namespaceImport.namespaceImport
|
|
72
|
+
};
|
|
73
|
+
const moduleSymbol = getAliasedSymbol(checker, localSymbol);
|
|
74
|
+
const domainBindings = new Map();
|
|
75
|
+
const importDeclarationBindings = [];
|
|
76
|
+
namespaceImports.push(numtypeNamespaceImport);
|
|
77
|
+
namespaceSymbolImports.set(localSymbol, numtypeNamespaceImport);
|
|
78
|
+
if (moduleSymbol !== undefined) {
|
|
79
|
+
namespaceSymbolImports.set(moduleSymbol, numtypeNamespaceImport);
|
|
80
|
+
}
|
|
81
|
+
for (const domain of numericDomains) {
|
|
82
|
+
const binding = {
|
|
83
|
+
domain,
|
|
84
|
+
exportedSymbol: moduleSymbol === undefined
|
|
85
|
+
? undefined
|
|
86
|
+
: getModuleExportSymbolForDomain(checker, moduleSymbol, domain),
|
|
87
|
+
importedName: domain,
|
|
88
|
+
importDeclaration: namespaceImport.importDeclaration,
|
|
89
|
+
isTypeOnly: numtypeNamespaceImport.isTypeOnly,
|
|
90
|
+
kind: "namespace",
|
|
91
|
+
localIdentifier: namespaceImport.namespaceImport.name,
|
|
92
|
+
localSymbol,
|
|
93
|
+
namespaceImport: namespaceImport.namespaceImport
|
|
94
|
+
};
|
|
95
|
+
bindings.push(binding);
|
|
96
|
+
domainBindings.set(domain, binding);
|
|
97
|
+
importDeclarationBindings.push(binding);
|
|
98
|
+
if (binding.exportedSymbol !== undefined) {
|
|
99
|
+
exportedSymbolBindings.set(binding.exportedSymbol, binding);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
namespaceSymbolBindings.set(localSymbol, domainBindings);
|
|
103
|
+
importDeclarations.push({
|
|
104
|
+
bindings: importDeclarationBindings,
|
|
105
|
+
importDeclaration: namespaceImport.importDeclaration
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
function getBindingForCastCallee(expression) {
|
|
109
|
+
if (ts.isIdentifier(expression)) {
|
|
110
|
+
return getBindingForIdentifier(expression);
|
|
111
|
+
}
|
|
112
|
+
if (ts.isPropertyAccessExpression(expression)) {
|
|
113
|
+
return getBindingForPropertyAccessExpression(expression);
|
|
114
|
+
}
|
|
115
|
+
return undefined;
|
|
116
|
+
}
|
|
117
|
+
function getBindingForDomain(domain) {
|
|
118
|
+
return bindings.filter((binding) => binding.domain === domain);
|
|
119
|
+
}
|
|
120
|
+
function getBindingForIdentifier(identifier) {
|
|
121
|
+
const symbol = checker.getSymbolAtLocation(identifier);
|
|
122
|
+
if (symbol === undefined) {
|
|
123
|
+
return undefined;
|
|
124
|
+
}
|
|
125
|
+
return getBindingForSymbol(symbol);
|
|
126
|
+
}
|
|
127
|
+
function getBindingForPropertyAccessExpression(expression) {
|
|
128
|
+
if (!isNumericDomain(expression.name.text)) {
|
|
129
|
+
return undefined;
|
|
130
|
+
}
|
|
131
|
+
if (!ts.isIdentifier(expression.expression)) {
|
|
132
|
+
return undefined;
|
|
133
|
+
}
|
|
134
|
+
return getBindingForNamespaceIdentifier(expression.expression, expression.name.text);
|
|
135
|
+
}
|
|
136
|
+
function getBindingForQualifiedName(qualifiedName) {
|
|
137
|
+
if (!isNumericDomain(qualifiedName.right.text)) {
|
|
138
|
+
return undefined;
|
|
139
|
+
}
|
|
140
|
+
if (!ts.isIdentifier(qualifiedName.left)) {
|
|
141
|
+
return undefined;
|
|
142
|
+
}
|
|
143
|
+
return getBindingForNamespaceIdentifier(qualifiedName.left, qualifiedName.right.text);
|
|
144
|
+
}
|
|
145
|
+
function getBindingForImportSpecifier(importSpecifier) {
|
|
146
|
+
return importSpecifierBindings.get(importSpecifier);
|
|
147
|
+
}
|
|
148
|
+
function getBindingForExportedSymbol(symbol) {
|
|
149
|
+
return exportedSymbolBindings.get(symbol);
|
|
150
|
+
}
|
|
151
|
+
function getBindingForSymbol(symbol) {
|
|
152
|
+
return localSymbolBindings.get(symbol);
|
|
153
|
+
}
|
|
154
|
+
function getNamespaceImportForIdentifier(identifier) {
|
|
155
|
+
const symbol = checker.getSymbolAtLocation(identifier);
|
|
156
|
+
if (symbol === undefined) {
|
|
157
|
+
return undefined;
|
|
158
|
+
}
|
|
159
|
+
const directNamespaceImport = namespaceSymbolImports.get(symbol);
|
|
160
|
+
if (directNamespaceImport !== undefined) {
|
|
161
|
+
return directNamespaceImport;
|
|
162
|
+
}
|
|
163
|
+
const aliasedSymbol = getAliasedSymbol(checker, symbol);
|
|
164
|
+
return aliasedSymbol === undefined
|
|
165
|
+
? undefined
|
|
166
|
+
: namespaceSymbolImports.get(aliasedSymbol);
|
|
167
|
+
}
|
|
168
|
+
function getNamespaceImportForSymbol(symbol) {
|
|
169
|
+
return namespaceSymbolImports.get(symbol);
|
|
170
|
+
}
|
|
171
|
+
function getBindingForNamespaceIdentifier(identifier, domain) {
|
|
172
|
+
const symbol = checker.getSymbolAtLocation(identifier);
|
|
173
|
+
if (symbol === undefined) {
|
|
174
|
+
return undefined;
|
|
175
|
+
}
|
|
176
|
+
return namespaceSymbolBindings.get(symbol)?.get(domain);
|
|
177
|
+
}
|
|
178
|
+
function isNumtypeIdentifier(identifier, domain) {
|
|
179
|
+
return matchesDomain(getBindingForIdentifier(identifier), domain);
|
|
180
|
+
}
|
|
181
|
+
function isNumtypeSymbol(symbol, domain) {
|
|
182
|
+
return matchesDomain(getBindingForSymbol(symbol), domain);
|
|
183
|
+
}
|
|
184
|
+
return {
|
|
185
|
+
bindings,
|
|
186
|
+
getBindingForCastCallee,
|
|
187
|
+
getBindingForDomain,
|
|
188
|
+
getBindingForExportedSymbol,
|
|
189
|
+
getBindingForIdentifier,
|
|
190
|
+
getBindingForImportSpecifier,
|
|
191
|
+
getBindingForPropertyAccessExpression,
|
|
192
|
+
getBindingForQualifiedName,
|
|
193
|
+
getNamespaceImportForIdentifier,
|
|
194
|
+
getNamespaceImportForSymbol,
|
|
195
|
+
getBindingForSymbol,
|
|
196
|
+
importDeclarations,
|
|
197
|
+
namespaceImports,
|
|
198
|
+
isNumtypeIdentifier,
|
|
199
|
+
isNumtypeSymbol
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
function getNumtypesNamedImport(statement) {
|
|
203
|
+
if (!isNumtypesImportDeclaration(statement)) {
|
|
204
|
+
return undefined;
|
|
205
|
+
}
|
|
206
|
+
const importClause = statement.importClause;
|
|
207
|
+
const namedBindings = importClause?.namedBindings;
|
|
208
|
+
if (importClause === undefined ||
|
|
209
|
+
namedBindings === undefined ||
|
|
210
|
+
!isNamedImports(namedBindings)) {
|
|
211
|
+
return undefined;
|
|
212
|
+
}
|
|
213
|
+
return {
|
|
214
|
+
importClause,
|
|
215
|
+
importDeclaration: statement,
|
|
216
|
+
namedBindings
|
|
217
|
+
};
|
|
218
|
+
}
|
|
219
|
+
function getNumtypesNamespaceImport(statement) {
|
|
220
|
+
if (!isNumtypesImportDeclaration(statement)) {
|
|
221
|
+
return undefined;
|
|
222
|
+
}
|
|
223
|
+
const importClause = statement.importClause;
|
|
224
|
+
const namedBindings = importClause?.namedBindings;
|
|
225
|
+
if (importClause === undefined ||
|
|
226
|
+
namedBindings === undefined ||
|
|
227
|
+
!ts.isNamespaceImport(namedBindings)) {
|
|
228
|
+
return undefined;
|
|
229
|
+
}
|
|
230
|
+
return {
|
|
231
|
+
importClause,
|
|
232
|
+
importDeclaration: statement,
|
|
233
|
+
namespaceImport: namedBindings
|
|
234
|
+
};
|
|
235
|
+
}
|
|
236
|
+
function isNumtypesImportDeclaration(statement) {
|
|
237
|
+
return (ts.isImportDeclaration(statement) &&
|
|
238
|
+
ts.isStringLiteralLike(statement.moduleSpecifier) &&
|
|
239
|
+
statement.moduleSpecifier.text === numtypesModuleSpecifier);
|
|
240
|
+
}
|
|
241
|
+
function isNamedImports(namedBindings) {
|
|
242
|
+
return ts.isNamedImports(namedBindings);
|
|
243
|
+
}
|
|
244
|
+
function getModuleExportNameText(name) {
|
|
245
|
+
return name.text;
|
|
246
|
+
}
|
|
247
|
+
function getAliasedSymbol(checker, symbol) {
|
|
248
|
+
if ((symbol.flags & ts.SymbolFlags.Alias) === 0) {
|
|
249
|
+
return undefined;
|
|
250
|
+
}
|
|
251
|
+
return checker.getAliasedSymbol(symbol);
|
|
252
|
+
}
|
|
253
|
+
function getModuleExportSymbolForDomain(checker, moduleSymbol, domain) {
|
|
254
|
+
return checker
|
|
255
|
+
.getExportsOfModule(moduleSymbol)
|
|
256
|
+
.find((symbol) => symbol.name === domain);
|
|
257
|
+
}
|
|
258
|
+
export function getNumtypeBindingName(binding) {
|
|
259
|
+
if (binding.kind === "namespace") {
|
|
260
|
+
return `${binding.localIdentifier.text}.${binding.domain}`;
|
|
261
|
+
}
|
|
262
|
+
return binding.localIdentifier.text;
|
|
263
|
+
}
|
|
264
|
+
function matchesDomain(binding, domain) {
|
|
265
|
+
if (binding === undefined) {
|
|
266
|
+
return false;
|
|
267
|
+
}
|
|
268
|
+
return domain === undefined || binding.domain === domain;
|
|
269
|
+
}
|
|
270
|
+
//# sourceMappingURL=symbols.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"symbols.js","sourceRoot":"","sources":["../../src/transformer/symbols.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import * as ts from "typescript";
|
|
2
|
+
export interface ErasePhantomBindingsInput {
|
|
3
|
+
readonly factory: ts.NodeFactory;
|
|
4
|
+
readonly sourceFile: ts.SourceFile;
|
|
5
|
+
}
|
|
6
|
+
export interface EraseDeclarationSurfaceInput extends ErasePhantomBindingsInput {
|
|
7
|
+
readonly numtypeLocalTypeNames: ReadonlySet<string>;
|
|
8
|
+
readonly numtypeLocalValueNames: ReadonlySet<string>;
|
|
9
|
+
readonly preservedNumtypeLocalNames?: ReadonlySet<string> | undefined;
|
|
10
|
+
readonly preservedNumtypeNamespaceNames?: ReadonlySet<string> | undefined;
|
|
11
|
+
}
|
|
12
|
+
export declare function erasePhantomBindings(input: ErasePhantomBindingsInput): ts.SourceFile;
|
|
13
|
+
export declare function eraseNumtypeDeclarationSurface(input: EraseDeclarationSurfaceInput): ts.SourceFile;
|
|
14
|
+
//# sourceMappingURL=erase-imports.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"erase-imports.d.ts","sourceRoot":"","sources":["../../../src/transformer/transform/erase-imports.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAKjC,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,WAAW,CAAC;IACjC,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC;CACpC;AAED,MAAM,WAAW,4BAA6B,SAAQ,yBAAyB;IAC7E,QAAQ,CAAC,qBAAqB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACpD,QAAQ,CAAC,sBAAsB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACrD,QAAQ,CAAC,0BAA0B,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IACtE,QAAQ,CAAC,8BAA8B,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;CAC3E;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,yBAAyB,GAC/B,EAAE,CAAC,UAAU,CAaf;AAED,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,4BAA4B,GAClC,EAAE,CAAC,UAAU,CAoBf"}
|