@glint/ember-tsc 1.0.1-unstable.0a00188
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 +49 -0
- package/bin/ember-tsc.js +4 -0
- package/bin/glint-language-server.js +2 -0
- package/lib/cli/run-volar-tsc.d.ts +2 -0
- package/lib/cli/run-volar-tsc.d.ts.map +1 -0
- package/lib/cli/run-volar-tsc.js +30 -0
- package/lib/cli/run-volar-tsc.js.map +1 -0
- package/lib/config/config.d.ts +15 -0
- package/lib/config/config.d.ts.map +1 -0
- package/lib/config/config.js +21 -0
- package/lib/config/config.js.map +1 -0
- package/lib/config/environment.d.ts +26 -0
- package/lib/config/environment.d.ts.map +1 -0
- package/lib/config/environment.js +96 -0
- package/lib/config/environment.js.map +1 -0
- package/lib/config/index.d.ts +17 -0
- package/lib/config/index.d.ts.map +1 -0
- package/lib/config/index.js +26 -0
- package/lib/config/index.js.map +1 -0
- package/lib/config/loader.d.ts +25 -0
- package/lib/config/loader.d.ts.map +1 -0
- package/lib/config/loader.js +110 -0
- package/lib/config/loader.js.map +1 -0
- package/lib/config/types.cjs +3 -0
- package/lib/config/types.cjs.map +1 -0
- package/lib/config/types.d.cts +60 -0
- package/lib/config/types.d.cts.map +1 -0
- package/lib/environment-ember-template-imports/-private/environment/common.d.ts +13 -0
- package/lib/environment-ember-template-imports/-private/environment/common.d.ts.map +1 -0
- package/lib/environment-ember-template-imports/-private/environment/common.js +2 -0
- package/lib/environment-ember-template-imports/-private/environment/common.js.map +1 -0
- package/lib/environment-ember-template-imports/-private/environment/index.d.ts +3 -0
- package/lib/environment-ember-template-imports/-private/environment/index.d.ts.map +1 -0
- package/lib/environment-ember-template-imports/-private/environment/index.js +76 -0
- package/lib/environment-ember-template-imports/-private/environment/index.js.map +1 -0
- package/lib/environment-ember-template-imports/-private/environment/preprocess.d.ts +4 -0
- package/lib/environment-ember-template-imports/-private/environment/preprocess.d.ts.map +1 -0
- package/lib/environment-ember-template-imports/-private/environment/preprocess.js +73 -0
- package/lib/environment-ember-template-imports/-private/environment/preprocess.js.map +1 -0
- package/lib/environment-ember-template-imports/-private/environment/transform.d.ts +4 -0
- package/lib/environment-ember-template-imports/-private/environment/transform.d.ts.map +1 -0
- package/lib/environment-ember-template-imports/-private/environment/transform.js +134 -0
- package/lib/environment-ember-template-imports/-private/environment/transform.js.map +1 -0
- package/lib/index.d.ts +7 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +6 -0
- package/lib/index.js.map +1 -0
- package/lib/plugins/g-compiler-errors.d.ts +12 -0
- package/lib/plugins/g-compiler-errors.d.ts.map +1 -0
- package/lib/plugins/g-compiler-errors.js +58 -0
- package/lib/plugins/g-compiler-errors.js.map +1 -0
- package/lib/plugins/g-template-tag-symbols.d.ts +11 -0
- package/lib/plugins/g-template-tag-symbols.d.ts.map +1 -0
- package/lib/plugins/g-template-tag-symbols.js +48 -0
- package/lib/plugins/g-template-tag-symbols.js.map +1 -0
- package/lib/plugins/utils.d.ts +25 -0
- package/lib/plugins/utils.d.ts.map +1 -0
- package/lib/plugins/utils.js +63 -0
- package/lib/plugins/utils.js.map +1 -0
- package/lib/transform/diagnostics/augmentation.d.ts +4 -0
- package/lib/transform/diagnostics/augmentation.d.ts.map +1 -0
- package/lib/transform/diagnostics/augmentation.js +223 -0
- package/lib/transform/diagnostics/augmentation.js.map +1 -0
- package/lib/transform/diagnostics/index.d.ts +5 -0
- package/lib/transform/diagnostics/index.d.ts.map +1 -0
- package/lib/transform/diagnostics/index.js +2 -0
- package/lib/transform/diagnostics/index.js.map +1 -0
- package/lib/transform/index.d.ts +4 -0
- package/lib/transform/index.d.ts.map +1 -0
- package/lib/transform/index.js +2 -0
- package/lib/transform/index.js.map +1 -0
- package/lib/transform/template/code-features.d.ts +30 -0
- package/lib/transform/template/code-features.d.ts.map +1 -0
- package/lib/transform/template/code-features.js +26 -0
- package/lib/transform/template/code-features.js.map +1 -0
- package/lib/transform/template/glimmer-ast-mapping-tree.d.ts +80 -0
- package/lib/transform/template/glimmer-ast-mapping-tree.d.ts.map +1 -0
- package/lib/transform/template/glimmer-ast-mapping-tree.js +132 -0
- package/lib/transform/template/glimmer-ast-mapping-tree.js.map +1 -0
- package/lib/transform/template/inlining/index.d.ts +16 -0
- package/lib/transform/template/inlining/index.d.ts.map +1 -0
- package/lib/transform/template/inlining/index.js +21 -0
- package/lib/transform/template/inlining/index.js.map +1 -0
- package/lib/transform/template/inlining/tagged-strings.d.ts +8 -0
- package/lib/transform/template/inlining/tagged-strings.d.ts.map +1 -0
- package/lib/transform/template/inlining/tagged-strings.js +140 -0
- package/lib/transform/template/inlining/tagged-strings.js.map +1 -0
- package/lib/transform/template/map-template-contents.d.ts +121 -0
- package/lib/transform/template/map-template-contents.d.ts.map +1 -0
- package/lib/transform/template/map-template-contents.js +287 -0
- package/lib/transform/template/map-template-contents.js.map +1 -0
- package/lib/transform/template/rewrite-module.d.ts +22 -0
- package/lib/transform/template/rewrite-module.d.ts.map +1 -0
- package/lib/transform/template/rewrite-module.js +265 -0
- package/lib/transform/template/rewrite-module.js.map +1 -0
- package/lib/transform/template/scope-stack.d.ts +13 -0
- package/lib/transform/template/scope-stack.d.ts.map +1 -0
- package/lib/transform/template/scope-stack.js +28 -0
- package/lib/transform/template/scope-stack.js.map +1 -0
- package/lib/transform/template/template-to-typescript.d.ts +19 -0
- package/lib/transform/template/template-to-typescript.d.ts.map +1 -0
- package/lib/transform/template/template-to-typescript.js +1095 -0
- package/lib/transform/template/template-to-typescript.js.map +1 -0
- package/lib/transform/template/transformed-module.d.ts +111 -0
- package/lib/transform/template/transformed-module.d.ts.map +1 -0
- package/lib/transform/template/transformed-module.js +287 -0
- package/lib/transform/template/transformed-module.js.map +1 -0
- package/lib/transform/util.d.ts +7 -0
- package/lib/transform/util.d.ts.map +1 -0
- package/lib/transform/util.js +15 -0
- package/lib/transform/util.js.map +1 -0
- package/lib/volar/ember-language-plugin.d.ts +14 -0
- package/lib/volar/ember-language-plugin.d.ts.map +1 -0
- package/lib/volar/ember-language-plugin.js +91 -0
- package/lib/volar/ember-language-plugin.js.map +1 -0
- package/lib/volar/gts-virtual-code.d.ts +83 -0
- package/lib/volar/gts-virtual-code.d.ts.map +1 -0
- package/lib/volar/gts-virtual-code.js +210 -0
- package/lib/volar/gts-virtual-code.js.map +1 -0
- package/lib/volar/language-server.d.ts +2 -0
- package/lib/volar/language-server.d.ts.map +1 -0
- package/lib/volar/language-server.js +214 -0
- package/lib/volar/language-server.js.map +1 -0
- package/lib/volar/script-snapshot.d.ts +17 -0
- package/lib/volar/script-snapshot.d.ts.map +1 -0
- package/lib/volar/script-snapshot.js +24 -0
- package/lib/volar/script-snapshot.js.map +1 -0
- package/package.json +114 -0
- package/src/cli/run-volar-tsc.ts +36 -0
- package/src/config/config.ts +33 -0
- package/src/config/environment.ts +128 -0
- package/src/config/index.ts +30 -0
- package/src/config/loader.ts +143 -0
- package/src/config/types.cts +85 -0
- package/src/environment-ember-template-imports/-private/environment/common.ts +14 -0
- package/src/environment-ember-template-imports/-private/environment/index.ts +83 -0
- package/src/environment-ember-template-imports/-private/environment/preprocess.ts +90 -0
- package/src/environment-ember-template-imports/-private/environment/transform.ts +202 -0
- package/src/index.ts +9 -0
- package/src/plugins/g-compiler-errors.ts +67 -0
- package/src/plugins/g-template-tag-symbols.ts +54 -0
- package/src/plugins/utils.ts +86 -0
- package/src/transform/diagnostics/augmentation.ts +333 -0
- package/src/transform/diagnostics/index.ts +5 -0
- package/src/transform/index.ts +4 -0
- package/src/transform/template/code-features.ts +30 -0
- package/src/transform/template/glimmer-ast-mapping-tree.ts +173 -0
- package/src/transform/template/inlining/index.ts +33 -0
- package/src/transform/template/inlining/tagged-strings.ts +187 -0
- package/src/transform/template/map-template-contents.ts +501 -0
- package/src/transform/template/rewrite-module.ts +372 -0
- package/src/transform/template/scope-stack.ts +34 -0
- package/src/transform/template/template-to-typescript.ts +1476 -0
- package/src/transform/template/transformed-module.ts +431 -0
- package/src/transform/util.ts +24 -0
- package/src/volar/ember-language-plugin.ts +108 -0
- package/src/volar/gts-virtual-code.ts +249 -0
- package/src/volar/language-server.ts +250 -0
- package/src/volar/script-snapshot.ts +27 -0
- package/types/-private/dsl/globals.d.ts +204 -0
- package/types/-private/dsl/index.d.ts +50 -0
- package/types/-private/dsl/integration-declarations.d.ts +143 -0
- package/types/-private/intrinsics/action.d.ts +45 -0
- package/types/-private/intrinsics/concat.d.ts +6 -0
- package/types/-private/intrinsics/each-in.d.ts +24 -0
- package/types/-private/intrinsics/each.d.ts +17 -0
- package/types/-private/intrinsics/fn.d.ts +44 -0
- package/types/-private/intrinsics/get.d.ts +31 -0
- package/types/-private/intrinsics/input.d.ts +24 -0
- package/types/-private/intrinsics/link-to.d.ts +31 -0
- package/types/-private/intrinsics/log.d.ts +6 -0
- package/types/-private/intrinsics/mount.d.ts +9 -0
- package/types/-private/intrinsics/mut.d.ts +14 -0
- package/types/-private/intrinsics/on.d.ts +21 -0
- package/types/-private/intrinsics/outlet.d.ts +8 -0
- package/types/-private/intrinsics/textarea.d.ts +16 -0
- package/types/-private/intrinsics/unbound.d.ts +10 -0
- package/types/-private/intrinsics/unique-id.d.ts +5 -0
- package/types/globals/index.d.ts +3 -0
- package/types/silent-error.d.ts +4 -0
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { preprocess } from './preprocess.js';
|
|
2
|
+
import { transform } from './transform.js';
|
|
3
|
+
export default function emberTemplateImportsEnvironment(options) {
|
|
4
|
+
let additionalSpecialForms = typeof options['additionalSpecialForms'] === 'object'
|
|
5
|
+
? options['additionalSpecialForms']
|
|
6
|
+
: {};
|
|
7
|
+
const additionalGlobalSpecialForms = additionalSpecialForms.globals ?? {};
|
|
8
|
+
const additionalGlobals = Array.isArray(options['additionalGlobals'])
|
|
9
|
+
? options['additionalGlobals']
|
|
10
|
+
: [];
|
|
11
|
+
return {
|
|
12
|
+
tags: {
|
|
13
|
+
'@glint/ember-tsc/environment-ember-template-imports/-private/tag': {
|
|
14
|
+
hbs: {
|
|
15
|
+
typesModule: '@glint/ember-tsc/-private/dsl',
|
|
16
|
+
specialForms: {
|
|
17
|
+
globals: {
|
|
18
|
+
if: 'if',
|
|
19
|
+
unless: 'if-not',
|
|
20
|
+
yield: 'yield',
|
|
21
|
+
component: 'bind-invokable',
|
|
22
|
+
modifier: 'bind-invokable',
|
|
23
|
+
helper: 'bind-invokable',
|
|
24
|
+
...additionalGlobalSpecialForms,
|
|
25
|
+
},
|
|
26
|
+
imports: {
|
|
27
|
+
'@ember/helper': {
|
|
28
|
+
array: 'array-literal',
|
|
29
|
+
hash: 'object-literal',
|
|
30
|
+
...additionalSpecialForms.imports?.['@ember/helper'],
|
|
31
|
+
},
|
|
32
|
+
...additionalSpecialForms.imports,
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
globals: [
|
|
36
|
+
'action',
|
|
37
|
+
'component',
|
|
38
|
+
'debugger',
|
|
39
|
+
'each',
|
|
40
|
+
'each-in',
|
|
41
|
+
'has-block',
|
|
42
|
+
'has-block-params',
|
|
43
|
+
'helper',
|
|
44
|
+
'if',
|
|
45
|
+
'in-element',
|
|
46
|
+
'let',
|
|
47
|
+
'log',
|
|
48
|
+
'modifier',
|
|
49
|
+
'mount',
|
|
50
|
+
'mut',
|
|
51
|
+
'outlet',
|
|
52
|
+
'unbound',
|
|
53
|
+
'unless',
|
|
54
|
+
'with',
|
|
55
|
+
'yield',
|
|
56
|
+
...Object.keys(additionalGlobalSpecialForms),
|
|
57
|
+
...additionalGlobals,
|
|
58
|
+
],
|
|
59
|
+
},
|
|
60
|
+
},
|
|
61
|
+
},
|
|
62
|
+
extensions: {
|
|
63
|
+
'.gts': {
|
|
64
|
+
kind: 'typed-script',
|
|
65
|
+
preprocess,
|
|
66
|
+
transform,
|
|
67
|
+
},
|
|
68
|
+
'.gjs': {
|
|
69
|
+
kind: 'untyped-script',
|
|
70
|
+
preprocess,
|
|
71
|
+
transform,
|
|
72
|
+
},
|
|
73
|
+
},
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/environment-ember-template-imports/-private/environment/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,MAAM,CAAC,OAAO,UAAU,+BAA+B,CACrD,OAAgC;IAEhC,IAAI,sBAAsB,GACxB,OAAO,OAAO,CAAC,wBAAwB,CAAC,KAAK,QAAQ;QACnD,CAAC,CAAE,OAAO,CAAC,wBAAwB,CAA4B;QAC/D,CAAC,CAAC,EAAE,CAAC;IAET,MAAM,4BAA4B,GAAG,sBAAsB,CAAC,OAAO,IAAI,EAAE,CAAC;IAE1E,MAAM,iBAAiB,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;QACnE,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC;QAC9B,CAAC,CAAC,EAAE,CAAC;IAEP,OAAO;QACL,IAAI,EAAE;YACJ,kEAAkE,EAAE;gBAClE,GAAG,EAAE;oBACH,WAAW,EAAE,+BAA+B;oBAC5C,YAAY,EAAE;wBACZ,OAAO,EAAE;4BACP,EAAE,EAAE,IAAI;4BACR,MAAM,EAAE,QAAQ;4BAChB,KAAK,EAAE,OAAO;4BACd,SAAS,EAAE,gBAAgB;4BAC3B,QAAQ,EAAE,gBAAgB;4BAC1B,MAAM,EAAE,gBAAgB;4BACxB,GAAG,4BAA4B;yBAChC;wBACD,OAAO,EAAE;4BACP,eAAe,EAAE;gCACf,KAAK,EAAE,eAAe;gCACtB,IAAI,EAAE,gBAAgB;gCACtB,GAAG,sBAAsB,CAAC,OAAO,EAAE,CAAC,eAAe,CAAC;6BACrD;4BACD,GAAG,sBAAsB,CAAC,OAAO;yBAClC;qBACF;oBACD,OAAO,EAAE;wBACP,QAAQ;wBACR,WAAW;wBACX,UAAU;wBACV,MAAM;wBACN,SAAS;wBACT,WAAW;wBACX,kBAAkB;wBAClB,QAAQ;wBACR,IAAI;wBACJ,YAAY;wBACZ,KAAK;wBACL,KAAK;wBACL,UAAU;wBACV,OAAO;wBACP,KAAK;wBACL,QAAQ;wBACR,SAAS;wBACT,QAAQ;wBACR,MAAM;wBACN,OAAO;wBACP,GAAG,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC;wBAC5C,GAAG,iBAAiB;qBACrB;iBACF;aACF;SACF;QACD,UAAU,EAAE;YACV,MAAM,EAAE;gBACN,IAAI,EAAE,cAAc;gBACpB,UAAU;gBACV,SAAS;aACV;YACD,MAAM,EAAE;gBACN,IAAI,EAAE,gBAAgB;gBACtB,UAAU;gBACV,SAAS;aACV;SACF;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"preprocess.d.ts","sourceRoot":"","sources":["../../../../src/environment-ember-template-imports/-private/environment/preprocess.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAc,cAAc,EAAoB,MAAM,aAAa,CAAC;AAQ3E,eAAO,MAAM,UAAU,EAAE,wBAAwB,CAAC,cAAc,CAgE/D,CAAC"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { GLOBAL_TAG } from './common.js';
|
|
2
|
+
const TEMPLATE_START = `[${GLOBAL_TAG}\``;
|
|
3
|
+
const TEMPLATE_END = '`]';
|
|
4
|
+
import { Preprocessor } from 'content-tag';
|
|
5
|
+
const p = new Preprocessor();
|
|
6
|
+
export const preprocess = (source, path) => {
|
|
7
|
+
// NOTE: https://github.com/embroider-build/content-tag/issues/45
|
|
8
|
+
// All indicies are byte-index, not char-index.
|
|
9
|
+
let templates = p.parse(source, { filename: path });
|
|
10
|
+
let templateLocations = [];
|
|
11
|
+
let contents = '';
|
|
12
|
+
let sourceOffsetBytes = 0;
|
|
13
|
+
let deltaBytes = 0;
|
|
14
|
+
let sourceBuffer = getBuffer(source);
|
|
15
|
+
for (let template of templates) {
|
|
16
|
+
let startTagLengthBytes = template.startRange.end - template.startRange.start;
|
|
17
|
+
let endTagLengthBytes = template.endRange.end - template.endRange.start;
|
|
18
|
+
let startTagOffsetBytes = template.startRange.start;
|
|
19
|
+
let endTagOffsetBytes = template.endRange.start;
|
|
20
|
+
let transformedStartBytes = startTagOffsetBytes - deltaBytes;
|
|
21
|
+
/**
|
|
22
|
+
* TODO: we want content-tag to manage all this for us, as managing indicies
|
|
23
|
+
* can be error-prone.
|
|
24
|
+
*
|
|
25
|
+
* SEE: https://github.com/embroider-build/content-tag/issues/39#issuecomment-1832443310
|
|
26
|
+
*/
|
|
27
|
+
let prefixingSegment = sourceBuffer.subarray(sourceOffsetBytes, startTagOffsetBytes);
|
|
28
|
+
contents = contents.concat(prefixingSegment.toString());
|
|
29
|
+
contents = contents.concat(TEMPLATE_START);
|
|
30
|
+
// For TEMPLATE_START & TEMPLATE_END, characters === bytes
|
|
31
|
+
deltaBytes += startTagLengthBytes - TEMPLATE_START.length;
|
|
32
|
+
let transformedEnd = endTagOffsetBytes - deltaBytes + TEMPLATE_END.length;
|
|
33
|
+
let templateContentSegment = sourceBuffer.subarray(startTagOffsetBytes + startTagLengthBytes, endTagOffsetBytes);
|
|
34
|
+
let templateContentSegmentString = templateContentSegment.toString();
|
|
35
|
+
let escapedTemplateContentSegment = templateContentSegmentString
|
|
36
|
+
.replaceAll('$', '\\$')
|
|
37
|
+
.replaceAll('`', '\\`');
|
|
38
|
+
deltaBytes += templateContentSegmentString.length - escapedTemplateContentSegment.length;
|
|
39
|
+
contents = contents.concat(escapedTemplateContentSegment);
|
|
40
|
+
contents = contents.concat(TEMPLATE_END);
|
|
41
|
+
deltaBytes += endTagLengthBytes - TEMPLATE_END.length;
|
|
42
|
+
sourceOffsetBytes = endTagOffsetBytes + endTagLengthBytes;
|
|
43
|
+
templateLocations.push({
|
|
44
|
+
startTagOffset: byteToCharIndex(source, startTagOffsetBytes),
|
|
45
|
+
endTagOffset: byteToCharIndex(source, endTagOffsetBytes),
|
|
46
|
+
startTagLength: byteToCharIndex(source, startTagLengthBytes),
|
|
47
|
+
endTagLength: byteToCharIndex(source, endTagLengthBytes),
|
|
48
|
+
transformedStart: byteToCharIndex(contents, transformedStartBytes),
|
|
49
|
+
transformedEnd: byteToCharIndex(contents, transformedEnd),
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
contents = contents.concat(sourceBuffer.subarray(sourceOffsetBytes).toString());
|
|
53
|
+
return {
|
|
54
|
+
contents,
|
|
55
|
+
data: {
|
|
56
|
+
templateLocations,
|
|
57
|
+
},
|
|
58
|
+
};
|
|
59
|
+
};
|
|
60
|
+
function byteToCharIndex(str, byteOffset) {
|
|
61
|
+
const buf = getBuffer(str);
|
|
62
|
+
return buf.subarray(0, byteOffset).toString().length;
|
|
63
|
+
}
|
|
64
|
+
const BufferMap = new Map();
|
|
65
|
+
function getBuffer(str) {
|
|
66
|
+
let buf = BufferMap.get(str);
|
|
67
|
+
if (!buf) {
|
|
68
|
+
buf = Buffer.from(str);
|
|
69
|
+
BufferMap.set(str, buf);
|
|
70
|
+
}
|
|
71
|
+
return buf;
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=preprocess.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"preprocess.js","sourceRoot":"","sources":["../../../../src/environment-ember-template-imports/-private/environment/preprocess.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../../../src/environment-ember-template-imports/-private/environment/transform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAExE,OAAO,EAAc,cAAc,EAAoB,MAAM,aAAa,CAAC;AAI3E,eAAO,MAAM,SAAS,EAAE,uBAAuB,CAAC,cAAc,CA6D7D,CAAC"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import { GLOBAL_TAG } from './common.js';
|
|
2
|
+
export const transform = (data, { ts, context, setEmitMetadata }) => {
|
|
3
|
+
let f = ts.factory;
|
|
4
|
+
let { templateLocations } = data;
|
|
5
|
+
if (!templateLocations.length)
|
|
6
|
+
return (sf) => sf;
|
|
7
|
+
return function visit(node) {
|
|
8
|
+
let visitedNode = ts.visitEachChild(node, visit, context);
|
|
9
|
+
let transformedNode = transformNode(visitedNode);
|
|
10
|
+
return repairAncestry(transformedNode);
|
|
11
|
+
};
|
|
12
|
+
function transformNode(node) {
|
|
13
|
+
if (ts.isSourceFile(node)) {
|
|
14
|
+
// Add `import { hbs as __T } from 'ember-template-imports'` to the file
|
|
15
|
+
return addTagImport(f, node);
|
|
16
|
+
}
|
|
17
|
+
else if (isETIDefaultTemplate(ts, node)) {
|
|
18
|
+
// Annotate that this template is a default export
|
|
19
|
+
setEmitMetadata(node.expression, { prepend: 'export default ' });
|
|
20
|
+
return node;
|
|
21
|
+
}
|
|
22
|
+
else if (isETIDefaultSatisfiesTemplate(ts, node)) {
|
|
23
|
+
// Annotate that this template is a default export
|
|
24
|
+
setEmitMetadata(node.expression.expression, { prepend: 'export default ' });
|
|
25
|
+
return node;
|
|
26
|
+
}
|
|
27
|
+
else if (isETITemplateExpression(ts, node)) {
|
|
28
|
+
// Convert '[__T`foo`]' as an expression to just '__T`foo`'
|
|
29
|
+
let location = findTemplateLocation(templateLocations, node);
|
|
30
|
+
let template = node.elements[0];
|
|
31
|
+
setEmitMetadata(template, {
|
|
32
|
+
templateLocation: {
|
|
33
|
+
start: location.startTagOffset,
|
|
34
|
+
end: location.endTagOffset + location.endTagLength,
|
|
35
|
+
contentStart: location.startTagOffset + location.startTagLength,
|
|
36
|
+
contentEnd: location.endTagOffset,
|
|
37
|
+
},
|
|
38
|
+
});
|
|
39
|
+
return template;
|
|
40
|
+
}
|
|
41
|
+
else if (isETITemplateProperty(ts, node)) {
|
|
42
|
+
// Convert '[__T`foo`]' in a class body to 'static { __T`foo` }'
|
|
43
|
+
let location = findTemplateLocation(templateLocations, node);
|
|
44
|
+
let template = node.name.expression;
|
|
45
|
+
setEmitMetadata(template, {
|
|
46
|
+
prepend: 'static { ',
|
|
47
|
+
append: ' }',
|
|
48
|
+
templateLocation: {
|
|
49
|
+
start: location.startTagOffset,
|
|
50
|
+
end: location.endTagOffset + location.endTagLength,
|
|
51
|
+
contentStart: location.startTagOffset + location.startTagLength,
|
|
52
|
+
contentEnd: location.endTagOffset,
|
|
53
|
+
},
|
|
54
|
+
});
|
|
55
|
+
return buildStaticBlockForTemplate(f, template);
|
|
56
|
+
}
|
|
57
|
+
return node;
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
// Many location operations in the TS AST rely on having an unbroken chain
|
|
61
|
+
// of `.parent` values fron a given node up to its containing `SourceFile`,
|
|
62
|
+
// but its transformation framework does not maintain these by default,
|
|
63
|
+
// so we explicitly reconnect nodes as we go.
|
|
64
|
+
function repairAncestry(node, parent = node.parent) {
|
|
65
|
+
// If the node already has a parent AND it's correct, we don't need
|
|
66
|
+
// to descend further.
|
|
67
|
+
if (parent && node.parent === parent)
|
|
68
|
+
return node;
|
|
69
|
+
Object.assign(node, { parent });
|
|
70
|
+
node.forEachChild((child) => {
|
|
71
|
+
repairAncestry(child, node);
|
|
72
|
+
});
|
|
73
|
+
return node;
|
|
74
|
+
}
|
|
75
|
+
function addTagImport(f, sourceFile) {
|
|
76
|
+
return f.updateSourceFile(sourceFile, [
|
|
77
|
+
f.createImportDeclaration([], f.createImportClause(false, undefined, f.createNamedImports([
|
|
78
|
+
f.createImportSpecifier(false, f.createIdentifier('hbs'), f.createIdentifier(GLOBAL_TAG)),
|
|
79
|
+
])), f.createStringLiteral('@glint/ember-tsc/environment-ember-template-imports/-private/tag')),
|
|
80
|
+
...sourceFile.statements,
|
|
81
|
+
]);
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Implicit default export:
|
|
85
|
+
*
|
|
86
|
+
* ( <template></template> )
|
|
87
|
+
* ^ ExpressionStatement
|
|
88
|
+
*
|
|
89
|
+
* ( <template></template> satisfies ... )
|
|
90
|
+
* ^ SatisfiesExpression
|
|
91
|
+
*
|
|
92
|
+
* But!
|
|
93
|
+
*
|
|
94
|
+
* ( const X = <template></template> satisfies ... )
|
|
95
|
+
* ^ VariableStatement
|
|
96
|
+
*
|
|
97
|
+
* So when we check for a wrapping SatisfiesExpression, we need to also make sure
|
|
98
|
+
* the parent node is not a variable Statement.
|
|
99
|
+
*/
|
|
100
|
+
function isETIDefaultTemplate(ts, node) {
|
|
101
|
+
return ts.isExpressionStatement(node) && isETITemplateLiteral(ts, node.expression);
|
|
102
|
+
}
|
|
103
|
+
function isETIDefaultSatisfiesTemplate(ts, node) {
|
|
104
|
+
return (ts.isExpressionStatement(node) &&
|
|
105
|
+
ts.isSatisfiesExpression(node.expression) &&
|
|
106
|
+
isETITemplateLiteral(ts, node.expression.expression));
|
|
107
|
+
}
|
|
108
|
+
function isETITemplateProperty(ts, node) {
|
|
109
|
+
return (ts.isPropertyDeclaration(node) &&
|
|
110
|
+
ts.isComputedPropertyName(node.name) &&
|
|
111
|
+
isETITemplateLiteral(ts, node.name.expression));
|
|
112
|
+
}
|
|
113
|
+
function isETITemplateExpression(ts, node) {
|
|
114
|
+
return (ts.isArrayLiteralExpression(node) &&
|
|
115
|
+
node.elements.length === 1 &&
|
|
116
|
+
isETITemplateLiteral(ts, node.elements[0]));
|
|
117
|
+
}
|
|
118
|
+
function isETITemplateLiteral(ts, node) {
|
|
119
|
+
return (ts.isTaggedTemplateExpression(node) &&
|
|
120
|
+
ts.isNoSubstitutionTemplateLiteral(node.template) &&
|
|
121
|
+
ts.isIdentifier(node.tag) &&
|
|
122
|
+
node.tag.text === GLOBAL_TAG);
|
|
123
|
+
}
|
|
124
|
+
function findTemplateLocation(locations, node) {
|
|
125
|
+
let location = locations.find((loc) => loc.transformedStart === node.getStart());
|
|
126
|
+
if (!location) {
|
|
127
|
+
throw new Error('Internal error: missing location info for template');
|
|
128
|
+
}
|
|
129
|
+
return location;
|
|
130
|
+
}
|
|
131
|
+
function buildStaticBlockForTemplate(f, template) {
|
|
132
|
+
return f.createClassStaticBlockDeclaration(f.createBlock([f.createExpressionStatement(template)]));
|
|
133
|
+
}
|
|
134
|
+
//# sourceMappingURL=transform.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transform.js","sourceRoot":"","sources":["../../../../src/environment-ember-template-imports/-private/environment/transform.ts"],"names":[],"mappings":"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"}
|
package/lib/index.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { GlintConfig, loadConfig, findConfig } from './config/index.js';
|
|
2
|
+
import { createEmberLanguagePlugin } from './volar/ember-language-plugin.js';
|
|
3
|
+
import { VirtualGtsCode } from './volar/gts-virtual-code.js';
|
|
4
|
+
import { augmentDiagnostics } from './transform/diagnostics/augmentation.js';
|
|
5
|
+
export { loadConfig, findConfig, createEmberLanguagePlugin, VirtualGtsCode, augmentDiagnostics };
|
|
6
|
+
export type { GlintConfig };
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAE7E,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAE7E,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,yBAAyB,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC;AAEjG,YAAY,EAAE,WAAW,EAAE,CAAC"}
|
package/lib/index.js
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { loadConfig, findConfig } from './config/index.js';
|
|
2
|
+
import { createEmberLanguagePlugin } from './volar/ember-language-plugin.js';
|
|
3
|
+
import { VirtualGtsCode } from './volar/gts-virtual-code.js';
|
|
4
|
+
import { augmentDiagnostics } from './transform/diagnostics/augmentation.js';
|
|
5
|
+
export { loadConfig, findConfig, createEmberLanguagePlugin, VirtualGtsCode, augmentDiagnostics };
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,UAAU,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAE7E,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAE7E,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,yBAAyB,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { LanguageServicePlugin } from '@volar/language-service';
|
|
2
|
+
/**
|
|
3
|
+
* This LanguageServicePlugin surfaces compiler/syntax errors as diagnostics
|
|
4
|
+
* within .gts/.gjs files, e.g. if there is an unclosed html tag or `{{` curly brace,
|
|
5
|
+
* the entire `<template>` tag region will be highlighted as an error.
|
|
6
|
+
*
|
|
7
|
+
* @GLINT_FEATURE_DIAGNOSTICS
|
|
8
|
+
* @GLINT_FEATURE_DIAGNOSTICS_LANGUAGE_SERVER
|
|
9
|
+
* @GLINT_FEATURE_DIAGNOSTICS_LANGUAGE_SERVER_GTS_COMPILER_ERRORS
|
|
10
|
+
*/
|
|
11
|
+
export declare function create(): LanguageServicePlugin;
|
|
12
|
+
//# sourceMappingURL=g-compiler-errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"g-compiler-errors.d.ts","sourceRoot":"","sources":["../../src/plugins/g-compiler-errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAIrE;;;;;;;;GAQG;AACH,wBAAgB,MAAM,IAAI,qBAAqB,CAqD9C"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { getEmbeddedInfo } from './utils.js';
|
|
2
|
+
/**
|
|
3
|
+
* This LanguageServicePlugin surfaces compiler/syntax errors as diagnostics
|
|
4
|
+
* within .gts/.gjs files, e.g. if there is an unclosed html tag or `{{` curly brace,
|
|
5
|
+
* the entire `<template>` tag region will be highlighted as an error.
|
|
6
|
+
*
|
|
7
|
+
* @GLINT_FEATURE_DIAGNOSTICS
|
|
8
|
+
* @GLINT_FEATURE_DIAGNOSTICS_LANGUAGE_SERVER
|
|
9
|
+
* @GLINT_FEATURE_DIAGNOSTICS_LANGUAGE_SERVER_GTS_COMPILER_ERRORS
|
|
10
|
+
*/
|
|
11
|
+
export function create() {
|
|
12
|
+
return {
|
|
13
|
+
name: 'g-compiler-errors',
|
|
14
|
+
capabilities: {
|
|
15
|
+
diagnosticProvider: {
|
|
16
|
+
interFileDependencies: false,
|
|
17
|
+
workspaceDiagnostics: false,
|
|
18
|
+
},
|
|
19
|
+
},
|
|
20
|
+
create(context) {
|
|
21
|
+
return {
|
|
22
|
+
provideDiagnostics(document) {
|
|
23
|
+
// `gts` is the ID of the root virtual code within the virtual/embedded code tree of our GtsVirtualCode.
|
|
24
|
+
// It is the untransformed .gts file; we use this file to generate diagnostics for
|
|
25
|
+
// `<template>` tag compiler errors because the diagnostic regions within the errors
|
|
26
|
+
// we get back from the compiler are already relative to the root/outer .gts file
|
|
27
|
+
// rather than relative to start of the template tag.
|
|
28
|
+
const info = getEmbeddedInfo(context, document, 'gts');
|
|
29
|
+
if (!info) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
const virtualCode = info.root;
|
|
33
|
+
const transformedModule = virtualCode.transformedModule;
|
|
34
|
+
if (!transformedModule) {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
const parseErrors = [];
|
|
38
|
+
for (const error of transformedModule.errors) {
|
|
39
|
+
const start = document.positionAt(error.location.start);
|
|
40
|
+
const end = document.positionAt(error.location.end);
|
|
41
|
+
parseErrors.push({
|
|
42
|
+
range: {
|
|
43
|
+
start: start,
|
|
44
|
+
end: end,
|
|
45
|
+
},
|
|
46
|
+
severity: 1,
|
|
47
|
+
code: 9999,
|
|
48
|
+
source: 'glint',
|
|
49
|
+
message: error.message,
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
return parseErrors;
|
|
53
|
+
},
|
|
54
|
+
};
|
|
55
|
+
},
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=g-compiler-errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"g-compiler-errors.js","sourceRoot":"","sources":["../../src/plugins/g-compiler-errors.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C;;;;;;;;GAQG;AACH,MAAM,UAAU,MAAM;IACpB,OAAO;QACL,IAAI,EAAE,mBAAmB;QACzB,YAAY,EAAE;YACZ,kBAAkB,EAAE;gBAClB,qBAAqB,EAAE,KAAK;gBAC5B,oBAAoB,EAAE,KAAK;aAC5B;SACF;QACD,MAAM,CAAC,OAAO;YACZ,OAAO;gBACL,kBAAkB,CAAC,QAAQ;oBACzB,wGAAwG;oBACxG,kFAAkF;oBAClF,oFAAoF;oBACpF,iFAAiF;oBACjF,qDAAqD;oBACrD,MAAM,IAAI,GAAG,eAAe,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;oBAEvD,IAAI,CAAC,IAAI,EAAE,CAAC;wBACV,OAAO;oBACT,CAAC;oBAED,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC;oBAE9B,MAAM,iBAAiB,GAAG,WAAW,CAAC,iBAAiB,CAAC;oBACxD,IAAI,CAAC,iBAAiB,EAAE,CAAC;wBACvB,OAAO;oBACT,CAAC;oBAED,MAAM,WAAW,GAAwB,EAAE,CAAC;oBAE5C,KAAK,MAAM,KAAK,IAAI,iBAAiB,CAAC,MAAM,EAAE,CAAC;wBAC7C,MAAM,KAAK,GAAG,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;wBACxD,MAAM,GAAG,GAAG,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;wBAEpD,WAAW,CAAC,IAAI,CAAC;4BACf,KAAK,EAAE;gCACL,KAAK,EAAE,KAAK;gCACZ,GAAG,EAAE,GAAG;6BACT;4BACD,QAAQ,EAAE,CAAkD;4BAC5D,IAAI,EAAE,IAAI;4BACV,MAAM,EAAE,OAAO;4BACf,OAAO,EAAE,KAAK,CAAC,OAAO;yBACvB,CAAC,CAAC;oBACL,CAAC;oBAED,OAAO,WAAW,CAAC;gBACrB,CAAC;aACF,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { LanguageServicePlugin } from '@volar/language-service';
|
|
2
|
+
/**
|
|
3
|
+
* Provides symbols for `<template>` tags within .gts/.gjs files.
|
|
4
|
+
* This among other things faciliates code folding of the `<template>` region.
|
|
5
|
+
*
|
|
6
|
+
* Note that this ONLY provides symbols for the `<template>` tag and none of the
|
|
7
|
+
* contents of the template tag. Symbols inside or outside the template tag are actually
|
|
8
|
+
* generated by the syntactic TS LanguageServicePlugin (search `createTypeScriptSyntacticPlugin`).
|
|
9
|
+
*/
|
|
10
|
+
export declare function create(): LanguageServicePlugin;
|
|
11
|
+
//# sourceMappingURL=g-template-tag-symbols.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"g-template-tag-symbols.d.ts","sourceRoot":"","sources":["../../src/plugins/g-template-tag-symbols.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAIrE;;;;;;;GAOG;AACH,wBAAgB,MAAM,IAAI,qBAAqB,CAyC9C"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { getEmbeddedInfo } from './utils.js';
|
|
2
|
+
/**
|
|
3
|
+
* Provides symbols for `<template>` tags within .gts/.gjs files.
|
|
4
|
+
* This among other things faciliates code folding of the `<template>` region.
|
|
5
|
+
*
|
|
6
|
+
* Note that this ONLY provides symbols for the `<template>` tag and none of the
|
|
7
|
+
* contents of the template tag. Symbols inside or outside the template tag are actually
|
|
8
|
+
* generated by the syntactic TS LanguageServicePlugin (search `createTypeScriptSyntacticPlugin`).
|
|
9
|
+
*/
|
|
10
|
+
export function create() {
|
|
11
|
+
return {
|
|
12
|
+
name: 'g-template-symbols',
|
|
13
|
+
capabilities: {
|
|
14
|
+
documentSymbolProvider: true,
|
|
15
|
+
},
|
|
16
|
+
create(context) {
|
|
17
|
+
return {
|
|
18
|
+
provideDocumentSymbols(document) {
|
|
19
|
+
const virtualCode = getEmbeddedInfo(context, document, 'gts')?.root;
|
|
20
|
+
if (!virtualCode) {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
const result = [];
|
|
24
|
+
const { transformedModule } = virtualCode;
|
|
25
|
+
if (transformedModule) {
|
|
26
|
+
const templateSymbols = transformedModule.templateSymbols();
|
|
27
|
+
for (const templateSymbol of templateSymbols) {
|
|
28
|
+
result.push({
|
|
29
|
+
name: 'template',
|
|
30
|
+
kind: 2,
|
|
31
|
+
range: {
|
|
32
|
+
start: document.positionAt(templateSymbol.start),
|
|
33
|
+
end: document.positionAt(templateSymbol.end),
|
|
34
|
+
},
|
|
35
|
+
selectionRange: {
|
|
36
|
+
start: document.positionAt(templateSymbol.start),
|
|
37
|
+
end: document.positionAt(templateSymbol.startTagEnd),
|
|
38
|
+
},
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return result;
|
|
43
|
+
},
|
|
44
|
+
};
|
|
45
|
+
},
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=g-template-tag-symbols.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"g-template-tag-symbols.js","sourceRoot":"","sources":["../../src/plugins/g-template-tag-symbols.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C;;;;;;;GAOG;AACH,MAAM,UAAU,MAAM;IACpB,OAAO;QACL,IAAI,EAAE,oBAAoB;QAC1B,YAAY,EAAE;YACZ,sBAAsB,EAAE,IAAI;SAC7B;QACD,MAAM,CAAC,OAAO;YACZ,OAAO;gBACL,sBAAsB,CAAC,QAAQ;oBAC7B,MAAM,WAAW,GAAG,eAAe,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC;oBAEpE,IAAI,CAAC,WAAW,EAAE,CAAC;wBACjB,OAAO;oBACT,CAAC;oBAED,MAAM,MAAM,GAA4B,EAAE,CAAC;oBAC3C,MAAM,EAAE,iBAAiB,EAAE,GAAG,WAAW,CAAC;oBAE1C,IAAI,iBAAiB,EAAE,CAAC;wBACtB,MAAM,eAAe,GAAG,iBAAiB,CAAC,eAAe,EAAE,CAAC;wBAC5D,KAAK,MAAM,cAAc,IAAI,eAAe,EAAE,CAAC;4BAC7C,MAAM,CAAC,IAAI,CAAC;gCACV,IAAI,EAAE,UAAU;gCAChB,IAAI,EAAE,CAA2C;gCACjD,KAAK,EAAE;oCACL,KAAK,EAAE,QAAQ,CAAC,UAAU,CAAC,cAAc,CAAC,KAAK,CAAC;oCAChD,GAAG,EAAE,QAAQ,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC;iCAC7C;gCACD,cAAc,EAAE;oCACd,KAAK,EAAE,QAAQ,CAAC,UAAU,CAAC,cAAc,CAAC,KAAK,CAAC;oCAChD,GAAG,EAAE,QAAQ,CAAC,UAAU,CAAC,cAAc,CAAC,WAAW,CAAC;iCACrD;6BACF,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;oBAED,OAAO,MAAM,CAAC;gBAChB,CAAC;aACF,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { type LanguageServiceContext, type SourceScript, type TextDocument, type VirtualCode } from '@volar/language-service';
|
|
2
|
+
import { URI } from 'vscode-uri';
|
|
3
|
+
import { VirtualGtsCode } from '../volar/gts-virtual-code.js';
|
|
4
|
+
type EmbeddedInfo = {
|
|
5
|
+
sourceScript: Required<SourceScript<URI>>;
|
|
6
|
+
virtualCode: VirtualCode;
|
|
7
|
+
root: VirtualGtsCode;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Helper function that accepts a document URI and, if it matches the format
|
|
11
|
+
* of Volar's special URI format for representing embedded codes within a virtual code,
|
|
12
|
+
* will look up and return the embedded code and its root VirtualGtsCode.
|
|
13
|
+
*
|
|
14
|
+
* A example Volar embedded document URI would be something like:
|
|
15
|
+
*
|
|
16
|
+
* volar-embedded-content://gts/file%253A%252F%252F%252FUsers%252Fmachty%252Fcode%252Fglint%252Ftest-packages%252Fts-template-imports-app%252Fsrc%252Fempty-fixture.gts
|
|
17
|
+
*
|
|
18
|
+
* Note that the hostname/authority part of the URI is the embedded code ID, e.g. `gts`. These correspond
|
|
19
|
+
* to the IDs we assign to parsed embedded virtual codes contained within the root virtual code,
|
|
20
|
+
* e.g. `ts` corresponds to the TypeScript representation of .gts files where all `<template>` tags
|
|
21
|
+
* have been converted to type-checkable TS.
|
|
22
|
+
*/
|
|
23
|
+
export declare function getEmbeddedInfo(context: LanguageServiceContext, document: TextDocument, desiredEmbeddedCodeId?: string | ((id: string) => boolean), desiredDocumentLanguageId?: string | ((id: string) => boolean)): EmbeddedInfo | undefined;
|
|
24
|
+
export {};
|
|
25
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/plugins/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,sBAAsB,EAC3B,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,WAAW,EACjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D,KAAK,YAAY,GAAG;IAClB,YAAY,EAAE,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1C,WAAW,EAAE,WAAW,CAAC;IACzB,IAAI,EAAE,cAAc,CAAC;CACtB,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,sBAAsB,EAC/B,QAAQ,EAAE,YAAY,EACtB,qBAAqB,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,EAC1D,yBAAyB,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,GAC7D,YAAY,GAAG,SAAS,CAiD1B"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
// based on https://github.com/vuejs/language-tools/blob/master/packages/language-service/lib/utils.ts
|
|
2
|
+
import { URI } from 'vscode-uri';
|
|
3
|
+
import { VirtualGtsCode } from '../volar/gts-virtual-code.js';
|
|
4
|
+
/**
|
|
5
|
+
* Helper function that accepts a document URI and, if it matches the format
|
|
6
|
+
* of Volar's special URI format for representing embedded codes within a virtual code,
|
|
7
|
+
* will look up and return the embedded code and its root VirtualGtsCode.
|
|
8
|
+
*
|
|
9
|
+
* A example Volar embedded document URI would be something like:
|
|
10
|
+
*
|
|
11
|
+
* volar-embedded-content://gts/file%253A%252F%252F%252FUsers%252Fmachty%252Fcode%252Fglint%252Ftest-packages%252Fts-template-imports-app%252Fsrc%252Fempty-fixture.gts
|
|
12
|
+
*
|
|
13
|
+
* Note that the hostname/authority part of the URI is the embedded code ID, e.g. `gts`. These correspond
|
|
14
|
+
* to the IDs we assign to parsed embedded virtual codes contained within the root virtual code,
|
|
15
|
+
* e.g. `ts` corresponds to the TypeScript representation of .gts files where all `<template>` tags
|
|
16
|
+
* have been converted to type-checkable TS.
|
|
17
|
+
*/
|
|
18
|
+
export function getEmbeddedInfo(context, document, desiredEmbeddedCodeId, desiredDocumentLanguageId) {
|
|
19
|
+
const uri = URI.parse(document.uri);
|
|
20
|
+
const decoded = context.decodeEmbeddedDocumentUri(uri);
|
|
21
|
+
if (!decoded) {
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
const [documentUri, embeddedCodeId] = decoded;
|
|
25
|
+
if (desiredEmbeddedCodeId) {
|
|
26
|
+
if (typeof desiredEmbeddedCodeId === 'string') {
|
|
27
|
+
if (embeddedCodeId !== desiredEmbeddedCodeId) {
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
else if (!desiredEmbeddedCodeId(embeddedCodeId)) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
if (desiredDocumentLanguageId) {
|
|
36
|
+
if (typeof desiredDocumentLanguageId === 'string') {
|
|
37
|
+
if (document.languageId !== desiredDocumentLanguageId) {
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
else if (!desiredDocumentLanguageId(document.languageId)) {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
const sourceScript = context.language.scripts.get(documentUri);
|
|
46
|
+
if (!sourceScript?.generated) {
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
const virtualCode = sourceScript.generated.embeddedCodes.get(embeddedCodeId);
|
|
50
|
+
if (!virtualCode) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
const root = sourceScript.generated.root;
|
|
54
|
+
if (!(root instanceof VirtualGtsCode)) {
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
return {
|
|
58
|
+
sourceScript: sourceScript,
|
|
59
|
+
virtualCode,
|
|
60
|
+
root,
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/plugins/utils.ts"],"names":[],"mappings":"AAAA,sGAAsG;AAQtG,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAQ9D;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,eAAe,CAC7B,OAA+B,EAC/B,QAAsB,EACtB,qBAA0D,EAC1D,yBAA8D;IAE9D,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACpC,MAAM,OAAO,GAAG,OAAO,CAAC,yBAAyB,CAAC,GAAG,CAAC,CAAC;IACvD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;IACT,CAAC;IAED,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,OAAO,CAAC;IAE9C,IAAI,qBAAqB,EAAE,CAAC;QAC1B,IAAI,OAAO,qBAAqB,KAAK,QAAQ,EAAE,CAAC;YAC9C,IAAI,cAAc,KAAK,qBAAqB,EAAE,CAAC;gBAC7C,OAAO;YACT,CAAC;QACH,CAAC;aAAM,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,EAAE,CAAC;YAClD,OAAO;QACT,CAAC;IACH,CAAC;IAED,IAAI,yBAAyB,EAAE,CAAC;QAC9B,IAAI,OAAO,yBAAyB,KAAK,QAAQ,EAAE,CAAC;YAClD,IAAI,QAAQ,CAAC,UAAU,KAAK,yBAAyB,EAAE,CAAC;gBACtD,OAAO;YACT,CAAC;QACH,CAAC;aAAM,IAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3D,OAAO;QACT,CAAC;IACH,CAAC;IAED,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC/D,IAAI,CAAC,YAAY,EAAE,SAAS,EAAE,CAAC;QAC7B,OAAO;IACT,CAAC;IAED,MAAM,WAAW,GAAG,YAAY,CAAC,SAAS,CAAC,aAAa,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC7E,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO;IACT,CAAC;IAED,MAAM,IAAI,GAAG,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC;IACzC,IAAI,CAAC,CAAC,IAAI,YAAY,cAAc,CAAC,EAAE,CAAC;QACtC,OAAO;IACT,CAAC;IAED,OAAO;QACL,YAAY,EAAE,YAA2C;QACzD,WAAW;QACX,IAAI;KACL,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import TransformedModule from '../template/transformed-module.js';
|
|
2
|
+
import { Diagnostic } from './index.js';
|
|
3
|
+
export declare function augmentDiagnostics<T extends Diagnostic>(transformedModule: TransformedModule, diagnostics: T[]): T[];
|
|
4
|
+
//# sourceMappingURL=augmentation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"augmentation.d.ts","sourceRoot":"","sources":["../../../src/transform/diagnostics/augmentation.ts"],"names":[],"mappings":"AAEA,OAAO,iBAAiB,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,UAAU,EACrD,iBAAiB,EAAE,iBAAiB,EACpC,WAAW,EAAE,CAAC,EAAE,GACf,CAAC,EAAE,CA8BL"}
|