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
package/CHANGELOG.md CHANGED
@@ -1,3 +1,12 @@
1
+ ## 3.8.0 - 2026-07-14
2
+
3
+ - Skip logics that are manually typed, e.g. `kea<MakeLogicType<Values, Actions>>(...)` or any other custom type in `kea<...>()`. Such logics are now left completely alone.
4
+ - Add a new `--inline` mode. Instead of writing `logicType.ts` files, it writes and keeps updated a `// Generated by kea-typegen` block directly above each `kea()` call: one interface per non-empty section (`logicValues`, `logicActions`, `logicProps`), tied together with `export type logicType = MakeLogicType<logicValues, logicActions, logicProps>`. Named props types are referenced directly instead of getting an interface. With `--delete`, obsolete `logicType.ts` files are removed when switching over. See `yarn samples:inline:write` / `yarn samples:inline:check` and the `samples-inline/` folder.
5
+
6
+ ## 3.7.1 - 2026-06-26
7
+
8
+ Make watch mode incremental. When a watched rebuild can be proven local, regenerate only the changed or affected Kea logic files and keep the existing full-pass fallback for ambiguous changes.
9
+
1
10
  ## 3.7.0 - 2026-06-23
2
11
 
3
12
  Improve performance of typegen. Make type lookups lazier, try to read less files, better --file mode.
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kea-typegen",
3
- "version": "3.7.0",
3
+ "version": "3.8.0",
4
4
  "description": "Generate type definitions for kea logic",
