@komaci/esm-generator 242.0.0 → 242.1.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.
Files changed (41) hide show
  1. package/build/__tests__/adgAstGeneration.spec.d.ts +2 -0
  2. package/build/__tests__/adgAstGeneration.spec.js +31 -0
  3. package/build/__tests__/compositionAstGeneration.spec.d.ts +2 -0
  4. package/build/__tests__/compositionAstGeneration.spec.js +394 -0
  5. package/build/__tests__/functionAstGeneration.spec.d.ts +2 -0
  6. package/build/__tests__/functionAstGeneration.spec.js +412 -0
  7. package/build/__tests__/general-komaci-docs/template-component/source.js +3 -3
  8. package/build/__tests__/genericAstGeneration.spec.d.ts +2 -0
  9. package/build/__tests__/genericAstGeneration.spec.js +586 -0
  10. package/build/__tests__/index.spec.js +8 -8
  11. package/build/__tests__/komaci-ast-unit.spec.js +240 -448
  12. package/build/__tests__/komaci-bundle-module.fixtures.spec.js +1 -0
  13. package/build/__tests__/komaci-script-module.fixtures.spec.js +5 -1
  14. package/build/__tests__/komaci-template-module.fixtures.spec.js +2 -1
  15. package/build/componentAstProcessing.d.ts +34 -0
  16. package/build/componentAstProcessing.js +105 -0
  17. package/build/compositionAstGeneration.d.ts +76 -0
  18. package/build/compositionAstGeneration.js +299 -0
  19. package/build/functionAstGeneration.d.ts +81 -0
  20. package/build/functionAstGeneration.js +337 -0
  21. package/build/genericAstGeneration.d.ts +107 -0
  22. package/build/genericAstGeneration.js +600 -0
  23. package/build/index.d.ts +2 -3
  24. package/build/index.js +19 -36
  25. package/build/types.d.ts +13 -2
  26. package/build/types.js +69 -1
  27. package/package.json +4 -4
  28. package/build/__tests__/modGenScript.spec.d.ts +0 -2
  29. package/build/__tests__/modGenScript.spec.js +0 -110
  30. package/build/__tests__/modGenTemplate.spec.d.ts +0 -2
  31. package/build/__tests__/modGenTemplate.spec.js +0 -196
  32. package/build/__tests__/shared.spec.d.ts +0 -2
  33. package/build/__tests__/shared.spec.js +0 -66
  34. package/build/__tests__/templateStrings.spec.d.ts +0 -2
  35. package/build/__tests__/templateStrings.spec.js +0 -130
  36. package/build/modGenScript.d.ts +0 -38
  37. package/build/modGenScript.js +0 -1031
  38. package/build/modGenTemplate.d.ts +0 -37
  39. package/build/modGenTemplate.js +0 -406
  40. package/build/shared.d.ts +0 -149
  41. package/build/shared.js +0 -480
