@esportsplus/template 0.31.3 → 0.31.4
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.
|
@@ -12,7 +12,8 @@ declare const getNames: () => {
|
|
|
12
12
|
event: string;
|
|
13
13
|
slot: string;
|
|
14
14
|
};
|
|
15
|
+
declare const initNamespace: () => void;
|
|
15
16
|
declare const needsArraySlotImport: (sourceFile: ts.SourceFile) => boolean;
|
|
16
17
|
declare const setTypeChecker: (checker: ts.TypeChecker | undefined) => void;
|
|
17
|
-
export { addArraySlotImport, generateCode, generateReactiveInlining, getNames, needsArraySlotImport, setTypeChecker };
|
|
18
|
+
export { addArraySlotImport, generateCode, generateReactiveInlining, getNames, initNamespace, needsArraySlotImport, setTypeChecker };
|
|
18
19
|
export type { CodegenResult };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { applyReplacementsReverse, uid } from '@esportsplus/typescript/transformer';
|
|
2
2
|
import { analyzeExpression, generateAttributeBinding, generateSpreadBindings } from './type-analyzer.js';
|
|
3
3
|
import { ts } from '@esportsplus/typescript';
|
|
4
4
|
import parser from './parser.js';
|
|
@@ -198,15 +198,12 @@ function rewriteExpression(expr, sourceFile) {
|
|
|
198
198
|
return applyReplacementsReverse(expr.getText(sourceFile), replacements);
|
|
199
199
|
}
|
|
200
200
|
const addArraySlotImport = (code) => {
|
|
201
|
-
return
|
|
201
|
+
return `import * as ${ns} from '@esportsplus/template';\n\n` + code;
|
|
202
202
|
};
|
|
203
203
|
const generateCode = (templates, originalCode, sourceFile) => {
|
|
204
204
|
if (templates.length === 0) {
|
|
205
205
|
return { changed: false, code: originalCode };
|
|
206
206
|
}
|
|
207
|
-
hoistedFactories.clear();
|
|
208
|
-
htmlToTemplateId.clear();
|
|
209
|
-
ns = uid('t');
|
|
210
207
|
let rootTemplates = templates.filter(t => !isNestedTemplate(t, templates));
|
|
211
208
|
if (rootTemplates.length === 0) {
|
|
212
209
|
return { changed: false, code: originalCode };
|
|
@@ -266,10 +263,15 @@ const getNames = () => ({
|
|
|
266
263
|
event: `${ns}.event`,
|
|
267
264
|
slot: `${ns}.slot`
|
|
268
265
|
});
|
|
266
|
+
const initNamespace = () => {
|
|
267
|
+
hoistedFactories.clear();
|
|
268
|
+
htmlToTemplateId.clear();
|
|
269
|
+
ns = uid('t');
|
|
270
|
+
};
|
|
269
271
|
const needsArraySlotImport = (sourceFile) => {
|
|
270
272
|
return hasArraySlotUsage(sourceFile) && !hasArraySlotImport(sourceFile);
|
|
271
273
|
};
|
|
272
274
|
const setTypeChecker = (checker) => {
|
|
273
275
|
currentChecker = checker;
|
|
274
276
|
};
|
|
275
|
-
export { addArraySlotImport, generateCode, generateReactiveInlining, getNames, needsArraySlotImport, setTypeChecker };
|
|
277
|
+
export { addArraySlotImport, generateCode, generateReactiveInlining, getNames, initNamespace, needsArraySlotImport, setTypeChecker };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { mightNeedTransform } from '@esportsplus/typescript/transformer';
|
|
2
|
-
import { addArraySlotImport, generateCode, generateReactiveInlining, needsArraySlotImport, setTypeChecker } from './codegen.js';
|
|
2
|
+
import { addArraySlotImport, generateCode, generateReactiveInlining, initNamespace, needsArraySlotImport, setTypeChecker } from './codegen.js';
|
|
3
3
|
import { findHtmlTemplates, findReactiveCalls } from './ts-parser.js';
|
|
4
4
|
import { ts } from '@esportsplus/typescript';
|
|
5
5
|
const PATTERNS = ['html`', 'html.reactive'];
|
|
@@ -23,6 +23,7 @@ function createTransformer(program) {
|
|
|
23
23
|
}
|
|
24
24
|
function transformCode(code, sourceFile) {
|
|
25
25
|
let changed = false, result = code;
|
|
26
|
+
initNamespace();
|
|
26
27
|
let reactiveCalls = findReactiveCalls(sourceFile);
|
|
27
28
|
if (reactiveCalls.length > 0) {
|
|
28
29
|
result = generateReactiveInlining(reactiveCalls, result, sourceFile);
|
package/package.json
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { applyReplacementsReverse, uid } from '@esportsplus/typescript/transformer';
|
|
2
2
|
import type { Replacement } from '@esportsplus/typescript/transformer';
|
|
3
3
|
import type { ReactiveCallInfo, TemplateInfo } from './ts-parser';
|
|
4
4
|
import { analyzeExpression, generateAttributeBinding, generateSpreadBindings } from './type-analyzer';
|
|
@@ -344,7 +344,7 @@ function rewriteExpression(expr: ts.Expression, sourceFile: ts.SourceFile): stri
|
|
|
344
344
|
|
|
345
345
|
|
|
346
346
|
const addArraySlotImport = (code: string): string => {
|
|
347
|
-
return
|
|
347
|
+
return `import * as ${ns} from '@esportsplus/template';\n\n` + code;
|
|
348
348
|
};
|
|
349
349
|
|
|
350
350
|
const generateCode = (templates: TemplateInfo[], originalCode: string, sourceFile: ts.SourceFile): CodegenResult => {
|
|
@@ -352,10 +352,6 @@ const generateCode = (templates: TemplateInfo[], originalCode: string, sourceFil
|
|
|
352
352
|
return { changed: false, code: originalCode };
|
|
353
353
|
}
|
|
354
354
|
|
|
355
|
-
hoistedFactories.clear();
|
|
356
|
-
htmlToTemplateId.clear();
|
|
357
|
-
ns = uid('t');
|
|
358
|
-
|
|
359
355
|
let rootTemplates = templates.filter(t => !isNestedTemplate(t, templates));
|
|
360
356
|
|
|
361
357
|
if (rootTemplates.length === 0) {
|
|
@@ -447,6 +443,12 @@ const getNames = () => ({
|
|
|
447
443
|
slot: `${ns}.slot`
|
|
448
444
|
});
|
|
449
445
|
|
|
446
|
+
const initNamespace = (): void => {
|
|
447
|
+
hoistedFactories.clear();
|
|
448
|
+
htmlToTemplateId.clear();
|
|
449
|
+
ns = uid('t');
|
|
450
|
+
};
|
|
451
|
+
|
|
450
452
|
const needsArraySlotImport = (sourceFile: ts.SourceFile): boolean => {
|
|
451
453
|
return hasArraySlotUsage(sourceFile) && !hasArraySlotImport(sourceFile);
|
|
452
454
|
};
|
|
@@ -456,5 +458,5 @@ const setTypeChecker = (checker: ts.TypeChecker | undefined): void => {
|
|
|
456
458
|
};
|
|
457
459
|
|
|
458
460
|
|
|
459
|
-
export { addArraySlotImport, generateCode, generateReactiveInlining, getNames, needsArraySlotImport, setTypeChecker };
|
|
461
|
+
export { addArraySlotImport, generateCode, generateReactiveInlining, getNames, initNamespace, needsArraySlotImport, setTypeChecker };
|
|
460
462
|
export type { CodegenResult };
|
package/src/transformer/index.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { mightNeedTransform } from '@esportsplus/typescript/transformer';
|
|
2
|
-
import { addArraySlotImport, generateCode, generateReactiveInlining, needsArraySlotImport, setTypeChecker } from './codegen';
|
|
2
|
+
import { addArraySlotImport, generateCode, generateReactiveInlining, initNamespace, needsArraySlotImport, setTypeChecker } from './codegen';
|
|
3
3
|
import { findHtmlTemplates, findReactiveCalls } from './ts-parser';
|
|
4
4
|
import { ts } from '@esportsplus/typescript';
|
|
5
5
|
|
|
@@ -47,6 +47,8 @@ function transformCode(code: string, sourceFile: ts.SourceFile): TransformResult
|
|
|
47
47
|
let changed = false,
|
|
48
48
|
result = code;
|
|
49
49
|
|
|
50
|
+
initNamespace();
|
|
51
|
+
|
|
50
52
|
let reactiveCalls = findReactiveCalls(sourceFile);
|
|
51
53
|
|
|
52
54
|
if (reactiveCalls.length > 0) {
|