5
5
  "scripts": {
6
6
  "start": "ts-node ./src/cli/typegen.ts",
@@ -13,6 +13,8 @@
13
13
  "samples:write": "ts-node ./src/cli/typegen.ts write -r ./samples --write-paths --delete",
14
14
  "samples:convert": "ts-node ./src/cli/typegen.ts write -r ./samples --convert-to-builders",
15
15
  "samples:watch": "ts-node ./src/cli/typegen.ts watch -r ./samples --delete",
16
+ "samples:inline:check": "ts-node ./src/cli/typegen.ts check -r ./samples-inline --inline",
17
+ "samples:inline:write": "ts-node ./src/cli/typegen.ts write -r ./samples-inline --inline --delete",
16
18
  "samples:write:posthog": "NODE_OPTIONS=\"--max-old-space-size=16384\" ts-node ./src/cli/typegen.ts write --show-ts-errors -c",
17
19
  "form-plugin:build": "cd form-plugin && yarn && yarn build && cd ..",
18
20
  "form-plugin:rebuild": "yarn form-plugin:build && rm -rf node_modules && yarn"
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,224 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const fs = require("fs");
4
+ const os = require("os");
5
+ const path = require("path");
6
+ const ts = require("typescript");
7
+ const utils_1 = require("../utils");
8
+ const visit_1 = require("../visit/visit");
9
+ const print_1 = require("../print/print");
10
+ describe('manually typed logics', () => {
11
+ test('skips logics typed with MakeLogicType', () => {
12
+ const logicSource = `
13
+ import { kea, MakeLogicType } from 'kea'
14
+
15
+ interface Values { name: string }
16
+ interface Actions { updateName: (name: string) => { name: string } }
17
+
18
+ const logic = kea<MakeLogicType<Values, Actions>>({
19
+ actions: () => ({
20
+ updateName: (name: string) => ({ name }),
21
+ }),
22
+ })
23
+ `;
24
+ expect((0, visit_1.visitProgram)((0, utils_1.programFromSource)(logicSource)).length).toBe(0);
25
+ });
26
+ test('skips logics typed with a custom local type, even when named like a generated one', () => {
27
+ const logicSource = `
28
+ import { kea, MakeLogicType } from 'kea'
29
+
30
+ export type logicType = MakeLogicType<{ name: string }, { updateName: (name: string) => { name: string } }>
31
+
32
+ const logic = kea<logicType>({
33
+ actions: () => ({
34
+ updateName: (name: string) => ({ name }),
35
+ }),
36
+ })
37
+ `;
38
+ expect((0, visit_1.visitProgram)((0, utils_1.programFromSource)(logicSource)).length).toBe(0);
39
+ });
40
+ test('does not skip local logic types carrying the kea-typegen marker', () => {
41
+ const logicSource = `
42
+ import { kea, MakeLogicType } from 'kea'
43
+
44
+ // Generated by kea-typegen. DO NOT EDIT THIS BLOCK MANUALLY.
45
+ export type logicType = MakeLogicType<{ name: string }, { updateName: (name: string) => { name: string } }>
46
+
47
+ const logic = kea<logicType>({
48
+ actions: () => ({
49
+ updateName: (name: string) => ({ name }),
50
+ }),
51
+ })
52
+ `;
53
+ const parsedLogics = (0, visit_1.visitProgram)((0, utils_1.programFromSource)(logicSource));
54
+ expect(parsedLogics.length).toBe(1);
55
+ expect(parsedLogics[0].actions.map((a) => a.name)).toEqual(['updateName']);
56
+ });
57
+ test('does not skip generated blocks where the marker sits on the values interface', () => {
58
+ const logicSource = `
59
+ import { kea, MakeLogicType } from 'kea'
60
+
61
+ // Generated by kea-typegen. DO NOT EDIT THIS BLOCK MANUALLY.
62
+ export interface logicValues { name: string }
63
+
64
+ export interface logicActions { updateName: (name: string) => { name: string } }
65
+
66
+ export type logicType = MakeLogicType<logicValues, logicActions>
67
+
68
+ const logic = kea<logicType>({
69
+ actions: () => ({
70
+ updateName: (name: string) => ({ name }),
71
+ }),
72
+ })
73
+ `;
74
+ const parsedLogics = (0, visit_1.visitProgram)((0, utils_1.programFromSource)(logicSource));
75
+ expect(parsedLogics.length).toBe(1);
76
+ });
77
+ test('does not skip logics with a generated type that does not resolve yet', () => {
78
+ const logicSource = `
79
+ import { kea } from 'kea'
80
+
81
+ const logic = kea<logicType>({
82
+ actions: () => ({
83
+ updateName: (name: string) => ({ name }),
84
+ }),
85
+ })
86
+ `;
87
+ expect((0, visit_1.visitProgram)((0, utils_1.programFromSource)(logicSource)).length).toBe(1);
88
+ });
89
+ });
90
+ describe('inline mode', () => {
91
+ const createProgram = (fileNames) => ts.createProgram(fileNames, {
92
+ module: ts.ModuleKind.CommonJS,
93
+ moduleResolution: ts.ModuleResolutionKind.NodeJs,
94
+ target: ts.ScriptTarget.ES2020,
95
+ skipLibCheck: true,
96
+ });
97
+ test('writes and updates MakeLogicType blocks above the logic', async () => {
98
+ var _a, _b, _c, _d;
99
+ const tempDir = fs.mkdtempSync(path.join(os.tmpdir(), 'kea-typegen-inline-'));
100
+ try {
101
+ const logicDir = path.join(tempDir, 'src');
102
+ const logicPath = path.join(logicDir, 'logic.ts');
103
+ const logicTypePath = path.join(logicDir, 'logicType.ts');
104
+ const keaDtsPath = path.join(tempDir, 'node_modules', 'kea', 'index.d.ts');
105
+ fs.mkdirSync(path.dirname(keaDtsPath), { recursive: true });
106
+ fs.mkdirSync(logicDir, { recursive: true });
107
+ fs.writeFileSync(keaDtsPath, [
108
+ 'export function kea<T = any>(input: any): T',
109
+ 'export interface MakeLogicType<V = any, A = any, P = any> {}',
110
+ '',
111
+ ].join('\n'));
112
+ fs.writeFileSync(logicPath, [
113
+ "import { kea } from 'kea'",
114
+ '',
115
+ 'export const logic = kea({',
116
+ ' props: {} as { id: number },',
117
+ ' actions: () => ({',
118
+ ' setValue: (value: string) => ({ value }),',
119
+ ' }),',
120
+ ' reducers: () => ({',
121
+ " value: ['' as string, { setValue: (_, { value }) => value }],",
122
+ ' }),',
123
+ '})',
124
+ '',
125
+ ].join('\n'));
126
+ const appOptions = {
127
+ rootPath: logicDir,
128
+ typesPath: logicDir,
129
+ packageJsonPath: path.join(tempDir, 'package.json'),
130
+ inline: true,
131
+ write: true,
132
+ log: () => { },
133
+ };
134
+ const program = createProgram([logicPath]);
135
+ const parsedLogics = (0, visit_1.visitProgram)(program, appOptions);
136
+ expect(parsedLogics.length).toBe(1);
137
+ const response = await (0, print_1.printToFiles)(program, appOptions, parsedLogics);
138
+ expect(response.writtenFiles).toBe(1);
139
+ const writtenLogic = fs.readFileSync(logicPath, 'utf8');
140
+ expect(writtenLogic).toContain("import { MakeLogicType, kea } from 'kea'");
141
+ expect(writtenLogic).toContain('// Generated by kea-typegen. DO NOT EDIT THIS BLOCK MANUALLY.');
142
+ expect(writtenLogic).toContain('export interface logicValues {');
143
+ expect(writtenLogic).toContain('export interface logicActions {');
144
+ expect(writtenLogic).toContain('export interface logicProps {');
145
+ expect(writtenLogic).toContain('export type logicType = MakeLogicType<logicValues, logicActions, logicProps>');
146
+ expect(writtenLogic).toContain('export const logic = kea<logicType>({');
147
+ expect(writtenLogic).toContain('value: string');
148
+ expect(writtenLogic).toContain('setValue: (value: string) =>');
149
+ expect(fs.existsSync(logicTypePath)).toBe(false);
150
+ const secondProgram = createProgram([logicPath]);
151
+ const secondParsedLogics = (0, visit_1.visitProgram)(secondProgram, appOptions);
152
+ expect(secondParsedLogics.length).toBe(1);
153
+ const secondResponse = await (0, print_1.printToFiles)(secondProgram, appOptions, secondParsedLogics);
154
+ expect(secondResponse).toEqual({ filesToWrite: 0, writtenFiles: 0, filesToModify: 0 });
155
+ expect(fs.readFileSync(logicPath, 'utf8')).toBe(writtenLogic);
156
+ fs.writeFileSync(logicPath, fs
157
+ .readFileSync(logicPath, 'utf8')
158
+ .replace('setValue: (value: string) => ({ value }),', 'setValue: (value: string) => ({ value }),\n reset: true,'));
159
+ const thirdProgram = createProgram([logicPath]);
160
+ const thirdResponse = await (0, print_1.printToFiles)(thirdProgram, appOptions, (0, visit_1.visitProgram)(thirdProgram, appOptions));
161
+ expect(thirdResponse.writtenFiles).toBe(1);
162
+ const updatedLogic = fs.readFileSync(logicPath, 'utf8');
163
+ expect(updatedLogic).toContain('reset: ');
164
+ expect((_a = updatedLogic.match(/export type logicType = MakeLogicType</g)) === null || _a === void 0 ? void 0 : _a.length).toBe(1);
165
+ expect((_b = updatedLogic.match(/export interface logicValues \{/g)) === null || _b === void 0 ? void 0 : _b.length).toBe(1);
166
+ expect((_c = updatedLogic.match(/export interface logicActions \{/g)) === null || _c === void 0 ? void 0 : _c.length).toBe(1);
167
+ expect((_d = updatedLogic.match(/DO NOT EDIT THIS BLOCK MANUALLY/g)) === null || _d === void 0 ? void 0 : _d.length).toBe(1);
168
+ }
169
+ finally {
170
+ fs.rmSync(tempDir, { recursive: true, force: true });
171
+ }
172
+ });
173
+ test('replaces the old logicType.ts import when switching to inline mode', async () => {
174
+ const tempDir = fs.mkdtempSync(path.join(os.tmpdir(), 'kea-typegen-inline-migrate-'));
175
+ try {
176
+ const logicDir = path.join(tempDir, 'src');
177
+ const logicPath = path.join(logicDir, 'logic.ts');
178
+ const logicTypePath = path.join(logicDir, 'logicType.ts');
179
+ const keaDtsPath = path.join(tempDir, 'node_modules', 'kea', 'index.d.ts');
180
+ fs.mkdirSync(path.dirname(keaDtsPath), { recursive: true });
181
+ fs.mkdirSync(logicDir, { recursive: true });
182
+ fs.writeFileSync(keaDtsPath, [
183
+ 'export function kea<T = any>(input: any): T',
184
+ 'export interface MakeLogicType<V = any, A = any, P = any> {}',
185
+ '',
186
+ ].join('\n'));
187
+ fs.writeFileSync(logicTypePath, 'export interface logicType {}\n');
188
+ fs.writeFileSync(logicPath, [
189
+ "import { kea } from 'kea'",
190
+ "import type { logicType } from './logicType'",
191
+ '',
192
+ 'export const logic = kea<logicType>({',
193
+ ' actions: () => ({',
194
+ ' setValue: (value: string) => ({ value }),',
195
+ ' }),',
196
+ '})',
197
+ '',
198
+ ].join('\n'));
199
+ const appOptions = {
200
+ rootPath: logicDir,
201
+ typesPath: logicDir,
202
+ packageJsonPath: path.join(tempDir, 'package.json'),
203
+ inline: true,
204
+ write: true,
205
+ delete: true,
206
+ log: () => { },
207
+ };
208
+ const program = createProgram([logicPath]);
209
+ const response = await (0, print_1.printToFiles)(program, appOptions, (0, visit_1.visitProgram)(program, appOptions));
210
+ expect(response.writtenFiles).toBe(1);
211
+ const writtenLogic = fs.readFileSync(logicPath, 'utf8');
212
+ expect(writtenLogic).not.toContain("from './logicType'");
213
+ expect(writtenLogic).toContain("import { MakeLogicType, kea } from 'kea'");
214
+ expect(writtenLogic).toContain('export interface logicActions {');
215
+ expect(writtenLogic).toContain('export type logicType = MakeLogicType<{}, logicActions>');
216
+ expect(writtenLogic).toContain('export const logic = kea<logicType>({');
217
+ expect(fs.existsSync(logicTypePath)).toBe(false);
218
+ }
219
+ finally {
220
+ fs.rmSync(tempDir, { recursive: true, force: true });
221
+ }
222
+ });
223
+ });
224
+ //# sourceMappingURL=inline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inline.js","sourceRoot":"","sources":["../../../src/__tests__/inline.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,23 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const child_process_1 = require("child_process");
4
+ const fs = require("fs");
5
+ const os = require("os");
4
6
  const path = require("path");
7
+ const ts = require("typescript");
8
+ const watch_1 = require("../watch");
9
+ function writeFile(filePath, source) {
10
+ fs.mkdirSync(path.dirname(filePath), { recursive: true });
11
+ fs.writeFileSync(filePath, source);
12
+ }
13
+ function createProgram(fileNames) {
14
+ return ts.createProgram(fileNames, {
15
+ module: ts.ModuleKind.CommonJS,
16
+ moduleResolution: ts.ModuleResolutionKind.NodeJs,
17
+ target: ts.ScriptTarget.ES2020,
18
+ skipLibCheck: true,
19
+ });
20
+ }
5
21
  test('watch mode does not overlap successive typegen passes', async () => {
6
22
  const repoRoot = path.resolve(__dirname, '..', '..');
7
23
  const scriptPath = path.join(repoRoot, 'src/test-support/watch-mode-smoke.js');
@@ -27,6 +43,168 @@ test('watch mode does not overlap successive typegen passes', async () => {
27
43
  expect(payload.started).toBeGreaterThan(1);
28
44
  expect(payload.completed).toBeGreaterThan(0);
29
45
  expect(payload.maxActive).toBe(1);
46
+ expect(payload.incrementalAfterEdit).toBe(true);
47
+ expect(payload.parsedLogicCountsAfterEdit).toContain(1);
48
+ expect(payload.sourceFilePathsAfterEdit.some(Boolean)).toBe(true);
30
49
  expect(result.stderr).toBe('');
31
50
  }, 30000);
51
+ test('watch planner limits a direct logic edit to the changed logic and dependent logics', () => {
52
+ const tempDir = fs.mkdtempSync(path.join(os.tmpdir(), 'kea-typegen-watch-direct-logic-'));
53
+ try {
54
+ const logicDir = path.join(tempDir, 'src');
55
+ const firstLogicPath = path.join(logicDir, 'firstLogic.ts');
56
+ const secondLogicPath = path.join(logicDir, 'secondLogic.ts');
57
+ const unrelatedLogicPath = path.join(logicDir, 'unrelatedLogic.ts');
58
+ const keaDtsPath = path.join(tempDir, 'node_modules', 'kea', 'index.d.ts');
59
+ writeFile(keaDtsPath, 'export function kea<T = any>(input: any): T\n');
60
+ writeFile(firstLogicPath, [
61
+ "import { kea } from 'kea'",
62
+ '',
63
+ 'export const firstLogic = kea({',
64
+ ' actions: () => ({ first: true }),',
65
+ '})',
66
+ '',
67
+ ].join('\n'));
68
+ writeFile(secondLogicPath, [
69
+ "import { kea } from 'kea'",
70
+ "import { firstLogic } from './firstLogic'",
71
+ '',
72
+ 'export const secondLogic = kea({',
73
+ ' connect: { values: [firstLogic, ["first"]] },',
74
+ '})',
75
+ '',
76
+ ].join('\n'));
77
+ writeFile(unrelatedLogicPath, [
78
+ "import { kea } from 'kea'",
79
+ '',
80
+ 'export const unrelatedLogic = kea({',
81
+ ' actions: () => ({ unrelated: true }),',
82
+ '})',
83
+ '',
84
+ ].join('\n'));
85
+ const program = createProgram([firstLogicPath, secondLogicPath, unrelatedLogicPath]);
86
+ const plan = (0, watch_1.planWatchTypegenPass)(program, [
87
+ { fileName: firstLogicPath, eventKind: ts.FileWatcherEventKind.Changed },
88
+ ]);
89
+ expect(plan).toEqual({
90
+ kind: 'files',
91
+ sourceFilePaths: [firstLogicPath, secondLogicPath].sort(),
92
+ reason: '2 affected Kea logic files',
93
+ });
94
+ }
95
+ finally {
96
+ fs.rmSync(tempDir, { recursive: true, force: true });
97
+ }
98
+ });
99
+ test('watch planner regenerates logics affected by a helper type edit', () => {
100
+ const tempDir = fs.mkdtempSync(path.join(os.tmpdir(), 'kea-typegen-watch-helper-'));
101
+ try {
102
+ const logicDir = path.join(tempDir, 'src');
103
+ const helperPath = path.join(logicDir, 'helper.ts');
104
+ const logicPath = path.join(logicDir, 'logic.ts');
105
+ const unrelatedLogicPath = path.join(logicDir, 'unrelatedLogic.ts');
106
+ const keaDtsPath = path.join(tempDir, 'node_modules', 'kea', 'index.d.ts');
107
+ writeFile(keaDtsPath, 'export function kea<T = any>(input: any): T\n');
108
+ writeFile(helperPath, 'export interface HelperType { value: string }\n');
109
+ writeFile(logicPath, [
110
+ "import { kea } from 'kea'",
111
+ "import type { HelperType } from './helper'",
112
+ '',
113
+ 'export const logic = kea({',
114
+ ' actions: () => ({ setValue: (value: HelperType) => ({ value }) }),',
115
+ '})',
116
+ '',
117
+ ].join('\n'));
118
+ writeFile(unrelatedLogicPath, [
119
+ "import { kea } from 'kea'",
120
+ '',
121
+ 'export const unrelatedLogic = kea({',
122
+ ' actions: () => ({ unrelated: true }),',
123
+ '})',
124
+ '',
125
+ ].join('\n'));
126
+ const program = createProgram([helperPath, logicPath, unrelatedLogicPath]);
127
+ const plan = (0, watch_1.planWatchTypegenPass)(program, [
128
+ { fileName: helperPath, eventKind: ts.FileWatcherEventKind.Changed },
129
+ ]);
130
+ expect(plan).toEqual({
131
+ kind: 'files',
132
+ sourceFilePaths: [logicPath],
133
+ reason: '1 affected Kea logic file',
134
+ });
135
+ }
136
+ finally {
137
+ fs.rmSync(tempDir, { recursive: true, force: true });
138
+ }
139
+ });
140
+ test('watch planner maps generated type changes back to source logics and dependents', () => {
141
+ const tempDir = fs.mkdtempSync(path.join(os.tmpdir(), 'kea-typegen-watch-type-file-'));
142
+ try {
143
+ const logicDir = path.join(tempDir, 'src');
144
+ const firstLogicPath = path.join(logicDir, 'firstLogic.ts');
145
+ const firstLogicTypePath = path.join(logicDir, 'firstLogicType.ts');
146
+ const secondLogicPath = path.join(logicDir, 'secondLogic.ts');
147
+ const keaDtsPath = path.join(tempDir, 'node_modules', 'kea', 'index.d.ts');
148
+ writeFile(keaDtsPath, 'export function kea<T = any>(input: any): T\n');
149
+ writeFile(firstLogicTypePath, 'export interface firstLogicType {}\n');
150
+ writeFile(firstLogicPath, [
151
+ "import { kea } from 'kea'",
152
+ "import type { firstLogicType } from './firstLogicType'",
153
+ '',
154
+ 'export const firstLogic = kea<firstLogicType>({',
155
+ ' actions: () => ({ first: true }),',
156
+ '})',
157
+ '',
158
+ ].join('\n'));
159
+ writeFile(secondLogicPath, [
160
+ "import { kea } from 'kea'",
161
+ "import { firstLogic } from './firstLogic'",
162
+ '',
163
+ 'export const secondLogic = kea({',
164
+ ' connect: { actions: [firstLogic, ["first"]] },',
165
+ '})',
166
+ '',
167
+ ].join('\n'));
168
+ const program = createProgram([firstLogicPath, firstLogicTypePath, secondLogicPath]);
169
+ const plan = (0, watch_1.planWatchTypegenPass)(program, [
170
+ { fileName: firstLogicTypePath, eventKind: ts.FileWatcherEventKind.Changed },
171
+ ]);
172
+ expect(plan).toEqual({
173
+ kind: 'files',
174
+ sourceFilePaths: [firstLogicPath, secondLogicPath].sort(),
175
+ reason: '2 affected Kea logic files',
176
+ });
177
+ }
178
+ finally {
179
+ fs.rmSync(tempDir, { recursive: true, force: true });
180
+ }
181
+ });
182
+ test('watch planner falls back to a full pass for deleted files and resetContext changes', () => {
183
+ const tempDir = fs.mkdtempSync(path.join(os.tmpdir(), 'kea-typegen-watch-full-'));
184
+ try {
185
+ const logicDir = path.join(tempDir, 'src');
186
+ const logicPath = path.join(logicDir, 'logic.ts');
187
+ const contextPath = path.join(logicDir, 'context.ts');
188
+ const keaDtsPath = path.join(tempDir, 'node_modules', 'kea', 'index.d.ts');
189
+ writeFile(keaDtsPath, 'export function kea<T = any>(input: any): T\n');
190
+ writeFile(logicPath, [
191
+ "import { kea } from 'kea'",
192
+ '',
193
+ 'export const logic = kea({',
194
+ ' actions: () => ({ value: true }),',
195
+ '})',
196
+ '',
197
+ ].join('\n'));
198
+ writeFile(contextPath, ["import { resetContext } from 'kea'", '', 'resetContext({ plugins: [] })', ''].join('\n'));
199
+ const program = createProgram([logicPath, contextPath]);
200
+ expect((0, watch_1.planWatchTypegenPass)(program, [{ fileName: logicPath, eventKind: ts.FileWatcherEventKind.Deleted }])).toEqual({ kind: 'full', reason: 'deleted file detected' });
201
+ expect((0, watch_1.planWatchTypegenPass)(program, [{ fileName: contextPath, eventKind: ts.FileWatcherEventKind.Changed }])).toEqual({
202
+ kind: 'full',
203
+ reason: `resetContext changed: ${path.relative(process.cwd(), contextPath)}`,
204
+ });
205
+ }
206
+ finally {
207
+ fs.rmSync(tempDir, { recursive: true, force: true });
208
+ }
209
+ });
32
210
  //# sourceMappingURL=watch.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"watch.js","sourceRoot":"","sources":["../../../src/__tests__/watch.ts"],"names":[],"mappings":";;AAAA,iDAAqC;AACrC,6BAA4B;AAE5B,IAAI,CACA,uDAAuD,EACvD,KAAK,IAAI,EAAE;IACP,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;IACpD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,sCAAsC,CAAC,CAAA;IAE9E,MAAM,MAAM,GAAG,MAAM,IAAI,OAAO,CAC5B,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAChB,MAAM,KAAK,GAAG,IAAA,qBAAK,EAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,EAAE;YAChD,GAAG,EAAE,QAAQ;YACb,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE;SAC5C,CAAC,CAAA;QAEF,IAAI,MAAM,GAAG,EAAE,CAAA;QACf,IAAI,MAAM,GAAG,EAAE,CAAA;QAEf,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;YAC9B,MAAM,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAA;QAC9B,CAAC,CAAC,CAAA;QAEF,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;YAC9B,MAAM,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAA;QAC9B,CAAC,CAAC,CAAA;QAEF,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;QACzB,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAA;IAClF,CAAC,CACJ,CAAA;IAED,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAA;IAChC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAE3B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAA;IAEhD,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;IAC1C,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;IAC5C,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AAClC,CAAC,EACD,KAAK,CACR,CAAA"}
1
+ {"version":3,"file":"watch.js","sourceRoot":"","sources":["../../../src/__tests__/watch.ts"],"names":[],"mappings":"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"}
@@ -38,6 +38,10 @@ yargs
38
38
  .option('delete', { describe: 'Delete logicType.ts files without a corresponding logic.ts', type: 'boolean' })
39
39
  .option('add-ts-nocheck', { describe: 'Add @ts-nocheck to top of logicType.ts files', type: 'boolean' })
40
40
  .option('convert-to-builders', { describe: 'Convert Kea 2.0 inputs to Kea 3.0 logic builders', type: 'boolean' })
41
+ .option('inline', {
42
+ describe: 'Write logic types as MakeLogicType blocks above each kea() call, instead of logicType.ts files',
43
+ type: 'boolean',
44
+ })
41
45
  .option('import-global-types', {
42
46
  describe: 'Add import statements in logicType.ts files for global types (e.g. @types/node)',
43
47
  type: 'boolean',
@@ -1 +1 @@
1
- {"version":3,"file":"typegen.js","sourceRoot":"","sources":["../../../src/cli/typegen.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"typegen.js","sourceRoot":"","sources":["../../../src/cli/typegen.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,12 @@ export declare function printToFiles(program: Program, appOptions: AppOptions, p
6
6
  writtenFiles: number;
7
7
  filesToModify: number;
8
8
  }>;
9
+ export interface TypeImportEntry {
10
+ list: string[];
11
+ fullPath: string;
12
+ finalPath: string;
13
+ }
14
+ export declare function buildTypeImportEntries(typeReferencesToImportFromFiles: Record<string, Set<string>>, importIntoFile: string, nodeModulesPath: string, shouldIgnore: (absolutePath: string) => boolean): TypeImportEntry[];
9
15
  export declare function nodeToString(node: Node): string;
10
16
  export declare function parsedLogicToTypeString(parsedLogic: ParsedLogic, appOptions?: AppOptions): string;
11
17
  export declare function printLogicType(parsedLogic: ParsedLogic, appOptions?: AppOptions): void;