@@ -1,130 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const path_1 = require("path");
4
- const fs_1 = require("fs");
5
- const shared_1 = require("../shared");
6
- const common_shared_1 = require("@komaci/common-shared");
7
- const types_1 = require("@babel/types");
8
- describe('updateKomaciDocumentWithValidTemplatedStrings', () => {
9
- it('should add info about templates to the functions array of the default adg', () => {
10
- const baseFilesPath = (0, path_1.join)(__dirname, 'general-komaci-docs/assorted-template-strings');
11
- const komaciDoc = JSON.parse((0, fs_1.readFileSync)((0, path_1.join)(baseFilesPath, 'script-komaci-doc.json'), {
12
- encoding: 'utf-8',
13
- }));
14
- const src = (0, fs_1.readFileSync)((0, path_1.join)(baseFilesPath, 'source.js'), {
15
- encoding: 'utf-8',
16
- });
17
- const ast = (0, common_shared_1.generateAstFromSrcCode)(src);
18
- const { templateStrings } = (0, common_shared_1.getPropertyMetadataFromAst)(ast);
19
- const templateStringsInfo = [
20
- {
21
- template: templateStrings[0],
22
- generatedName: 't0',
23
- memberUsage: ['basicInit'],
24
- },
25
- {
26
- template: templateStrings[1],
27
- generatedName: 't1',
28
- memberUsage: [],
29
- },
30
- ];
31
- (0, common_shared_1.updateKomaciDocumentWithValidTemplatedStrings)(komaciDoc, templateStringsInfo);
32
- expect(komaciDoc.adgs?.[0].functions).toHaveLength(3);
33
- expect(komaciDoc.adgs?.[0].functions?.[1].type).toBe(common_shared_1.TEMPLATED_STRING_FUNCTION);
34
- expect(komaciDoc.adgs?.[0].functions?.[1].reference.type).toBe('InternalReference');
35
- expect(komaciDoc.adgs?.[0].functions?.[1].reference.value).toBe('t0');
36
- expect(komaciDoc.adgs?.[0].functions?.[2].type).toBe(common_shared_1.TEMPLATED_STRING_FUNCTION);
37
- expect(komaciDoc.adgs?.[0].functions?.[2].reference.type).toBe('InternalReference');
38
- expect(komaciDoc.adgs?.[0].functions?.[2].reference.value).toBe('t1');
39
- });
40
- });
41
- describe('hoistTemplateStrings', () => {
42
- const baseFilesPath = (0, path_1.join)(__dirname, 'general-komaci-docs/assorted-template-strings');
43
- const src = (0, fs_1.readFileSync)((0, path_1.join)(baseFilesPath, 'source.js'), {
44
- encoding: 'utf-8',
45
- });
46
- const ast = (0, common_shared_1.generateAstFromSrcCode)(src);
47
- const { templateStrings } = (0, common_shared_1.getPropertyMetadataFromAst)(ast);
48
- const templateStringsInfo = [
49
- {
50
- template: templateStrings[0],
51
- generatedName: 't0',
52
- memberUsage: ['basicInit'],
53
- },
54
- {
55
- template: templateStrings[1],
56
- generatedName: 't1',
57
- memberUsage: [],
58
- },
59
- ];
60
- const emptyProgram = (0, types_1.file)((0, types_1.program)([]));
61
- const importReferencesMap = {
62
- '1/names/0': {
63
- localName: (0, types_1.identifier)('i1'),
64
- resourceName: 'lightning/graphql',
65
- importDeclaration: (0, types_1.importDeclaration)([(0, types_1.importSpecifier)((0, types_1.identifier)('i1'), (0, types_1.identifier)('gql'))], (0, types_1.stringLiteral)('lightning/graphql')),
66
- importSpecifier: (0, types_1.importSpecifier)((0, types_1.identifier)('i1'), (0, types_1.identifier)('gql')),
67
- exportName: undefined,
68
- importUsages: new Set(),
69
- },
70
- '2/names/0': {
71
- localName: (0, types_1.identifier)('i2'),
72
- resourceName: 'snoop',
73
- importDeclaration: (0, types_1.importDeclaration)([(0, types_1.importSpecifier)((0, types_1.identifier)('i2'), (0, types_1.identifier)('sneaky'))], (0, types_1.stringLiteral)('snoop')),
74
- importSpecifier: (0, types_1.importSpecifier)((0, types_1.identifier)('i2'), (0, types_1.identifier)('sneaky')),
75
- exportName: undefined,
76
- importUsages: new Set(),
77
- },
78
- };
79
- const definedImports = new Map();
80
- definedImports.set('gql', {
81
- isDefault: false,
82
- isNamespaceSpecifier: false,
83
- isSupported: true,
84
- namespace: 'lightning/graphql',
85
- identifierName: 'gql',
86
- });
87
- definedImports.set('sneaky', {
88
- isDefault: false,
89
- isNamespaceSpecifier: false,
90
- isSupported: true,
91
- namespace: 'snoop',
92
- identifierName: 'sneaky',
93
- });
94
- (0, shared_1.hoistTemplateStrings)(emptyProgram, importReferencesMap, definedImports, templateStringsInfo);
95
- it('can compose a template string for a public api prop', () => {
96
- const firstFunction = emptyProgram.program.body[0];
97
- expect(firstFunction.type).toBe('FunctionDeclaration');
98
- expect(firstFunction.id.name).toBe('t0');
99
- expect(firstFunction.body.body).toHaveLength(1);
100
- expect(firstFunction.body.body[0].type).toBe('ReturnStatement');
101
- expect(firstFunction.body.body[0]
102
- .argument?.type).toBe('TemplateLiteral');
103
- expect(firstFunction.body.body[0]
104
- .argument.expressions).toHaveLength(2);
105
- expect(firstFunction.body.body[0]
106
- .argument.expressions[0].type).toBe('MemberExpression');
107
- expect(firstFunction.body
108
- .body[0].argument.expressions[0].object.name).toBe('props');
109
- expect(firstFunction.body
110
- .body[0].argument.expressions[0].property.name).toBe('basicInit');
111
- expect(firstFunction.body.body[0]
112
- .argument.expressions[1].type).toBe('Identifier');
113
- expect(firstFunction.body
114
- .body[0].argument.expressions[1].name).toBe('i2');
115
- });
116
- it('can compose a template string for an internal prop', () => {
117
- const firstFunction = emptyProgram.program.body[1];
118
- expect(firstFunction.type).toBe('FunctionDeclaration');
119
- expect(firstFunction.id.name).toBe('t1');
120
- expect(firstFunction.body.body).toHaveLength(1);
121
- expect(firstFunction.body.body[0].type).toBe('ReturnStatement');
122
- expect(firstFunction.body.body[0]
123
- .argument?.type).toBe('TaggedTemplateExpression');
124
- expect(firstFunction.body.body[0]
125
- .argument.quasi.expressions).toHaveLength(1);
126
- expect(firstFunction.body
127
- .body[0].argument.tag.name).toBe('i1');
128
- });
129
- });
130
- //# sourceMappingURL=templateStrings.spec.js.map
@@ -1,38 +0,0 @@
1
- import * as t from '@babel/types';
2
- import { GeneratorState } from './types';
3
- import { KomaciDocument } from '@komaci/types';
4
- import { ConsumedImports } from '@komaci/common-shared';
5
- /**
6
- * Generate the resolvable module for a single JS Script
7
- * @param {GeneratorState} generatorState the state of the ESM generator
8
- * @param {KomaciDocument} komaciDoc the KomaciDocument representation of the JS Script
9
- * @returns {File} babel/types File representation of the entire JS Script. In other works, the Abstract systax tree
10
- * of the generated resolvable module.
11
- */
12
- export declare function generateScriptModule(generatorState: GeneratorState, komaciDoc: KomaciDocument): t.File;
13
- /**
14
- * Given information about what imports a getter consumes, we check the komaci doc to make sure all the
15
- * import info is available
16
- * @param komaciScriptDoc The Komaci doc to process
17
- * @param consumedImports metadata about getter import consumption
18
- */
19
- export declare function updateImportsWithGetterConsumption(komaciScriptDoc: KomaciDocument, consumedImports: ConsumedImports): void;
20
- /**
21
- * Generates the resolvable runtime module for a script and template file.
22
- * @param {GeneratorState} generatorState the state of the ESM generator
23
- * @param {KomaciDocument} komaciScriptDoc the Komaci doc for the script file
24
- * @param {KomaciDocument} komaciTemplateDoc the Komaci doc for the template file
25
- * @returns babel/types File representing the generated, combined resolvable runtime module. In other words,
26
- * the Abstract Syntax Tree of the combined, resolvable module.
27
- */
28
- export declare function generateCombinedModule(generatorState: GeneratorState, komaciScriptDoc: KomaciDocument, komaciTemplateDoc: KomaciDocument): t.File;
29
- /**
30
- * A barebones resolvable module default export with a singular node describing the context of an error.
31
- *
32
- * We return this instead of a real resolvable module if something throws an error during resolvable module generation
33
- * @param generatorState The state of the generator for pass through to adgToExpression
34
- * @param error The error that was thrown
35
- * @returns A default export representing the error state for this resolvable module
36
- */
37
- export declare function produceErrorAdgFunction(generatorState: GeneratorState, error: Error): t.Program;
38
- //# sourceMappingURL=modGenScript.d.ts.map