@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 { addImport, applyReplacementsReverse, uid } from '@esportsplus/typescript/transformer';
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 addImport(code, '@esportsplus/template', ['ArraySlot']);
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
@@ -40,7 +40,7 @@
40
40
  },
41
41
  "type": "module",
42
42
  "types": "./build/index.d.ts",
43
- "version": "0.31.3",
43
+ "version": "0.31.4",
44
44
  "scripts": {
45
45
  "build": "tsc",
46
46
  "build:test": "vite build --config test/vite.config.ts",
@@ -1,4 +1,4 @@
1
- import { addImport, applyReplacementsReverse, uid } from '@esportsplus/typescript/transformer';
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 addImport(code, '@esportsplus/template', ['ArraySlot']);
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 };
@@ -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) {