@kardoe/quickback 0.4.3 → 0.5.1
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.
- package/dist/commands/compile.js +5 -5
- package/dist/commands/compile.js.map +1 -1
- package/dist/commands/create.js +3 -3
- package/dist/commands/create.js.map +1 -1
- package/dist/index.js +29 -28
- package/dist/index.js.map +1 -1
- package/dist/lib/api-client.d.ts.map +1 -1
- package/dist/lib/api-client.js +22 -2
- package/dist/lib/api-client.js.map +1 -1
- package/dist/lib/async-utils.d.ts +6 -0
- package/dist/lib/async-utils.d.ts.map +1 -0
- package/dist/lib/async-utils.js +26 -0
- package/dist/lib/async-utils.js.map +1 -0
- package/dist/lib/file-loader.d.ts +9 -11
- package/dist/lib/file-loader.d.ts.map +1 -1
- package/dist/lib/file-loader.js +167 -157
- package/dist/lib/file-loader.js.map +1 -1
- package/dist/lib/file-writer.d.ts +4 -7
- package/dist/lib/file-writer.d.ts.map +1 -1
- package/dist/lib/file-writer.js +42 -32
- package/dist/lib/file-writer.js.map +1 -1
- package/package.json +12 -4
package/dist/lib/file-loader.js
CHANGED
|
@@ -4,24 +4,75 @@
|
|
|
4
4
|
* Loads configuration and feature definitions from disk.
|
|
5
5
|
* This is CLI-side only - reads files and prepares them for the API.
|
|
6
6
|
*
|
|
7
|
-
*
|
|
8
|
-
* 1. Legacy mode: schema.ts + resource.ts separate files
|
|
9
|
-
* 2. Combined mode: defineTable() in *.ts files (schema + config together)
|
|
7
|
+
* Uses combined mode: defineTable() in *.ts files (schema + config together)
|
|
10
8
|
*/
|
|
11
|
-
import {
|
|
9
|
+
import { promises as fs } from 'fs';
|
|
12
10
|
import { join, basename, dirname } from 'path';
|
|
11
|
+
import { createHash } from 'crypto';
|
|
13
12
|
import { build } from 'esbuild';
|
|
14
|
-
import { tmpdir } from 'os';
|
|
15
13
|
import { fileURLToPath } from 'url';
|
|
14
|
+
import { pathExists, runWithLimit } from './async-utils.js';
|
|
16
15
|
// Get the directory of this file for resolving stubs
|
|
17
16
|
const __filename = fileURLToPath(import.meta.url);
|
|
18
17
|
const __dirname = dirname(__filename);
|
|
19
18
|
const stubsPath = join(__dirname, 'compiler-stubs.js');
|
|
19
|
+
const READ_CONCURRENCY = 8;
|
|
20
|
+
let tsModulePromise = null;
|
|
21
|
+
async function getTypescript() {
|
|
22
|
+
if (!tsModulePromise) {
|
|
23
|
+
tsModulePromise = import('typescript').catch(() => null);
|
|
24
|
+
}
|
|
25
|
+
return tsModulePromise;
|
|
26
|
+
}
|
|
27
|
+
async function parseTableDefinitions(source) {
|
|
28
|
+
try {
|
|
29
|
+
const ts = await getTypescript();
|
|
30
|
+
if (!ts)
|
|
31
|
+
throw new Error('typescript not available');
|
|
32
|
+
const sourceFile = ts.createSourceFile('feature.ts', source, ts.ScriptTarget.Latest, true, ts.ScriptKind.TS);
|
|
33
|
+
const tableNames = [];
|
|
34
|
+
let hasResourceConfig = false;
|
|
35
|
+
const isTableCallee = (expr) => {
|
|
36
|
+
if (ts.isIdentifier(expr)) {
|
|
37
|
+
return expr.text === 'pgTable' || expr.text === 'sqliteTable';
|
|
38
|
+
}
|
|
39
|
+
if (ts.isPropertyAccessExpression(expr)) {
|
|
40
|
+
return expr.name.text === 'pgTable' || expr.name.text === 'sqliteTable';
|
|
41
|
+
}
|
|
42
|
+
return false;
|
|
43
|
+
};
|
|
44
|
+
const visit = (node) => {
|
|
45
|
+
if (ts.isExportAssignment(node)) {
|
|
46
|
+
const expr = node.expression;
|
|
47
|
+
if (ts.isCallExpression(expr) && ts.isIdentifier(expr.expression) && expr.expression.text === 'defineTable') {
|
|
48
|
+
hasResourceConfig = true;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
if (ts.isVariableStatement(node) && node.modifiers?.some(m => m.kind === ts.SyntaxKind.ExportKeyword)) {
|
|
52
|
+
for (const decl of node.declarationList.declarations) {
|
|
53
|
+
if (ts.isIdentifier(decl.name) && decl.initializer && ts.isCallExpression(decl.initializer)) {
|
|
54
|
+
if (isTableCallee(decl.initializer.expression)) {
|
|
55
|
+
tableNames.push(decl.name.text);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
ts.forEachChild(node, visit);
|
|
61
|
+
};
|
|
62
|
+
visit(sourceFile);
|
|
63
|
+
return { tableNames, hasResourceConfig };
|
|
64
|
+
}
|
|
65
|
+
catch {
|
|
66
|
+
const tableMatch = source.match(/export const (\w+)\s*=\s*(?:pg|sqlite)Table/);
|
|
67
|
+
const hasResourceConfig = /export default defineTable/.test(source);
|
|
68
|
+
return { tableNames: tableMatch ? [tableMatch[1]] : [], hasResourceConfig };
|
|
69
|
+
}
|
|
70
|
+
}
|
|
20
71
|
/**
|
|
21
72
|
* Load quickback.config.ts from disk
|
|
22
73
|
*/
|
|
23
74
|
export async function loadConfig(configPath) {
|
|
24
|
-
if (!
|
|
75
|
+
if (!(await pathExists(configPath))) {
|
|
25
76
|
throw new Error(`Config file not found: ${configPath}`);
|
|
26
77
|
}
|
|
27
78
|
const config = await loadTypeScriptFile(configPath);
|
|
@@ -52,128 +103,85 @@ export async function loadConfig(configPath) {
|
|
|
52
103
|
* Load all features from definitions/features/
|
|
53
104
|
*/
|
|
54
105
|
export async function loadFeatures(featuresDir) {
|
|
55
|
-
if (!
|
|
106
|
+
if (!(await pathExists(featuresDir))) {
|
|
56
107
|
return [];
|
|
57
108
|
}
|
|
58
|
-
const
|
|
59
|
-
const featureDirs =
|
|
60
|
-
|
|
61
|
-
|
|
109
|
+
const entries = await fs.readdir(featuresDir, { withFileTypes: true });
|
|
110
|
+
const featureDirs = entries
|
|
111
|
+
.filter((d) => d.isDirectory())
|
|
112
|
+
.map((d) => d.name);
|
|
113
|
+
const results = new Array(featureDirs.length);
|
|
114
|
+
await runWithLimit(featureDirs.map((name, index) => ({ name, index })), READ_CONCURRENCY, async ({ name, index }) => {
|
|
115
|
+
const featureDir = join(featuresDir, name);
|
|
116
|
+
results[index] = await loadFeature(name, featureDir);
|
|
62
117
|
});
|
|
63
|
-
|
|
64
|
-
const featureDir = join(featuresDir, featureName);
|
|
65
|
-
const feature = await loadFeature(featureName, featureDir);
|
|
66
|
-
if (feature) {
|
|
67
|
-
features.push(feature);
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
return features;
|
|
118
|
+
return results.filter((f) => Boolean(f));
|
|
71
119
|
}
|
|
72
120
|
/**
|
|
73
121
|
* Load a single feature from its directory
|
|
74
122
|
*
|
|
75
|
-
*
|
|
76
|
-
* 1. Legacy mode: schema.ts + resource.ts separate files
|
|
77
|
-
* 2. Combined mode: defineTable() in *.ts files (schema + config together)
|
|
78
|
-
*
|
|
79
|
-
* Detection:
|
|
80
|
-
* - If schema.ts exists → legacy mode
|
|
81
|
-
* - If no schema.ts but *.ts files with sqliteTable/pgTable → combined mode
|
|
123
|
+
* Uses combined mode: defineTable() in *.ts files (schema + config together)
|
|
82
124
|
*
|
|
83
125
|
* Sends source code strings to the server for parsing.
|
|
84
126
|
* This avoids needing drizzle-orm and @quickback/compiler at CLI runtime.
|
|
85
127
|
*/
|
|
86
128
|
async function loadFeature(name, dir) {
|
|
87
|
-
const schemaPath = join(dir, 'schema.ts');
|
|
88
|
-
const resourcePath = join(dir, 'resource.ts');
|
|
89
129
|
const actionsPath = join(dir, 'actions.ts');
|
|
90
|
-
// Load actions source if exists
|
|
130
|
+
// Load actions source if exists
|
|
91
131
|
let actionsSource;
|
|
92
|
-
if (
|
|
93
|
-
actionsSource =
|
|
132
|
+
if (await pathExists(actionsPath)) {
|
|
133
|
+
actionsSource = await fs.readFile(actionsPath, 'utf-8');
|
|
94
134
|
}
|
|
95
|
-
// Load handler files if handlers/ or actions/ directory exists
|
|
135
|
+
// Load handler files if handlers/ or actions/ directory exists
|
|
96
136
|
let handlerFiles;
|
|
97
137
|
// Check handlers/ directory
|
|
98
138
|
const handlersDir = join(dir, 'handlers');
|
|
99
|
-
if (
|
|
100
|
-
|
|
101
|
-
const
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
139
|
+
if (await pathExists(handlersDir)) {
|
|
140
|
+
const handlerEntries = await fs.readdir(handlersDir, { withFileTypes: true });
|
|
141
|
+
const tsHandlers = handlerEntries.filter((e) => e.isFile() && e.name.endsWith('.ts'));
|
|
142
|
+
if (tsHandlers.length > 0) {
|
|
143
|
+
handlerFiles = handlerFiles || {};
|
|
144
|
+
await runWithLimit(tsHandlers, READ_CONCURRENCY, async (entry) => {
|
|
145
|
+
handlerFiles[`handlers/${entry.name}`] = await fs.readFile(join(handlersDir, entry.name), 'utf-8');
|
|
146
|
+
});
|
|
105
147
|
}
|
|
106
148
|
}
|
|
107
149
|
// Check actions/ directory (alternative convention)
|
|
108
150
|
const actionsDir = join(dir, 'actions');
|
|
109
|
-
if (
|
|
110
|
-
|
|
111
|
-
const
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
151
|
+
if (await pathExists(actionsDir)) {
|
|
152
|
+
const actionEntries = await fs.readdir(actionsDir, { withFileTypes: true });
|
|
153
|
+
const tsActions = actionEntries.filter((e) => e.isFile() && e.name.endsWith('.ts'));
|
|
154
|
+
if (tsActions.length > 0) {
|
|
155
|
+
handlerFiles = handlerFiles || {};
|
|
156
|
+
await runWithLimit(tsActions, READ_CONCURRENCY, async (entry) => {
|
|
157
|
+
handlerFiles[`actions/${entry.name}`] = await fs.readFile(join(actionsDir, entry.name), 'utf-8');
|
|
158
|
+
});
|
|
115
159
|
}
|
|
116
160
|
}
|
|
117
|
-
//
|
|
118
|
-
if (existsSync(schemaPath)) {
|
|
119
|
-
return loadFeatureLegacy(name, dir, schemaPath, resourcePath, actionsSource, handlerFiles);
|
|
120
|
-
}
|
|
121
|
-
// Try combined mode - scan for table files
|
|
161
|
+
// Load combined mode - scan for table files with defineTable()
|
|
122
162
|
return loadFeatureCombined(name, dir, actionsSource, handlerFiles);
|
|
123
163
|
}
|
|
124
|
-
/**
|
|
125
|
-
* Load feature in legacy mode (schema.ts + resource.ts)
|
|
126
|
-
*/
|
|
127
|
-
async function loadFeatureLegacy(name, dir, schemaPath, resourcePath, actionsSource, handlerFiles) {
|
|
128
|
-
// Load schema source
|
|
129
|
-
const schemaSource = readFileSync(schemaPath, 'utf-8');
|
|
130
|
-
// Parse table name from schema - support both pgTable and sqliteTable
|
|
131
|
-
const pgTableMatch = schemaSource.match(/export const (\w+) = pgTable/);
|
|
132
|
-
const sqliteTableMatch = schemaSource.match(/export const (\w+) = sqliteTable/);
|
|
133
|
-
const tableName = pgTableMatch?.[1] || sqliteTableMatch?.[1] || name;
|
|
134
|
-
// Load resource source if exists (don't evaluate, send to server)
|
|
135
|
-
let resourceSource;
|
|
136
|
-
if (existsSync(resourcePath)) {
|
|
137
|
-
resourceSource = readFileSync(resourcePath, 'utf-8');
|
|
138
|
-
}
|
|
139
|
-
return {
|
|
140
|
-
name,
|
|
141
|
-
schema: {
|
|
142
|
-
tableName,
|
|
143
|
-
columns: {}, // Column parsing happens on server
|
|
144
|
-
source: schemaSource,
|
|
145
|
-
},
|
|
146
|
-
resourceSource,
|
|
147
|
-
actionsSource,
|
|
148
|
-
handlerFiles,
|
|
149
|
-
};
|
|
150
|
-
}
|
|
151
164
|
/**
|
|
152
165
|
* Load feature in combined mode (defineTable in *.ts files)
|
|
153
166
|
*/
|
|
154
167
|
async function loadFeatureCombined(name, dir, actionsSource, handlerFiles) {
|
|
155
|
-
const
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
168
|
+
const entries = await fs.readdir(dir, { withFileTypes: true });
|
|
169
|
+
const files = entries.filter((e) => e.isFile() && e.name.endsWith('.ts') && e.name !== 'actions.ts');
|
|
170
|
+
// Use index-based results to preserve deterministic file ordering
|
|
171
|
+
const results = new Array(files.length);
|
|
172
|
+
await runWithLimit(files.map((entry, index) => ({ entry, index })), READ_CONCURRENCY, async ({ entry, index }) => {
|
|
173
|
+
const file = entry.name;
|
|
159
174
|
const filePath = join(dir, file);
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
const source = readFileSync(filePath, 'utf-8');
|
|
164
|
-
// Check for table export (pgTable or sqliteTable)
|
|
165
|
-
const tableMatch = source.match(/export const (\w+)\s*=\s*(?:pg|sqlite)Table/);
|
|
166
|
-
if (!tableMatch)
|
|
167
|
-
continue;
|
|
168
|
-
// Check for resource config (default export with defineTable)
|
|
169
|
-
const hasResourceConfig = /export default defineTable/.test(source);
|
|
170
|
-
tables.push({
|
|
175
|
+
const source = await fs.readFile(filePath, 'utf-8');
|
|
176
|
+
const { tableNames, hasResourceConfig } = await parseTableDefinitions(source);
|
|
177
|
+
results[index] = tableNames.map((tableName) => ({
|
|
171
178
|
fileName: file,
|
|
172
|
-
tableName
|
|
179
|
+
tableName,
|
|
173
180
|
source,
|
|
174
181
|
hasResourceConfig,
|
|
175
|
-
});
|
|
176
|
-
}
|
|
182
|
+
}));
|
|
183
|
+
});
|
|
184
|
+
const tables = results.filter(Boolean).flat();
|
|
177
185
|
if (tables.length === 0) {
|
|
178
186
|
console.warn(`Feature ${name} has no schema.ts or table definitions, skipping`);
|
|
179
187
|
return null;
|
|
@@ -195,14 +203,29 @@ async function loadFeatureCombined(name, dir, actionsSource, handlerFiles) {
|
|
|
195
203
|
};
|
|
196
204
|
}
|
|
197
205
|
/**
|
|
198
|
-
*
|
|
206
|
+
* Get or create the cache directory for compiled config files.
|
|
207
|
+
*/
|
|
208
|
+
async function getCacheDir() {
|
|
209
|
+
const cacheDir = join(process.cwd(), 'node_modules', '.cache', 'quickback');
|
|
210
|
+
if (!(await pathExists(cacheDir))) {
|
|
211
|
+
await fs.mkdir(cacheDir, { recursive: true });
|
|
212
|
+
}
|
|
213
|
+
return cacheDir;
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Load and evaluate a TypeScript file.
|
|
217
|
+
* Caches the esbuild output keyed by source content hash to skip
|
|
218
|
+
* recompilation when the config hasn't changed (~500-800ms savings).
|
|
199
219
|
*/
|
|
200
220
|
async function loadTypeScriptFile(filePath) {
|
|
201
|
-
const
|
|
202
|
-
|
|
221
|
+
const source = await fs.readFile(filePath, 'utf-8');
|
|
222
|
+
const hash = createHash('sha256').update(source).digest('hex').slice(0, 16);
|
|
223
|
+
const cacheDir = await getCacheDir();
|
|
224
|
+
const cachedFile = join(cacheDir, `${basename(filePath, '.ts')}-${hash}.mjs`);
|
|
225
|
+
if (!(await pathExists(cachedFile))) {
|
|
203
226
|
await build({
|
|
204
227
|
entryPoints: [filePath],
|
|
205
|
-
outfile,
|
|
228
|
+
outfile: cachedFile,
|
|
206
229
|
bundle: true,
|
|
207
230
|
format: 'esm',
|
|
208
231
|
platform: 'node',
|
|
@@ -217,31 +240,20 @@ async function loadTypeScriptFile(filePath) {
|
|
|
217
240
|
},
|
|
218
241
|
logLevel: 'silent',
|
|
219
242
|
});
|
|
220
|
-
// Dynamic import the built file
|
|
221
|
-
const module = await import(outfile);
|
|
222
|
-
return module;
|
|
223
|
-
}
|
|
224
|
-
finally {
|
|
225
|
-
// Cleanup temp file
|
|
226
|
-
try {
|
|
227
|
-
const { unlinkSync } = await import('fs');
|
|
228
|
-
unlinkSync(outfile);
|
|
229
|
-
}
|
|
230
|
-
catch {
|
|
231
|
-
// Ignore cleanup errors
|
|
232
|
-
}
|
|
233
243
|
}
|
|
244
|
+
const module = await import(cachedFile);
|
|
245
|
+
return module;
|
|
234
246
|
}
|
|
235
247
|
/**
|
|
236
248
|
* Find the config file path
|
|
237
249
|
*/
|
|
238
|
-
export function findConfigPath(startDir = process.cwd()) {
|
|
250
|
+
export async function findConfigPath(startDir = process.cwd()) {
|
|
239
251
|
const candidates = [
|
|
240
252
|
join(startDir, 'quickback.config.ts'),
|
|
241
253
|
join(startDir, 'quickback', 'quickback.config.ts'),
|
|
242
254
|
];
|
|
243
255
|
for (const candidate of candidates) {
|
|
244
|
-
if (
|
|
256
|
+
if (await pathExists(candidate)) {
|
|
245
257
|
return candidate;
|
|
246
258
|
}
|
|
247
259
|
}
|
|
@@ -250,14 +262,14 @@ export function findConfigPath(startDir = process.cwd()) {
|
|
|
250
262
|
/**
|
|
251
263
|
* Find the features directory
|
|
252
264
|
*/
|
|
253
|
-
export function findFeaturesDir(startDir = process.cwd()) {
|
|
265
|
+
export async function findFeaturesDir(startDir = process.cwd()) {
|
|
254
266
|
const candidates = [
|
|
255
267
|
join(startDir, 'quickback', 'features'), // New: quickback/features/
|
|
256
268
|
join(startDir, 'definitions', 'features'), // Legacy: definitions/features/
|
|
257
269
|
join(startDir, 'quickback', 'definitions', 'features'), // Legacy nested
|
|
258
270
|
];
|
|
259
271
|
for (const candidate of candidates) {
|
|
260
|
-
if (
|
|
272
|
+
if (await pathExists(candidate)) {
|
|
261
273
|
return candidate;
|
|
262
274
|
}
|
|
263
275
|
}
|
|
@@ -266,14 +278,14 @@ export function findFeaturesDir(startDir = process.cwd()) {
|
|
|
266
278
|
/**
|
|
267
279
|
* Find the services directory
|
|
268
280
|
*/
|
|
269
|
-
export function findServicesDir(startDir = process.cwd()) {
|
|
281
|
+
export async function findServicesDir(startDir = process.cwd()) {
|
|
270
282
|
const candidates = [
|
|
271
283
|
join(startDir, 'quickback', 'services'), // New: quickback/services/
|
|
272
284
|
join(startDir, 'definitions', 'services'), // Legacy: definitions/services/
|
|
273
285
|
join(startDir, 'quickback', 'definitions', 'services'), // Legacy nested
|
|
274
286
|
];
|
|
275
287
|
for (const candidate of candidates) {
|
|
276
|
-
if (
|
|
288
|
+
if (await pathExists(candidate)) {
|
|
277
289
|
return candidate;
|
|
278
290
|
}
|
|
279
291
|
}
|
|
@@ -286,17 +298,17 @@ export async function loadServices(servicesDir) {
|
|
|
286
298
|
const services = {};
|
|
287
299
|
// Load queue handlers from services/queues/
|
|
288
300
|
const queuesDir = join(servicesDir, 'queues');
|
|
289
|
-
if (
|
|
301
|
+
if (await pathExists(queuesDir)) {
|
|
290
302
|
services.queues = await loadQueueHandlers(queuesDir);
|
|
291
303
|
}
|
|
292
304
|
// Load realtime definitions from services/realtime/
|
|
293
305
|
const realtimeDir = join(servicesDir, 'realtime');
|
|
294
|
-
if (
|
|
306
|
+
if (await pathExists(realtimeDir)) {
|
|
295
307
|
services.realtime = await loadRealtimeDefinitions(realtimeDir);
|
|
296
308
|
}
|
|
297
309
|
// Load embedding definitions from services/embeddings/
|
|
298
310
|
const embeddingsDir = join(servicesDir, 'embeddings');
|
|
299
|
-
if (
|
|
311
|
+
if (await pathExists(embeddingsDir)) {
|
|
300
312
|
services.embeddings = await loadEmbeddingDefinitions(embeddingsDir);
|
|
301
313
|
}
|
|
302
314
|
return services;
|
|
@@ -306,22 +318,22 @@ export async function loadServices(servicesDir) {
|
|
|
306
318
|
*/
|
|
307
319
|
async function loadQueueHandlers(queuesDir) {
|
|
308
320
|
const handlers = [];
|
|
309
|
-
const
|
|
310
|
-
|
|
321
|
+
const entries = await fs.readdir(queuesDir, { withFileTypes: true });
|
|
322
|
+
const files = entries
|
|
323
|
+
.filter((e) => e.isFile() && e.name.endsWith('.ts') && !e.name.startsWith('_'))
|
|
324
|
+
.map((e) => e.name);
|
|
325
|
+
await runWithLimit(files, READ_CONCURRENCY, async (file) => {
|
|
311
326
|
const filePath = join(queuesDir, file);
|
|
312
|
-
|
|
313
|
-
if (statSync(filePath).isDirectory())
|
|
314
|
-
continue;
|
|
315
|
-
const source = readFileSync(filePath, 'utf-8');
|
|
327
|
+
const source = await fs.readFile(filePath, 'utf-8');
|
|
316
328
|
// Check for defineQueue
|
|
317
329
|
if (!source.includes('defineQueue'))
|
|
318
|
-
|
|
330
|
+
return;
|
|
319
331
|
// Extract name and messageType from source
|
|
320
332
|
const nameMatch = source.match(/name\s*:\s*['"]([^'"]+)['"]/);
|
|
321
333
|
const messageTypeMatch = source.match(/messageType\s*:\s*['"]([^'"]+)['"]/);
|
|
322
334
|
if (!nameMatch || !messageTypeMatch) {
|
|
323
335
|
console.warn(`Queue handler ${file} missing required name or messageType, skipping`);
|
|
324
|
-
|
|
336
|
+
return;
|
|
325
337
|
}
|
|
326
338
|
handlers.push({
|
|
327
339
|
fileName: file,
|
|
@@ -329,7 +341,7 @@ async function loadQueueHandlers(queuesDir) {
|
|
|
329
341
|
messageType: messageTypeMatch[1],
|
|
330
342
|
source,
|
|
331
343
|
});
|
|
332
|
-
}
|
|
344
|
+
});
|
|
333
345
|
return handlers;
|
|
334
346
|
}
|
|
335
347
|
/**
|
|
@@ -337,16 +349,16 @@ async function loadQueueHandlers(queuesDir) {
|
|
|
337
349
|
*/
|
|
338
350
|
async function loadRealtimeDefinitions(realtimeDir) {
|
|
339
351
|
const definitions = [];
|
|
340
|
-
const
|
|
341
|
-
|
|
352
|
+
const entries = await fs.readdir(realtimeDir, { withFileTypes: true });
|
|
353
|
+
const files = entries
|
|
354
|
+
.filter((e) => e.isFile() && e.name.endsWith('.ts') && !e.name.startsWith('_'))
|
|
355
|
+
.map((e) => e.name);
|
|
356
|
+
await runWithLimit(files, READ_CONCURRENCY, async (file) => {
|
|
342
357
|
const filePath = join(realtimeDir, file);
|
|
343
|
-
|
|
344
|
-
if (statSync(filePath).isDirectory())
|
|
345
|
-
continue;
|
|
346
|
-
const source = readFileSync(filePath, 'utf-8');
|
|
358
|
+
const source = await fs.readFile(filePath, 'utf-8');
|
|
347
359
|
// Check for defineRealtime
|
|
348
360
|
if (!source.includes('defineRealtime'))
|
|
349
|
-
|
|
361
|
+
return;
|
|
350
362
|
// Extract name from source
|
|
351
363
|
const nameMatch = source.match(/name\s*:\s*['"]([^'"]+)['"]/);
|
|
352
364
|
// Extract events array
|
|
@@ -359,7 +371,7 @@ async function loadRealtimeDefinitions(realtimeDir) {
|
|
|
359
371
|
}
|
|
360
372
|
if (!nameMatch || events.length === 0) {
|
|
361
373
|
console.warn(`Realtime definition ${file} missing required name or events, skipping`);
|
|
362
|
-
|
|
374
|
+
return;
|
|
363
375
|
}
|
|
364
376
|
definitions.push({
|
|
365
377
|
fileName: file,
|
|
@@ -367,7 +379,7 @@ async function loadRealtimeDefinitions(realtimeDir) {
|
|
|
367
379
|
events,
|
|
368
380
|
source,
|
|
369
381
|
});
|
|
370
|
-
}
|
|
382
|
+
});
|
|
371
383
|
return definitions;
|
|
372
384
|
}
|
|
373
385
|
/**
|
|
@@ -375,23 +387,23 @@ async function loadRealtimeDefinitions(realtimeDir) {
|
|
|
375
387
|
*/
|
|
376
388
|
async function loadEmbeddingDefinitions(embeddingsDir) {
|
|
377
389
|
const definitions = [];
|
|
378
|
-
const
|
|
379
|
-
|
|
390
|
+
const entries = await fs.readdir(embeddingsDir, { withFileTypes: true });
|
|
391
|
+
const files = entries
|
|
392
|
+
.filter((e) => e.isFile() && e.name.endsWith('.ts') && !e.name.startsWith('_'))
|
|
393
|
+
.map((e) => e.name);
|
|
394
|
+
await runWithLimit(files, READ_CONCURRENCY, async (file) => {
|
|
380
395
|
const filePath = join(embeddingsDir, file);
|
|
381
|
-
|
|
382
|
-
if (statSync(filePath).isDirectory())
|
|
383
|
-
continue;
|
|
384
|
-
const sourceCode = readFileSync(filePath, 'utf-8');
|
|
396
|
+
const sourceCode = await fs.readFile(filePath, 'utf-8');
|
|
385
397
|
// Check for defineEmbedding
|
|
386
398
|
if (!sourceCode.includes('defineEmbedding'))
|
|
387
|
-
|
|
399
|
+
return;
|
|
388
400
|
// Extract name from source
|
|
389
401
|
const nameMatch = sourceCode.match(/name\s*:\s*['"]([^'"]+)['"]/);
|
|
390
402
|
// Extract source table from source
|
|
391
403
|
const sourceMatch = sourceCode.match(/source\s*:\s*['"]([^'"]+)['"]/);
|
|
392
404
|
if (!nameMatch || !sourceMatch) {
|
|
393
405
|
console.warn(`Embedding definition ${file} missing required name or source, skipping`);
|
|
394
|
-
|
|
406
|
+
return;
|
|
395
407
|
}
|
|
396
408
|
definitions.push({
|
|
397
409
|
fileName: file,
|
|
@@ -399,14 +411,14 @@ async function loadEmbeddingDefinitions(embeddingsDir) {
|
|
|
399
411
|
source: sourceMatch[1],
|
|
400
412
|
sourceCode,
|
|
401
413
|
});
|
|
402
|
-
}
|
|
414
|
+
});
|
|
403
415
|
return definitions;
|
|
404
416
|
}
|
|
405
417
|
/**
|
|
406
418
|
* Load existing drizzle migration state (meta files and journal)
|
|
407
419
|
* This allows the compiler to generate incremental migrations (ALTER vs CREATE)
|
|
408
420
|
*/
|
|
409
|
-
export function loadDrizzleMeta(projectRoot) {
|
|
421
|
+
export async function loadDrizzleMeta(projectRoot) {
|
|
410
422
|
const metaFiles = {};
|
|
411
423
|
// Check for features drizzle meta (dual database mode)
|
|
412
424
|
const featuresMeta = join(projectRoot, 'drizzle', 'features', 'meta');
|
|
@@ -414,11 +426,11 @@ export function loadDrizzleMeta(projectRoot) {
|
|
|
414
426
|
// Determine which meta dir exists and its relative path for the compiler
|
|
415
427
|
let metaDir = null;
|
|
416
428
|
let relativePath = '';
|
|
417
|
-
if (
|
|
429
|
+
if (await pathExists(featuresMeta)) {
|
|
418
430
|
metaDir = featuresMeta;
|
|
419
431
|
relativePath = 'drizzle/features/meta';
|
|
420
432
|
}
|
|
421
|
-
else if (
|
|
433
|
+
else if (await pathExists(legacyMeta)) {
|
|
422
434
|
metaDir = legacyMeta;
|
|
423
435
|
relativePath = 'drizzle/meta';
|
|
424
436
|
}
|
|
@@ -426,13 +438,11 @@ export function loadDrizzleMeta(projectRoot) {
|
|
|
426
438
|
return undefined;
|
|
427
439
|
}
|
|
428
440
|
try {
|
|
429
|
-
const files =
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
}
|
|
435
|
-
}
|
|
441
|
+
const files = await fs.readdir(metaDir);
|
|
442
|
+
await runWithLimit(files.filter((file) => file.endsWith('.json')), READ_CONCURRENCY, async (file) => {
|
|
443
|
+
const filePath = join(metaDir, file);
|
|
444
|
+
metaFiles[`${relativePath}/${file}`] = await fs.readFile(filePath, 'utf-8');
|
|
445
|
+
});
|
|
436
446
|
return Object.keys(metaFiles).length > 0 ? metaFiles : undefined;
|
|
437
447
|
}
|
|
438
448
|
catch {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-loader.js","sourceRoot":"","sources":["../../src/lib/file-loader.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"file-loader.js","sourceRoot":"","sources":["../../src/lib/file-loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,14 +9,11 @@ export interface GeneratedFile {
|
|
|
9
9
|
type?: string;
|
|
10
10
|
feature?: string;
|
|
11
11
|
}
|
|
12
|
-
|
|
13
|
-
* Clean and recreate output directory (used for testing only)
|
|
14
|
-
*/
|
|
15
|
-
export declare function cleanOutputDir(dir: string): void;
|
|
12
|
+
export declare function cleanOutputDir(dir: string): Promise<void>;
|
|
16
13
|
/**
|
|
17
14
|
* Write generated files to disk (overwrites all)
|
|
18
15
|
*/
|
|
19
|
-
export declare function writeFiles(outputDir: string, files: GeneratedFile[]): void
|
|
16
|
+
export declare function writeFiles(outputDir: string, files: GeneratedFile[]): Promise<void>;
|
|
20
17
|
/**
|
|
21
18
|
* Write generated files with smart merge strategy
|
|
22
19
|
*
|
|
@@ -25,9 +22,9 @@ export declare function writeFiles(outputDir: string, files: GeneratedFile[]): v
|
|
|
25
22
|
* - package.json: Merge dependencies
|
|
26
23
|
* - Config files: Overwrite
|
|
27
24
|
*/
|
|
28
|
-
export declare function writeFilesWithMerge(outputDir: string, files: GeneratedFile[]): void
|
|
25
|
+
export declare function writeFilesWithMerge(outputDir: string, files: GeneratedFile[]): Promise<void>;
|
|
29
26
|
/**
|
|
30
27
|
* Write a single file
|
|
31
28
|
*/
|
|
32
|
-
export declare function writeFile(filePath: string, content: string): void
|
|
29
|
+
export declare function writeFile(filePath: string, content: string): Promise<void>;
|
|
33
30
|
//# sourceMappingURL=file-writer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-writer.d.ts","sourceRoot":"","sources":["../../src/lib/file-writer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"file-writer.d.ts","sourceRoot":"","sources":["../../src/lib/file-writer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAOD,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAK/D;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAWzF;AAED;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA6BlG;AAmDD;;GAEG;AACH,wBAAsB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKhF"}
|