kea-typegen 3.7.0 → 3.8.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 (52) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/dist/package.json +3 -1
  3. package/dist/src/__tests__/inline.d.ts +1 -0
  4. package/dist/src/__tests__/inline.js +224 -0
  5. package/dist/src/__tests__/inline.js.map +1 -0
  6. package/dist/src/__tests__/watch.js +178 -0
  7. package/dist/src/__tests__/watch.js.map +1 -1
  8. package/dist/src/cli/typegen.js +4 -0
  9. package/dist/src/cli/typegen.js.map +1 -1
  10. package/dist/src/print/print.d.ts +6 -0
  11. package/dist/src/print/print.js +59 -42
  12. package/dist/src/print/print.js.map +1 -1
  13. package/dist/src/typegen.js +38 -2
  14. package/dist/src/typegen.js.map +1 -1
  15. package/dist/src/types.d.ts +1 -0
  16. package/dist/src/utils.d.ts +4 -0
  17. package/dist/src/utils.js +55 -0
  18. package/dist/src/utils.js.map +1 -1
  19. package/dist/src/visit/visit.js +6 -0
  20. package/dist/src/visit/visit.js.map +1 -1
  21. package/dist/src/watch.d.ts +22 -0
  22. package/dist/src/watch.js +183 -0
  23. package/dist/src/watch.js.map +1 -0
  24. package/dist/src/write/writeInlineLogicTypes.d.ts +8 -0
  25. package/dist/src/write/writeInlineLogicTypes.js +236 -0
  26. package/dist/src/write/writeInlineLogicTypes.js.map +1 -0
  27. package/dist/src/write/writeTypeImports.d.ts +8 -0
  28. package/dist/src/write/writeTypeImports.js +3 -0
  29. package/dist/src/write/writeTypeImports.js.map +1 -1
  30. package/dist/tsconfig.tsbuildinfo +1 -1
  31. package/package.json +3 -1
  32. package/samples/manualTypedLogic.ts +20 -0
  33. package/samples-inline/counterLogic.ts +36 -0
  34. package/samples-inline/manualLogic.ts +20 -0
  35. package/samples-inline/profileLogic.ts +30 -0
  36. package/samples-inline/searchLogic.ts +30 -0
  37. package/samples-inline/tsconfig.json +17 -0
  38. package/samples-inline/types.ts +5 -0
  39. package/src/__tests__/inline.ts +266 -0
  40. package/src/__tests__/watch.ts +259 -32
  41. package/src/cli/typegen.ts +4 -0
  42. package/src/print/print.ts +102 -57
  43. package/src/test-support/watch-mode-smoke.js +39 -4
  44. package/src/test-support/write-mode-smoke.js +6 -1
  45. package/src/typegen.ts +53 -2
  46. package/src/types.ts +2 -0
  47. package/src/utils.ts +81 -0
  48. package/src/visit/visit.ts +14 -0
  49. package/src/watch.ts +261 -0
  50. package/src/write/writeInlineLogicTypes.ts +305 -0
  51. package/src/write/writeTypeImports.ts +4 -4
  52. package/tsconfig.json +1 -0
