@komaci/esm-generator 240.1.3

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 (111) hide show
  1. package/build/__tests__/compile-generated-module-fixtures.spec.d.ts +2 -0
  2. package/build/__tests__/compile-generated-module-fixtures.spec.js +45 -0
  3. package/build/__tests__/fixtures-combined-files/exclude-comps-unused-import-prop/actual.d.ts +5 -0
  4. package/build/__tests__/fixtures-combined-files/exclude-comps-unused-import-prop/actual.js +28 -0
  5. package/build/__tests__/fixtures-combined-files/exclude-partial-classProps-indirect-importRef-getter/actual.d.ts +28 -0
  6. package/build/__tests__/fixtures-combined-files/exclude-partial-classProps-indirect-importRef-getter/actual.js +144 -0
  7. package/build/__tests__/fixtures-combined-files/exclude-total-unused-import-getter-from-one/actual.d.ts +8 -0
  8. package/build/__tests__/fixtures-combined-files/exclude-total-unused-import-getter-from-one/actual.js +35 -0
  9. package/build/__tests__/fixtures-combined-files/exclude-total-unused-import-getter-from-two/actual.d.ts +9 -0
  10. package/build/__tests__/fixtures-combined-files/exclude-total-unused-import-getter-from-two/actual.js +39 -0
  11. package/build/__tests__/fixtures-combined-files/exclude-wire-unused-import-prop/actual.d.ts +6 -0
  12. package/build/__tests__/fixtures-combined-files/exclude-wire-unused-import-prop/actual.js +34 -0
  13. package/build/__tests__/fixtures-combined-files/image-type/actual.d.ts +12 -0
  14. package/build/__tests__/fixtures-combined-files/image-type/actual.js +41 -0
  15. package/build/__tests__/fixtures-combined-files/include-all-indirect-importRef-getter-complex/actual.d.ts +13 -0
  16. package/build/__tests__/fixtures-combined-files/include-all-indirect-importRef-getter-complex/actual.js +75 -0
  17. package/build/__tests__/fixtures-combined-files/include-class-prop-indirect-importRef-getter/actual.d.ts +17 -0
  18. package/build/__tests__/fixtures-combined-files/include-class-prop-indirect-importRef-getter/actual.js +99 -0
  19. package/build/__tests__/fixtures-combined-files/include-comps-used-import-prop/actual.d.ts +5 -0
  20. package/build/__tests__/fixtures-combined-files/include-comps-used-import-prop/actual.js +28 -0
  21. package/build/__tests__/fixtures-combined-files/include-template-strings/actual.d.ts +9 -0
  22. package/build/__tests__/fixtures-combined-files/include-template-strings/actual.js +41 -0
  23. package/build/__tests__/fixtures-combined-files/include-used-import-getter/actual.d.ts +8 -0
  24. package/build/__tests__/fixtures-combined-files/include-used-import-getter/actual.js +38 -0
  25. package/build/__tests__/fixtures-combined-files/include-wire-used-import-prop/actual.d.ts +6 -0
  26. package/build/__tests__/fixtures-combined-files/include-wire-used-import-prop/actual.js +34 -0
  27. package/build/__tests__/fixtures-combined-files/unsupported-wire-from-supported-namespace/actual.d.ts +5 -0
  28. package/build/__tests__/fixtures-combined-files/unsupported-wire-from-supported-namespace/actual.js +19 -0
  29. package/build/__tests__/fixtures-script-files/class-extends-multiple-with-separate-imports/actual.d.ts +8 -0
  30. package/build/__tests__/fixtures-script-files/class-extends-multiple-with-separate-imports/actual.js +17 -0
  31. package/build/__tests__/fixtures-script-files/class-extends-separate-imports/actual.d.ts +4 -0
  32. package/build/__tests__/fixtures-script-files/class-extends-separate-imports/actual.js +13 -0
  33. package/build/__tests__/fixtures-script-files/class-extends-separate-imports-alias/actual.d.ts +4 -0
  34. package/build/__tests__/fixtures-script-files/class-extends-separate-imports-alias/actual.js +10 -0
  35. package/build/__tests__/fixtures-script-files/class-props/actual.d.ts +25 -0
  36. package/build/__tests__/fixtures-script-files/class-props/actual.js +92 -0
  37. package/build/__tests__/fixtures-script-files/empty-class/actual.d.ts +3 -0
  38. package/build/__tests__/fixtures-script-files/empty-class/actual.js +7 -0
  39. package/build/__tests__/fixtures-script-files/empty-doc/actual.d.ts +1 -0
  40. package/build/__tests__/fixtures-script-files/empty-doc/actual.js +2 -0
  41. package/build/__tests__/fixtures-script-files/empty-wire/actual.d.ts +4 -0
  42. package/build/__tests__/fixtures-script-files/empty-wire/actual.js +16 -0
  43. package/build/__tests__/fixtures-script-files/exclude-wire-unused-import-prop/actual.d.ts +6 -0
  44. package/build/__tests__/fixtures-script-files/exclude-wire-unused-import-prop/actual.js +34 -0
  45. package/build/__tests__/fixtures-script-files/exports/actual.d.ts +21 -0
  46. package/build/__tests__/fixtures-script-files/exports/actual.js +63 -0
  47. package/build/__tests__/fixtures-script-files/imports/actual.d.ts +10 -0
  48. package/build/__tests__/fixtures-script-files/imports/actual.js +76 -0
  49. package/build/__tests__/fixtures-script-files/imports-namespaced/actual.d.ts +9 -0
  50. package/build/__tests__/fixtures-script-files/imports-namespaced/actual.js +59 -0
  51. package/build/__tests__/fixtures-script-files/include-wire-unused-import-prop/actual.d.ts +6 -0
  52. package/build/__tests__/fixtures-script-files/include-wire-unused-import-prop/actual.js +34 -0
  53. package/build/__tests__/fixtures-script-files/inheritance-imports-default/actual.d.ts +3 -0
  54. package/build/__tests__/fixtures-script-files/inheritance-imports-default/actual.js +10 -0
  55. package/build/__tests__/fixtures-script-files/inheritance-imports-local/actual.d.ts +8 -0
  56. package/build/__tests__/fixtures-script-files/inheritance-imports-local/actual.js +24 -0
  57. package/build/__tests__/fixtures-script-files/inheritance-imports-named/actual.d.ts +4 -0
  58. package/build/__tests__/fixtures-script-files/inheritance-imports-named/actual.js +17 -0
  59. package/build/__tests__/fixtures-script-files/inheritance-parent-unresolved/actual.d.ts +4 -0
  60. package/build/__tests__/fixtures-script-files/inheritance-parent-unresolved/actual.js +17 -0
  61. package/build/__tests__/fixtures-script-files/unsupported-wire-from-supported-namespace/actual.d.ts +5 -0
  62. package/build/__tests__/fixtures-script-files/unsupported-wire-from-supported-namespace/actual.js +19 -0
  63. package/build/__tests__/fixtures-script-files/wire-basic/actual.d.ts +7 -0
  64. package/build/__tests__/fixtures-script-files/wire-basic/actual.js +30 -0
  65. package/build/__tests__/fixtures-script-files/wire-functions/actual.d.ts +12 -0
  66. package/build/__tests__/fixtures-script-files/wire-functions/actual.js +46 -0
  67. package/build/__tests__/fixtures-script-files/wire-imports/actual.d.ts +10 -0
  68. package/build/__tests__/fixtures-script-files/wire-imports/actual.js +59 -0
  69. package/build/__tests__/fixtures-source-code/badImportRef.d.ts +4 -0
  70. package/build/__tests__/fixtures-source-code/badImportRef.js +21 -0
  71. package/build/__tests__/fixtures-source-code/generalMockSourceCode.d.ts +5 -0
  72. package/build/__tests__/fixtures-source-code/generalMockSourceCode.js +93 -0
  73. package/build/__tests__/general-komaci-docs/assorted-template-strings/source.d.ts +9 -0
  74. package/build/__tests__/general-komaci-docs/assorted-template-strings/source.js +41 -0
  75. package/build/__tests__/general-komaci-docs/getters-and-compositions-collisions/source.d.ts +6 -0
  76. package/build/__tests__/general-komaci-docs/getters-and-compositions-collisions/source.js +31 -0
  77. package/build/__tests__/general-komaci-docs/import-types/source.d.ts +18 -0
  78. package/build/__tests__/general-komaci-docs/import-types/source.js +104 -0
  79. package/build/__tests__/general-komaci-docs/import-types/validationStuff.d.ts +18 -0
  80. package/build/__tests__/general-komaci-docs/import-types/validationStuff.js +63 -0
  81. package/build/__tests__/general-komaci-docs/template-component/source.d.ts +8 -0
  82. package/build/__tests__/general-komaci-docs/template-component/source.js +34 -0
  83. package/build/__tests__/index.spec.d.ts +2 -0
  84. package/build/__tests__/index.spec.js +124 -0
  85. package/build/__tests__/komaci-ast-unit.spec.d.ts +2 -0
  86. package/build/__tests__/komaci-ast-unit.spec.js +628 -0
  87. package/build/__tests__/komaci-bundle-module.fixtures.spec.d.ts +2 -0
  88. package/build/__tests__/komaci-bundle-module.fixtures.spec.js +75 -0
  89. package/build/__tests__/komaci-script-module.fixtures.spec.d.ts +2 -0
  90. package/build/__tests__/komaci-script-module.fixtures.spec.js +66 -0
  91. package/build/__tests__/komaci-template-module.fixtures.spec.d.ts +2 -0
  92. package/build/__tests__/komaci-template-module.fixtures.spec.js +56 -0
  93. package/build/__tests__/modGenScript.spec.d.ts +2 -0
  94. package/build/__tests__/modGenScript.spec.js +110 -0
  95. package/build/__tests__/modGenTemplate.spec.d.ts +2 -0
  96. package/build/__tests__/modGenTemplate.spec.js +196 -0
  97. package/build/__tests__/shared.spec.d.ts +2 -0
  98. package/build/__tests__/shared.spec.js +62 -0
  99. package/build/__tests__/templateStrings.spec.d.ts +2 -0
  100. package/build/__tests__/templateStrings.spec.js +130 -0
  101. package/build/index.d.ts +4 -0
  102. package/build/index.js +130 -0
  103. package/build/modGenScript.d.ts +38 -0
  104. package/build/modGenScript.js +1027 -0
  105. package/build/modGenTemplate.d.ts +37 -0
  106. package/build/modGenTemplate.js +402 -0
  107. package/build/shared.d.ts +170 -0
  108. package/build/shared.js +588 -0
  109. package/build/types.d.ts +132 -0
  110. package/build/types.js +14 -0
  111. package/package.json +40 -0
@@ -0,0 +1,130 @@
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, shared_1.updateKomaciDocumentWithValidTemplatedStrings)(komaciDoc, templateStringsInfo);
32
+ expect(komaciDoc.adgs?.[0].functions).toHaveLength(3);
33
+ expect(komaciDoc.adgs?.[0].functions?.[1].type).toBe(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(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
@@ -0,0 +1,4 @@
1
+ import { GeneratorInput } from './types';
2
+ export { GeneratorInput } from './types';
3
+ export declare function generateKomaciModule(input: GeneratorInput): string;
4
+ //# sourceMappingURL=index.d.ts.map
package/build/index.js ADDED
@@ -0,0 +1,130 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ var __importDefault = (this && this.__importDefault) || function (mod) {
22
+ return (mod && mod.__esModule) ? mod : { "default": mod };
23
+ };
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ exports.generateKomaciModule = void 0;
26
+ const generator_1 = __importDefault(require("@babel/generator"));
27
+ const shared_1 = require("./shared");
28
+ const modGenScript_1 = require("./modGenScript");
29
+ const modGenTemplate_1 = require("./modGenTemplate");
30
+ const t = __importStar(require("@babel/types"));
31
+ // Generate a module adhering to the Komaci Runtime Format which is used
32
+ // by the Komaci Resolution Engine to drive dependency resolution.
33
+ function generateKomaciModule(input) {
34
+ // Initial state for this call to module generator.
35
+ const generatorState = {
36
+ input,
37
+ adgImportSuffix: 0,
38
+ importAliasSuffix: 0,
39
+ scriptGenState: {
40
+ importRefsMap: {},
41
+ requiredFactoryFunctions: new Set(),
42
+ importInfosForWireAdapter: new Set(),
43
+ primingAdapterImportDeclarations: [],
44
+ },
45
+ templateGenState: {
46
+ importRefsMap: {},
47
+ requiredFactoryFunctions: new Set(),
48
+ refProps: new Set(),
49
+ },
50
+ iterationContext: [],
51
+ defaultCompImported: false,
52
+ adgNameMap: {},
53
+ isDefaultExportFound: false,
54
+ };
55
+ try {
56
+ if (input.moduleInfo.type === 'file') {
57
+ // Determine file type based on extension in file name.
58
+ const segments = input.moduleInfo.fileName.split('.');
59
+ if (segments.length < 2) {
60
+ throw new Error(shared_1.ERROR_PREFIX + 'unable to determine file type');
61
+ }
62
+ const fileExt = segments[segments.length - 1];
63
+ let sourceFile;
64
+ if (fileExt === 'html') {
65
+ sourceFile = (0, modGenTemplate_1.generateTemplateModule)(generatorState, input.moduleInfo.komaciDoc);
66
+ }
67
+ else if (fileExt === 'js') {
68
+ sourceFile = (0, modGenScript_1.generateScriptModule)(generatorState, input.moduleInfo.komaciDoc);
69
+ }
70
+ else {
71
+ throw new Error(shared_1.ERROR_PREFIX + 'unsupported file extension: ' + fileExt);
72
+ }
73
+ const babelOutput = (0, generator_1.default)(sourceFile);
74
+ return babelOutput.code;
75
+ }
76
+ else if (input.moduleInfo.type === 'bundle') {
77
+ // code to process a bundle
78
+ let filename = '', fileExt;
79
+ const docMap = input.moduleInfo.files; // {'test.html' : KomaciDoc1, 'test.js' : KomaciDoc2}
80
+ const filesMap = {}; // {'html' : {'test.html' : KomaciDoc1}, 'js' : {'test.js' : KomaciDoc2 }}
81
+ let sourceFile;
82
+ for (const [fullFilename, komaciDoc] of Object.entries(docMap)) {
83
+ // Determine file type based on extension in file name.
84
+ const segments = fullFilename.split('.');
85
+ if (segments.length < 2) {
86
+ throw new Error(shared_1.ERROR_PREFIX + 'unable to determine file type');
87
+ }
88
+ filename = segments[0]; // the filename, up to but not including, the file separator character
89
+ fileExt = segments[segments.length - 1]; // filename extension, not including the separator
90
+ if (filename !== input.moduleInfo.name) {
91
+ continue; // ignore files whose name do not match moduleInfo.name
92
+ }
93
+ let filesObj = {};
94
+ // check for existing map entry in order to append to it
95
+ // to support multiple files per filetype in the future
96
+ if (filesMap[fileExt]) {
97
+ filesObj = filesMap[fileExt];
98
+ }
99
+ filesObj[filename] = komaciDoc;
100
+ if (fileExt == 'html') {
101
+ filesMap['html'] = filesObj;
102
+ }
103
+ else if (fileExt === 'js') {
104
+ filesMap['js'] = filesObj;
105
+ }
106
+ else {
107
+ throw new Error(shared_1.ERROR_PREFIX + 'unsupported file extension: ' + fileExt);
108
+ }
109
+ }
110
+ const komaciJSDoc = filesMap && filesMap['js'] && filesMap['js'][input.moduleInfo.name]
111
+ ? filesMap['js'][input.moduleInfo.name]
112
+ : {};
113
+ const komaciHTMLDoc = filesMap && filesMap['html'] && filesMap['html'][input.moduleInfo.name]
114
+ ? filesMap['html'][input.moduleInfo.name]
115
+ : {};
116
+ // eslint-disable-next-line prefer-const
117
+ sourceFile = (0, modGenScript_1.generateCombinedModule)(generatorState, komaciJSDoc, komaciHTMLDoc);
118
+ // Generate source from constructed AST.
119
+ const babelOutput = (0, generator_1.default)(sourceFile);
120
+ return babelOutput.code;
121
+ }
122
+ throw new Error(shared_1.ERROR_PREFIX + 'unrecognized input type');
123
+ }
124
+ catch (e) {
125
+ const babelOutput = (0, generator_1.default)(t.file((0, modGenScript_1.produceErrorAdgFunction)(generatorState, e)));
126
+ return babelOutput.code;
127
+ }
128
+ }
129
+ exports.generateKomaciModule = generateKomaciModule;
130
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,38 @@
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