@@ -0,0 +1,183 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createWatchChangeTracker = createWatchChangeTracker;
4
+ exports.planWatchTypegenPass = planWatchTypegenPass;
5
+ const fs = require("fs");
6
+ const path = require("path");
7
+ const ts = require("typescript");
8
+ const utils_1 = require("./utils");
9
+ const KEA_CALL_REGEX = /\bkea\s*[<(]/;
10
+ const SOURCE_EXTENSIONS = ['.ts', '.tsx', '.js', '.jsx', '.mjs', '.mjsx'];
11
+ const TYPEGEN_FILE_REGEX = /(^|\.|\/)typegen\.[tj]s$/;
12
+ const MAX_INCREMENTAL_CHANGED_FILES = 50;
13
+ function createWatchChangeTracker(baseSystem) {
14
+ const changes = new Map();
15
+ const track = (fileName, eventKind) => {
16
+ changes.set(path.resolve(fileName), { fileName: path.resolve(fileName), eventKind });
17
+ };
18
+ const system = {
19
+ ...baseSystem,
20
+ watchFile(fileName, callback, pollingInterval, options) {
21
+ return baseSystem.watchFile(fileName, (changedFileName, eventKind, modifiedTime) => {
22
+ track(changedFileName, eventKind);
23
+ callback(changedFileName, eventKind, modifiedTime);
24
+ }, pollingInterval, options);
25
+ },
26
+ watchDirectory(fileName, callback, recursive, options) {
27
+ return baseSystem.watchDirectory(fileName, (changedFileName) => {
28
+ track(changedFileName, ts.FileWatcherEventKind.Created);
29
+ callback(changedFileName);
30
+ }, recursive, options);
31
+ },
32
+ };
33
+ return {
34
+ system,
35
+ consume() {
36
+ const currentChanges = [...changes.values()];
37
+ changes.clear();
38
+ return currentChanges;
39
+ },
40
+ };
41
+ }
42
+ function planWatchTypegenPass(program, changes) {
43
+ if (changes.length === 0) {
44
+ return { kind: 'full', reason: 'initial watch pass' };
45
+ }
46
+ const normalizedChanges = dedupeChanges(changes);
47
+ if (normalizedChanges.length > MAX_INCREMENTAL_CHANGED_FILES) {
48
+ return { kind: 'full', reason: `${normalizedChanges.length} files changed` };
49
+ }
50
+ if (normalizedChanges.some((change) => change.eventKind === ts.FileWatcherEventKind.Deleted)) {
51
+ return { kind: 'full', reason: 'deleted file detected' };
52
+ }
53
+ const sourceFilesByPath = getSourceFilesByPath(program);
54
+ const reverseDependencies = buildReverseDependencyMap(program);
55
+ const queue = [];
56
+ for (const change of normalizedChanges) {
57
+ const changedPath = path.resolve(change.fileName);
58
+ if (isTypegenModuleFile(changedPath)) {
59
+ return { kind: 'full', reason: `typegen module changed: ${path.relative(process.cwd(), changedPath)}` };
60
+ }
61
+ const sourceFile = sourceFilesByPath.get(changedPath);
62
+ if (sourceFile === null || sourceFile === void 0 ? void 0 : sourceFile.text.includes('resetContext')) {
63
+ return { kind: 'full', reason: `resetContext changed: ${path.relative(process.cwd(), changedPath)}` };
64
+ }
65
+ if (isGeneratedTypeFile(changedPath)) {
66
+ queue.push(...sourcePathsForTypeFile(changedPath, sourceFilesByPath));
67
+ queue.push(changedPath);
68
+ continue;
69
+ }
70
+ if (sourceFile) {
71
+ if (sourceFile.isDeclarationFile) {
72
+ return {
73
+ kind: 'full',
74
+ reason: `declaration file changed: ${path.relative(process.cwd(), changedPath)}`,
75
+ };
76
+ }
77
+ queue.push(changedPath);
78
+ continue;
79
+ }
80
+ if (isSourceLikeFile(changedPath) && fs.existsSync(changedPath)) {
81
+ return {
82
+ kind: 'full',
83
+ reason: `new source file outside program: ${path.relative(process.cwd(), changedPath)}`,
84
+ };
85
+ }
86
+ }
87
+ const affectedLogicFiles = collectAffectedLogicFiles(queue, sourceFilesByPath, reverseDependencies);
88
+ if (affectedLogicFiles.length === 0) {
89
+ return { kind: 'skip', reason: 'no affected Kea logic files' };
90
+ }
91
+ return {
92
+ kind: 'files',
93
+ sourceFilePaths: affectedLogicFiles,
94
+ reason: `${affectedLogicFiles.length} affected Kea logic file${affectedLogicFiles.length === 1 ? '' : 's'}`,
95
+ };
96
+ }
97
+ function dedupeChanges(changes) {
98
+ const deduped = new Map();
99
+ for (const change of changes) {
100
+ deduped.set(path.resolve(change.fileName), { ...change, fileName: path.resolve(change.fileName) });
101
+ }
102
+ return [...deduped.values()];
103
+ }
104
+ function getSourceFilesByPath(program) {
105
+ const sourceFilesByPath = new Map();
106
+ for (const sourceFile of program.getSourceFiles()) {
107
+ sourceFilesByPath.set(path.resolve(sourceFile.fileName), sourceFile);
108
+ }
109
+ return sourceFilesByPath;
110
+ }
111
+ function buildReverseDependencyMap(program) {
112
+ const checker = program.getTypeChecker();
113
+ const reverseDependencies = new Map();
114
+ for (const sourceFile of program.getSourceFiles()) {
115
+ if (sourceFile.isDeclarationFile) {
116
+ continue;
117
+ }
118
+ const importerPath = path.resolve(sourceFile.fileName);
119
+ ts.forEachChild(sourceFile, function visit(node) {
120
+ if (ts.isImportDeclaration(node)) {
121
+ const importedFileName = (0, utils_1.getFilenameForImportDeclaration)(checker, node);
122
+ if (importedFileName) {
123
+ const importedPath = path.resolve(importedFileName);
124
+ let importers = reverseDependencies.get(importedPath);
125
+ if (!importers) {
126
+ importers = new Set();
127
+ reverseDependencies.set(importedPath, importers);
128
+ }
129
+ importers.add(importerPath);
130
+ }
131
+ }
132
+ ts.forEachChild(node, visit);
133
+ });
134
+ }
135
+ return reverseDependencies;
136
+ }
137
+ function collectAffectedLogicFiles(startPaths, sourceFilesByPath, reverseDependencies) {
138
+ var _a;
139
+ const visited = new Set();
140
+ const queue = startPaths.map((filePath) => path.resolve(filePath));
141
+ const affectedLogicFiles = new Set();
142
+ while (queue.length > 0) {
143
+ const currentPath = queue.shift();
144
+ if (visited.has(currentPath)) {
145
+ continue;
146
+ }
147
+ visited.add(currentPath);
148
+ const sourceFile = sourceFilesByPath.get(currentPath);
149
+ if (sourceFile &&
150
+ !sourceFile.isDeclarationFile &&
151
+ !isGeneratedTypeFile(currentPath) &&
152
+ sourceFileMightContainKeaCall(sourceFile)) {
153
+ affectedLogicFiles.add(currentPath);
154
+ }
155
+ if (isGeneratedTypeFile(currentPath)) {
156
+ queue.push(...sourcePathsForTypeFile(currentPath, sourceFilesByPath));
157
+ }
158
+ for (const importerPath of (_a = reverseDependencies.get(currentPath)) !== null && _a !== void 0 ? _a : []) {
159
+ queue.push(importerPath);
160
+ }
161
+ }
162
+ return [...affectedLogicFiles].sort();
163
+ }
164
+ function sourcePathsForTypeFile(typeFilePath, sourceFilesByPath) {
165
+ if (!isGeneratedTypeFile(typeFilePath)) {
166
+ return [];
167
+ }
168
+ const sourceBasePath = typeFilePath.slice(0, -'Type.ts'.length);
169
+ return SOURCE_EXTENSIONS.map((extension) => `${sourceBasePath}${extension}`).filter((sourcePath) => sourceFilesByPath.has(path.resolve(sourcePath)));
170
+ }
171
+ function isGeneratedTypeFile(filePath) {
172
+ return filePath.endsWith('Type.ts');
173
+ }
174
+ function isSourceLikeFile(filePath) {
175
+ return SOURCE_EXTENSIONS.some((extension) => filePath.endsWith(extension));
176
+ }
177
+ function isTypegenModuleFile(filePath) {
178
+ return TYPEGEN_FILE_REGEX.test(filePath.split(path.sep).join('/'));
179
+ }
180
+ function sourceFileMightContainKeaCall(sourceFile) {
181
+ return KEA_CALL_REGEX.test(sourceFile.text);
182
+ }
183
+ //# sourceMappingURL=watch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watch.js","sourceRoot":"","sources":["../../src/watch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import * as ts from 'typescript';
2
+ import { AppOptions, ParsedLogic } from '../types';
3
+ export declare const INLINE_TYPE_MARKER = " Generated by kea-typegen. DO NOT EDIT THIS BLOCK MANUALLY.";
4
+ export declare function printInlineLogicType(parsedLogic: ParsedLogic): string;
5
+ export declare function writeInlineLogicTypes(program: ts.Program, appOptions: AppOptions, filename: string, parsedLogics: ParsedLogic[], nodeModulesPath: string, shouldIgnore: (absolutePath: string) => boolean): Promise<{
6
+ filesToWrite: number;
7
+ writtenFiles: number;
8
+ }>;
@@ -0,0 +1,236 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.INLINE_TYPE_MARKER = void 0;
4
+ exports.printInlineLogicType = printInlineLogicType;
5
+ exports.writeInlineLogicTypes = writeInlineLogicTypes;
6
+ const ts = require("typescript");
7
+ const fs = require("fs");
8
+ const osPath = require("path");
9
+ const typescript_1 = require("typescript");
10
+ const print_1 = require("../print/print");
11
+ const printValues_1 = require("../print/printValues");
12
+ const utils_1 = require("../utils");
13
+ const writeTypeImports_1 = require("./writeTypeImports");
14
+ exports.INLINE_TYPE_MARKER = ' Generated by kea-typegen. DO NOT EDIT THIS BLOCK MANUALLY.';
15
+ function printInlineLogicType(parsedLogic) {
16
+ const statements = [];
17
+ const typeArguments = [];
18
+ const createExportedInterface = (name, members) => typescript_1.factory.createInterfaceDeclaration([typescript_1.factory.createModifier(typescript_1.SyntaxKind.ExportKeyword)], typescript_1.factory.createIdentifier(name), undefined, undefined, members);
19
+ const addSection = (suffix, members) => {
20
+ if (members.length > 0) {
21
+ const name = `${parsedLogic.logicName}${suffix}`;
22
+ statements.push(createExportedInterface(name, members));
23
+ typeArguments.push(typescript_1.factory.createTypeReferenceNode(typescript_1.factory.createIdentifier(name), undefined));
24
+ }
25
+ else {
26
+ typeArguments.push(typescript_1.factory.createTypeLiteralNode([]));
27
+ }
28
+ };
29
+ addSection('Values', (0, printValues_1.printValues)(parsedLogic).members);
30
+ addSection('Actions', parsedLogic.actions.map(({ name, parameters, returnTypeNode }) => typescript_1.factory.createPropertySignature(undefined, typescript_1.factory.createIdentifier(name), undefined, typescript_1.factory.createFunctionTypeNode(undefined, parameters, returnTypeNode))));
31
+ if (parsedLogic.propsType) {
32
+ if (ts.isTypeLiteralNode(parsedLogic.propsType)) {
33
+ addSection('Props', parsedLogic.propsType.members);
34
+ }
35
+ else {
36
+ typeArguments.push(parsedLogic.propsType);
37
+ }
38
+ }
39
+ statements.push(typescript_1.factory.createTypeAliasDeclaration([typescript_1.factory.createModifier(typescript_1.SyntaxKind.ExportKeyword)], typescript_1.factory.createIdentifier(parsedLogic.logicTypeName), undefined, typescript_1.factory.createTypeReferenceNode(typescript_1.factory.createIdentifier('MakeLogicType'), typeArguments)));
40
+ ts.addSyntheticLeadingComment(statements[0], typescript_1.SyntaxKind.SingleLineCommentTrivia, exports.INLINE_TYPE_MARKER, true);
41
+ return statements.map(print_1.nodeToString).join('\n\n');
42
+ }
43
+ async function writeInlineLogicTypes(program, appOptions, filename, parsedLogics, nodeModulesPath, shouldIgnore) {
44
+ var _a;
45
+ const { log } = appOptions;
46
+ const unchanged = { filesToWrite: 0, writtenFiles: 0 };
47
+ if (!filename.match(/\.tsx?$/)) {
48
+ return unchanged;
49
+ }
50
+ const sourceFile = program.getSourceFile(filename);
51
+ if (!sourceFile) {
52
+ throw new Error(`Could not find source file: ${filename}`);
53
+ }
54
+ const rawCode = sourceFile.text;
55
+ const edits = [];
56
+ const managedLogics = [];
57
+ for (const parsedLogic of parsedLogics) {
58
+ const existingDeclaration = sourceFile.statements.find((statement) => (ts.isTypeAliasDeclaration(statement) || ts.isInterfaceDeclaration(statement)) &&
59
+ statement.name.text === parsedLogic.logicTypeName);
60
+ if (existingDeclaration && !(0, utils_1.isGeneratedInlineBlock)(existingDeclaration, parsedLogic.logicName)) {
61
+ continue;
62
+ }
63
+ managedLogics.push(parsedLogic);
64
+ const printedBlock = printInlineLogicType(parsedLogic);
65
+ const block = (appOptions.prettier === false ? printedBlock : await (0, print_1.runThroughPrettier)(printedBlock, filename)).trimEnd();
66
+ if (existingDeclaration) {
67
+ const blockStatements = (0, utils_1.getInlineBlockStatements)(existingDeclaration, parsedLogic.logicName);
68
+ const start = getBlockStart(blockStatements[0], sourceFile);
69
+ const end = existingDeclaration.getEnd();
70
+ if (rawCode.slice(start, end) !== block) {
71
+ edits.push({ start, end, text: block });
72
+ }
73
+ }
74
+ else {
75
+ const statement = getTopLevelStatement(parsedLogic.node);
76
+ const insertPos = statement.getStart(sourceFile);
77
+ edits.push({ start: insertPos, end: insertPos, text: `${block}\n\n` });
78
+ }
79
+ const callExpression = parsedLogic.node.parent;
80
+ if (ts.isCallExpression(callExpression)) {
81
+ const start = callExpression.expression.getEnd();
82
+ const end = callExpression.typeArguments ? (0, writeTypeImports_1.getTypeArgumentInsertEnd)(callExpression, sourceFile) : start;
83
+ const text = `<${parsedLogic.logicTypeName}>`;
84
+ if (rawCode.slice(start, end) !== text) {
85
+ edits.push({ start, end, text });
86
+ }
87
+ }
88
+ }
89
+ if (managedLogics.length > 0) {
90
+ const importDeclarations = sourceFile.statements.filter(ts.isImportDeclaration);
91
+ const newImportLines = [];
92
+ if (!importsMakeLogicType(importDeclarations)) {
93
+ const keaNamedImport = importDeclarations.find((declaration) => {
94
+ var _a;
95
+ return ts.isStringLiteralLike(declaration.moduleSpecifier) &&
96
+ declaration.moduleSpecifier.text === 'kea' &&
97
+ ((_a = declaration.importClause) === null || _a === void 0 ? void 0 : _a.namedBindings) &&
98
+ ts.isNamedImports(declaration.importClause.namedBindings) &&
99
+ declaration.importClause.namedBindings.elements.length > 0;
100
+ });
101
+ if (keaNamedImport) {
102
+ const firstElement = keaNamedImport.importClause.namedBindings.elements[0];
103
+ const pos = firstElement.getStart(sourceFile);
104
+ edits.push({ start: pos, end: pos, text: 'MakeLogicType, ' });
105
+ }
106
+ else {
107
+ newImportLines.push(`import type { MakeLogicType } from 'kea'`);
108
+ }
109
+ }
110
+ const typeFileNameBase = parsedLogics[0].typeFileName.replace(/\.[tj]sx?$/, '');
111
+ for (const declaration of importDeclarations) {
112
+ if (!ts.isStringLiteralLike(declaration.moduleSpecifier)) {
113
+ continue;
114
+ }
115
+ const specifier = declaration.moduleSpecifier.text;
116
+ if (!specifier.startsWith('.')) {
117
+ continue;
118
+ }
119
+ if (osPath.resolve(osPath.dirname(filename), specifier) === typeFileNameBase) {
120
+ const start = declaration.getStart(sourceFile);
121
+ let end = declaration.getEnd();
122
+ if (rawCode[end] === '\n') {
123
+ end += 1;
124
+ }
125
+ edits.push({ start, end, text: '' });
126
+ }
127
+ }
128
+ const knownNames = collectKnownTypeNames(sourceFile);
129
+ for (const parsedLogic of parsedLogics) {
130
+ knownNames.add(parsedLogic.logicTypeName);
131
+ }
132
+ const mergedTypeReferences = {};
133
+ for (const parsedLogic of managedLogics) {
134
+ for (const [file, names] of Object.entries(parsedLogic.typeReferencesToImportFromFiles)) {
135
+ mergedTypeReferences[file] = (_a = mergedTypeReferences[file]) !== null && _a !== void 0 ? _a : new Set();
136
+ for (const name of names) {
137
+ mergedTypeReferences[file].add(name);
138
+ }
139
+ }
140
+ }
141
+ for (const entry of (0, print_1.buildTypeImportEntries)(mergedTypeReferences, filename, nodeModulesPath, shouldIgnore)) {
142
+ const absolutePath = entry.fullPath.startsWith('.')
143
+ ? osPath.resolve(osPath.dirname(filename), entry.fullPath)
144
+ : entry.fullPath;
145
+ if (absolutePath === filename || absolutePath === parsedLogics[0].typeFileName) {
146
+ continue;
147
+ }
148
+ const missing = entry.list.filter((name) => !knownNames.has(name));
149
+ missing.forEach((name) => knownNames.add(name));
150
+ if (missing.length > 0) {
151
+ newImportLines.push(`import type { ${missing.join(', ')} } from '${entry.finalPath}'`);
152
+ }
153
+ }
154
+ if (newImportLines.length > 0) {
155
+ const insertPos = (0, writeTypeImports_1.getImportInsertPosition)(sourceFile, rawCode);
156
+ const text = importDeclarations.length > 0
157
+ ? `\n${newImportLines.join('\n')}${rawCode.slice(insertPos, insertPos + 1) === '\n' ? '' : '\n'}`
158
+ : `${newImportLines.join('\n')}\n`;
159
+ edits.push({ start: insertPos, end: insertPos, text });
160
+ }
161
+ }
162
+ if (edits.length === 0) {
163
+ if (appOptions.verbose) {
164
+ log(`🤷 Unchanged: ${osPath.relative(process.cwd(), filename)}`);
165
+ }
166
+ return unchanged;
167
+ }
168
+ if (!appOptions.write) {
169
+ log(`❌ Will not write inline logic types: ${osPath.relative(process.cwd(), filename)}`);
170
+ return { filesToWrite: 1, writtenFiles: 0 };
171
+ }
172
+ const editedCode = (0, writeTypeImports_1.applyTextEdits)(rawCode, edits);
173
+ const newText = appOptions.prettier === false ? editedCode : await (0, print_1.runThroughPrettier)(editedCode, filename);
174
+ fs.writeFileSync(filename, newText);
175
+ log(`🔥 Writing inline logic types: ${osPath.relative(process.cwd(), filename)}`);
176
+ return { filesToWrite: 1, writtenFiles: 1 };
177
+ }
178
+ function getBlockStart(declaration, sourceFile) {
179
+ var _a;
180
+ const ranges = (_a = ts.getLeadingCommentRanges(sourceFile.text, declaration.pos)) !== null && _a !== void 0 ? _a : [];
181
+ const marker = ranges.find(({ pos, end }) => sourceFile.text.slice(pos, end).includes('kea-typegen'));
182
+ return marker ? marker.pos : declaration.getStart(sourceFile);
183
+ }
184
+ function getTopLevelStatement(node) {
185
+ let statement = node;
186
+ while (statement.parent && !ts.isSourceFile(statement.parent)) {
187
+ statement = statement.parent;
188
+ }
189
+ return statement;
190
+ }
191
+ function importsMakeLogicType(importDeclarations) {
192
+ return importDeclarations.some((declaration) => {
193
+ var _a;
194
+ return ts.isStringLiteralLike(declaration.moduleSpecifier) &&
195
+ declaration.moduleSpecifier.text === 'kea' &&
196
+ ((_a = declaration.importClause) === null || _a === void 0 ? void 0 : _a.namedBindings) &&
197
+ ts.isNamedImports(declaration.importClause.namedBindings) &&
198
+ declaration.importClause.namedBindings.elements.some((element) => element.name.text === 'MakeLogicType' && !element.propertyName);
199
+ });
200
+ }
201
+ function collectKnownTypeNames(sourceFile) {
202
+ const names = new Set();
203
+ for (const statement of sourceFile.statements) {
204
+ if (ts.isImportDeclaration(statement) && statement.importClause) {
205
+ if (statement.importClause.name) {
206
+ names.add(statement.importClause.name.text);
207
+ }
208
+ const namedBindings = statement.importClause.namedBindings;
209
+ if (namedBindings) {
210
+ if (ts.isNamedImports(namedBindings)) {
211
+ namedBindings.elements.forEach((element) => names.add(element.name.text));
212
+ }
213
+ else {
214
+ names.add(namedBindings.name.text);
215
+ }
216
+ }
217
+ }
218
+ else if ((ts.isTypeAliasDeclaration(statement) ||
219
+ ts.isInterfaceDeclaration(statement) ||
220
+ ts.isClassDeclaration(statement) ||
221
+ ts.isEnumDeclaration(statement) ||
222
+ ts.isFunctionDeclaration(statement)) &&
223
+ statement.name) {
224
+ names.add(statement.name.text);
225
+ }
226
+ else if (ts.isVariableStatement(statement)) {
227
+ for (const declaration of statement.declarationList.declarations) {
228
+ if (ts.isIdentifier(declaration.name)) {
229
+ names.add(declaration.name.text);
230
+ }
231
+ }
232
+ }
233
+ }
234
+ return names;
235
+ }
236
+ //# sourceMappingURL=writeInlineLogicTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"writeInlineLogicTypes.js","sourceRoot":"","sources":["../../../src/write/writeInlineLogicTypes.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,11 @@
1
1
  import { AppOptions, ParsedLogic } from '../types';
2
2
  import * as ts from 'typescript';
3
+ export interface TextEdit {
4
+ start: number;
5
+ end: number;
6
+ text: string;
7
+ }
8
+ export declare function applyTextEdits(source: string, edits: TextEdit[]): string;
9
+ export declare function getImportInsertPosition(sourceFile: ts.SourceFile, rawCode: string): number;
10
+ export declare function getTypeArgumentInsertEnd(callExpression: ts.CallExpression, sourceFile: ts.SourceFile): number;
3
11
  export declare function writeTypeImports(appOptions: AppOptions, program: ts.Program, filename: string, logicsNeedingImports: ParsedLogic[], parsedLogics: ParsedLogic[]): Promise<void>;
@@ -1,5 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.applyTextEdits = applyTextEdits;
4
+ exports.getImportInsertPosition = getImportInsertPosition;
5
+ exports.getTypeArgumentInsertEnd = getTypeArgumentInsertEnd;
3
6
  exports.writeTypeImports = writeTypeImports;
4
7
  const ts = require("typescript");
5
8
  const osPath = require("path");
@@ -1 +1 @@
1
- {"version":3,"file":"writeTypeImports.js","sourceRoot":"","sources":["../../../src/write/writeTypeImports.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"writeTypeImports.js","sourceRoot":"","sources":["../../../src/write/writeTypeImports.ts"],"names":[],"mappings":"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"}