pastoria 1.0.11 → 1.0.12
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/CHANGELOG.md +6 -0
- package/dist/build.d.ts +5 -1
- package/dist/build.d.ts.map +1 -1
- package/dist/build.js +245 -4
- package/dist/build.js.map +1 -1
- package/dist/generate.d.ts +27 -1
- package/dist/generate.d.ts.map +1 -1
- package/dist/generate.js +6 -28
- package/dist/generate.js.map +1 -1
- package/dist/index.js +5 -6
- package/dist/index.js.map +1 -1
- package/package.json +18 -8
- package/src/build.ts +333 -6
- package/src/generate.ts +10 -31
- package/src/index.ts +8 -7
package/CHANGELOG.md
CHANGED
package/dist/build.d.ts
CHANGED
|
@@ -2,5 +2,9 @@ import { InlineConfig, type BuildEnvironmentOptions } from 'vite';
|
|
|
2
2
|
export declare const CLIENT_BUILD: BuildEnvironmentOptions;
|
|
3
3
|
export declare const SERVER_BUILD: BuildEnvironmentOptions;
|
|
4
4
|
export declare function createBuildConfig(buildEnv: BuildEnvironmentOptions): InlineConfig;
|
|
5
|
-
export declare function createBuild(
|
|
5
|
+
export declare function createBuild(steps: string[], opts: {
|
|
6
|
+
alwaysMake: boolean;
|
|
7
|
+
release: boolean;
|
|
8
|
+
watch?: boolean;
|
|
9
|
+
}): Promise<void>;
|
|
6
10
|
//# sourceMappingURL=build.d.ts.map
|
package/dist/build.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../src/build.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../src/build.ts"],"names":[],"mappings":"AAOA,OAAO,EAEL,YAAY,EAEZ,KAAK,uBAAuB,EAE7B,MAAM,MAAM,CAAC;AA4Td,eAAO,MAAM,YAAY,EAAE,uBAK1B,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,uBAM1B,CAAC;AAEF,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,uBAAuB,GAChC,YAAY,CAyBd;AAoDD,wBAAsB,WAAW,CAC/B,KAAK,EAAE,MAAM,EAAE,EACf,IAAI,EAAE;IACJ,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,iBAuGF"}
|
package/dist/build.js
CHANGED
|
@@ -1,8 +1,112 @@
|
|
|
1
|
+
import ParcelWatcher, { getEventsSince, writeSnapshot } from '@parcel/watcher';
|
|
1
2
|
import tailwindcss from '@tailwindcss/vite';
|
|
2
3
|
import react from '@vitejs/plugin-react';
|
|
3
|
-
import {
|
|
4
|
+
import { spawn } from 'node:child_process';
|
|
5
|
+
import { access, readFile } from 'node:fs/promises';
|
|
6
|
+
import path from 'node:path';
|
|
7
|
+
import { IndentationText, Project } from 'ts-morph';
|
|
4
8
|
import { build, } from 'vite';
|
|
5
9
|
import { cjsInterop } from 'vite-plugin-cjs-interop';
|
|
10
|
+
import { generatePastoriaArtifacts, generatePastoriaExports, PASTORIA_TAG_REGEX, } from './generate.js';
|
|
11
|
+
const SNAPSHOT_PATH = '.pastoriainfo';
|
|
12
|
+
async function runCommand(command, args) {
|
|
13
|
+
return new Promise((resolve, reject) => {
|
|
14
|
+
const child = spawn(command, args, {
|
|
15
|
+
cwd: process.cwd(),
|
|
16
|
+
stdio: 'inherit', // Stream output to terminal
|
|
17
|
+
shell: true,
|
|
18
|
+
});
|
|
19
|
+
child.on('exit', (code) => {
|
|
20
|
+
if (code === 0) {
|
|
21
|
+
resolve();
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
reject(new Error(`Command failed with exit code ${code}`));
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
child.on('error', reject);
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
async function runGratsCompiler() {
|
|
31
|
+
const gratsPath = path.join(process.cwd(), 'node_modules', '.bin', 'grats');
|
|
32
|
+
await runCommand(gratsPath, []);
|
|
33
|
+
}
|
|
34
|
+
async function runRelayCompiler() {
|
|
35
|
+
const relayPath = path.join(process.cwd(), 'node_modules', '.bin', 'relay-compiler');
|
|
36
|
+
await runCommand(relayPath, []);
|
|
37
|
+
}
|
|
38
|
+
function fileMatchesPastoriaTags(filePath, content) {
|
|
39
|
+
// Skip generated files
|
|
40
|
+
if (filePath.includes('__generated__')) {
|
|
41
|
+
return false;
|
|
42
|
+
}
|
|
43
|
+
return PASTORIA_TAG_REGEX.test(content);
|
|
44
|
+
}
|
|
45
|
+
function fileMatchesGratsTags(filePath, content) {
|
|
46
|
+
// Skip generated files
|
|
47
|
+
if (filePath.includes('__generated__')) {
|
|
48
|
+
return false;
|
|
49
|
+
}
|
|
50
|
+
// Match any Grats JSDoc tag
|
|
51
|
+
return /@gql\w+/.test(content);
|
|
52
|
+
}
|
|
53
|
+
function fileMatchesRelayImports(filePath, content) {
|
|
54
|
+
// Skip generated files
|
|
55
|
+
if (filePath.includes('__generated__')) {
|
|
56
|
+
return false;
|
|
57
|
+
}
|
|
58
|
+
return (/import\s+.*\s+from\s+['"]react-relay['"]/.test(content) ||
|
|
59
|
+
/import\s+.*\s+from\s+['"]relay-runtime['"]/.test(content));
|
|
60
|
+
}
|
|
61
|
+
async function analyzeChangedFiles(events) {
|
|
62
|
+
let needsPastoriaExports = false;
|
|
63
|
+
let needsGratsCompiler = false;
|
|
64
|
+
let needsRelayCompiler = false;
|
|
65
|
+
let needsPastoriaArtifacts = false;
|
|
66
|
+
for (const event of events) {
|
|
67
|
+
const filePath = event.path;
|
|
68
|
+
// Skip non-TypeScript/TSX files
|
|
69
|
+
if (!filePath.match(/\.(ts|tsx)$/)) {
|
|
70
|
+
continue;
|
|
71
|
+
}
|
|
72
|
+
// For delete events, we can't read content, so assume it might affect all pipelines
|
|
73
|
+
if (event.type === 'delete') {
|
|
74
|
+
needsPastoriaExports = true;
|
|
75
|
+
needsGratsCompiler = true;
|
|
76
|
+
needsRelayCompiler = true;
|
|
77
|
+
needsPastoriaArtifacts = true;
|
|
78
|
+
continue;
|
|
79
|
+
}
|
|
80
|
+
// Read file content for create/update events
|
|
81
|
+
try {
|
|
82
|
+
const content = await readFile(filePath, 'utf-8');
|
|
83
|
+
if (fileMatchesPastoriaTags(filePath, content)) {
|
|
84
|
+
needsPastoriaExports = true;
|
|
85
|
+
needsPastoriaArtifacts = true;
|
|
86
|
+
}
|
|
87
|
+
if (fileMatchesGratsTags(filePath, content)) {
|
|
88
|
+
needsGratsCompiler = true;
|
|
89
|
+
needsRelayCompiler = true; // Relay depends on Grats schema
|
|
90
|
+
}
|
|
91
|
+
if (fileMatchesRelayImports(filePath, content)) {
|
|
92
|
+
needsRelayCompiler = true;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
catch {
|
|
96
|
+
// If we can't read the file, assume it might affect all pipelines
|
|
97
|
+
needsPastoriaExports = true;
|
|
98
|
+
needsGratsCompiler = true;
|
|
99
|
+
needsRelayCompiler = true;
|
|
100
|
+
needsPastoriaArtifacts = true;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
return {
|
|
104
|
+
needsPastoriaExports,
|
|
105
|
+
needsGratsCompiler,
|
|
106
|
+
needsRelayCompiler,
|
|
107
|
+
needsPastoriaArtifacts,
|
|
108
|
+
};
|
|
109
|
+
}
|
|
6
110
|
function generateClientEntry({ hasAppRoot }) {
|
|
7
111
|
const appImport = hasAppRoot
|
|
8
112
|
? `import {App} from '#genfiles/router/app_root';`
|
|
@@ -81,6 +185,31 @@ export function createHandler(
|
|
|
81
185
|
}
|
|
82
186
|
`;
|
|
83
187
|
}
|
|
188
|
+
async function executeBuildSteps(project, needs) {
|
|
189
|
+
let rebuiltAnything = false;
|
|
190
|
+
let cachedMetadata = undefined;
|
|
191
|
+
if (needs.needsPastoriaExports) {
|
|
192
|
+
console.log('Running Pastoria exports generation...');
|
|
193
|
+
cachedMetadata = await generatePastoriaExports(project);
|
|
194
|
+
rebuiltAnything = true;
|
|
195
|
+
}
|
|
196
|
+
if (needs.needsGratsCompiler) {
|
|
197
|
+
console.log('Running Grats compiler...');
|
|
198
|
+
await runGratsCompiler();
|
|
199
|
+
rebuiltAnything = true;
|
|
200
|
+
}
|
|
201
|
+
if (needs.needsRelayCompiler) {
|
|
202
|
+
console.log('Running Relay compiler...');
|
|
203
|
+
await runRelayCompiler();
|
|
204
|
+
rebuiltAnything = true;
|
|
205
|
+
}
|
|
206
|
+
if (needs.needsPastoriaArtifacts) {
|
|
207
|
+
console.log('Running Pastoria artifacts generation...');
|
|
208
|
+
await generatePastoriaArtifacts(project, cachedMetadata);
|
|
209
|
+
rebuiltAnything = true;
|
|
210
|
+
}
|
|
211
|
+
return rebuiltAnything;
|
|
212
|
+
}
|
|
84
213
|
async function determineCapabilities() {
|
|
85
214
|
const capabilities = {
|
|
86
215
|
hasAppRoot: false,
|
|
@@ -166,14 +295,126 @@ export function createBuildConfig(buildEnv) {
|
|
|
166
295
|
},
|
|
167
296
|
};
|
|
168
297
|
}
|
|
169
|
-
|
|
170
|
-
|
|
298
|
+
async function createReleaseBuild() {
|
|
299
|
+
await build({
|
|
171
300
|
...createBuildConfig(CLIENT_BUILD),
|
|
172
301
|
configFile: false,
|
|
173
302
|
});
|
|
174
|
-
|
|
303
|
+
await build({
|
|
175
304
|
...createBuildConfig(SERVER_BUILD),
|
|
176
305
|
configFile: false,
|
|
177
306
|
});
|
|
178
307
|
}
|
|
308
|
+
function determineBuildStepsFromArgs(steps) {
|
|
309
|
+
const validSteps = new Set(['schema', 'relay', 'router']);
|
|
310
|
+
const needs = {
|
|
311
|
+
needsPastoriaExports: false,
|
|
312
|
+
needsGratsCompiler: false,
|
|
313
|
+
needsRelayCompiler: false,
|
|
314
|
+
needsPastoriaArtifacts: false,
|
|
315
|
+
};
|
|
316
|
+
for (const step of steps) {
|
|
317
|
+
if (!validSteps.has(step)) {
|
|
318
|
+
throw new Error(`Invalid build step: ${step}. Valid steps are: schema, relay, router`);
|
|
319
|
+
}
|
|
320
|
+
switch (step) {
|
|
321
|
+
case 'schema':
|
|
322
|
+
needs.needsGratsCompiler = true;
|
|
323
|
+
break;
|
|
324
|
+
case 'relay':
|
|
325
|
+
needs.needsRelayCompiler = true;
|
|
326
|
+
break;
|
|
327
|
+
case 'router':
|
|
328
|
+
needs.needsPastoriaExports = true;
|
|
329
|
+
needs.needsPastoriaArtifacts = true;
|
|
330
|
+
break;
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
return needs;
|
|
334
|
+
}
|
|
335
|
+
export async function createBuild(steps, opts) {
|
|
336
|
+
if (opts.watch && opts.release) {
|
|
337
|
+
throw new Error('Cannot use --watch and --release together. Watch mode is for development only.');
|
|
338
|
+
}
|
|
339
|
+
const project = new Project({
|
|
340
|
+
tsConfigFilePath: path.join(process.cwd(), 'tsconfig.json'),
|
|
341
|
+
manipulationSettings: {
|
|
342
|
+
indentationText: IndentationText.TwoSpaces,
|
|
343
|
+
},
|
|
344
|
+
});
|
|
345
|
+
const cwd = process.cwd();
|
|
346
|
+
let needsPastoriaExports = opts.alwaysMake;
|
|
347
|
+
let needsGratsCompiler = opts.alwaysMake;
|
|
348
|
+
let needsRelayCompiler = opts.alwaysMake;
|
|
349
|
+
let needsPastoriaArtifacts = opts.alwaysMake;
|
|
350
|
+
// If specific steps are provided, override automatic inference
|
|
351
|
+
if (steps.length > 0) {
|
|
352
|
+
const stepsNeeds = determineBuildStepsFromArgs(steps);
|
|
353
|
+
needsPastoriaExports = stepsNeeds.needsPastoriaExports;
|
|
354
|
+
needsGratsCompiler = stepsNeeds.needsGratsCompiler;
|
|
355
|
+
needsRelayCompiler = stepsNeeds.needsRelayCompiler;
|
|
356
|
+
needsPastoriaArtifacts = stepsNeeds.needsPastoriaArtifacts;
|
|
357
|
+
}
|
|
358
|
+
// Use @parcel/watcher to get changes since last snapshot
|
|
359
|
+
else if (!opts.alwaysMake) {
|
|
360
|
+
try {
|
|
361
|
+
// Check if snapshot exists - if not, do a full build
|
|
362
|
+
await access(SNAPSHOT_PATH);
|
|
363
|
+
// Get events since last snapshot
|
|
364
|
+
const events = await getEventsSince(cwd, SNAPSHOT_PATH);
|
|
365
|
+
if (events.length > 0) {
|
|
366
|
+
// Analyze which files changed and determine what needs to be rebuilt
|
|
367
|
+
const analysis = await analyzeChangedFiles(events);
|
|
368
|
+
needsPastoriaExports = analysis.needsPastoriaExports;
|
|
369
|
+
needsGratsCompiler = analysis.needsGratsCompiler;
|
|
370
|
+
needsRelayCompiler =
|
|
371
|
+
analysis.needsRelayCompiler || analysis.needsGratsCompiler;
|
|
372
|
+
needsPastoriaArtifacts =
|
|
373
|
+
analysis.needsPastoriaArtifacts || analysis.needsPastoriaExports;
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
catch (err) {
|
|
377
|
+
// No snapshot exists yet, or error reading it - do a full build
|
|
378
|
+
needsPastoriaExports = true;
|
|
379
|
+
needsGratsCompiler = true;
|
|
380
|
+
needsRelayCompiler = true;
|
|
381
|
+
needsPastoriaArtifacts = true;
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
// Execute build pipeline conditionally
|
|
385
|
+
await executeBuildSteps(project, {
|
|
386
|
+
needsPastoriaExports,
|
|
387
|
+
needsGratsCompiler,
|
|
388
|
+
needsRelayCompiler,
|
|
389
|
+
needsPastoriaArtifacts,
|
|
390
|
+
});
|
|
391
|
+
// Write snapshot for next incremental build
|
|
392
|
+
await writeSnapshot(cwd, SNAPSHOT_PATH);
|
|
393
|
+
if (opts.release) {
|
|
394
|
+
await createReleaseBuild();
|
|
395
|
+
}
|
|
396
|
+
// Start watch mode if requested
|
|
397
|
+
if (opts.watch) {
|
|
398
|
+
console.log('Watching for changes...');
|
|
399
|
+
const subscription = await ParcelWatcher.subscribe(cwd, async (err, events) => {
|
|
400
|
+
if (err) {
|
|
401
|
+
console.error('Watch error:', err);
|
|
402
|
+
return;
|
|
403
|
+
}
|
|
404
|
+
// Analyze which files changed and determine what needs to be rebuilt
|
|
405
|
+
const analysis = await analyzeChangedFiles(events);
|
|
406
|
+
const rebuiltAnything = await executeBuildSteps(project, analysis);
|
|
407
|
+
if (rebuiltAnything) {
|
|
408
|
+
// Write snapshot after successful rebuild
|
|
409
|
+
await writeSnapshot(cwd, SNAPSHOT_PATH);
|
|
410
|
+
console.log('Rebuild complete. Watching for changes...');
|
|
411
|
+
}
|
|
412
|
+
});
|
|
413
|
+
// Keep the process running
|
|
414
|
+
process.on('SIGINT', async () => {
|
|
415
|
+
await subscription.unsubscribe();
|
|
416
|
+
process.exit(0);
|
|
417
|
+
});
|
|
418
|
+
}
|
|
419
|
+
}
|
|
179
420
|
//# sourceMappingURL=build.js.map
|
package/dist/build.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.js","sourceRoot":"","sources":["../src/build.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"build.js","sourceRoot":"","sources":["../src/build.ts"],"names":[],"mappings":"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"}
|
package/dist/generate.d.ts
CHANGED
|
@@ -25,5 +25,31 @@
|
|
|
25
25
|
* The generator automatically creates Zod schemas for route parameters based on
|
|
26
26
|
* TypeScript types, enabling runtime validation and type safety.
|
|
27
27
|
*/
|
|
28
|
-
|
|
28
|
+
import { Project, SourceFile, Symbol, ts } from 'ts-morph';
|
|
29
|
+
type RouterResource = {
|
|
30
|
+
sourceFile: SourceFile;
|
|
31
|
+
symbol: Symbol;
|
|
32
|
+
queries: Map<string, string>;
|
|
33
|
+
entryPoints: Map<string, string>;
|
|
34
|
+
};
|
|
35
|
+
type RouterRoute = {
|
|
36
|
+
sourceFile: SourceFile;
|
|
37
|
+
symbol: Symbol;
|
|
38
|
+
params: Map<string, ts.Type>;
|
|
39
|
+
};
|
|
40
|
+
type ExportedSymbol = {
|
|
41
|
+
sourceFile: SourceFile;
|
|
42
|
+
symbol: Symbol;
|
|
43
|
+
};
|
|
44
|
+
export interface PastoriaMetadata {
|
|
45
|
+
resources: Map<string, RouterResource>;
|
|
46
|
+
routes: Map<string, RouterRoute>;
|
|
47
|
+
serverHandlers: Map<string, ExportedSymbol>;
|
|
48
|
+
appRoot: ExportedSymbol | null;
|
|
49
|
+
gqlContext: ExportedSymbol | null;
|
|
50
|
+
}
|
|
51
|
+
export declare const PASTORIA_TAG_REGEX: RegExp;
|
|
52
|
+
export declare function generatePastoriaExports(project: Project): Promise<PastoriaMetadata>;
|
|
53
|
+
export declare function generatePastoriaArtifacts(project: Project, metadata?: PastoriaMetadata): Promise<void>;
|
|
54
|
+
export {};
|
|
29
55
|
//# sourceMappingURL=generate.d.ts.map
|
package/dist/generate.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;
|
|
1
|
+
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAKH,OAAO,EAGL,OAAO,EACP,UAAU,EACV,MAAM,EAEN,EAAE,EAGH,MAAM,UAAU,CAAC;AAqBlB,KAAK,cAAc,GAAG;IACpB,UAAU,EAAE,UAAU,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC,CAAC;AAEF,KAAK,WAAW,GAAG;IACjB,UAAU,EAAE,UAAU,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;CAC9B,CAAC;AAEF,KAAK,cAAc,GAAG;IACpB,UAAU,EAAE,UAAU,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACvC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACjC,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC5C,OAAO,EAAE,cAAc,GAAG,IAAI,CAAC;IAC/B,UAAU,EAAE,cAAc,GAAG,IAAI,CAAC;CACnC;AAGD,eAAO,MAAM,kBAAkB,QAC6B,CAAC;AAgoB7D,wBAAsB,uBAAuB,CAAC,OAAO,EAAE,OAAO,6BAM7D;AAED,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,OAAO,EAChB,QAAQ,mBAAmC,iBAK5C"}
|
package/dist/generate.js
CHANGED
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
import { readFile } from 'node:fs/promises';
|
|
29
29
|
import * as path from 'node:path';
|
|
30
30
|
import pc from 'picocolors';
|
|
31
|
-
import {
|
|
31
|
+
import { SyntaxKind, ts, TypeFlags, } from 'ts-morph';
|
|
32
32
|
async function loadRouterTemplates(project, filename) {
|
|
33
33
|
async function loadSourceFile(fileName, templateFileName) {
|
|
34
34
|
const template = await readFile(templateFileName, 'utf-8');
|
|
@@ -47,7 +47,7 @@ async function loadRouterTemplates(project, filename) {
|
|
|
47
47
|
return loadSourceFile(output, template);
|
|
48
48
|
}
|
|
49
49
|
// Regex to quickly check if a file contains any Pastoria JSDoc tags
|
|
50
|
-
const PASTORIA_TAG_REGEX = /@(route|resource|appRoot|param|gqlContext|serverRoute)\b/;
|
|
50
|
+
export const PASTORIA_TAG_REGEX = /@(route|resource|appRoot|param|gqlContext|serverRoute)\b/;
|
|
51
51
|
function collectPastoriaMetadata(project) {
|
|
52
52
|
const resources = new Map();
|
|
53
53
|
const routes = new Map();
|
|
@@ -105,24 +105,6 @@ function collectPastoriaMetadata(project) {
|
|
|
105
105
|
serverHandlers.set(tag.comment, { sourceFile, symbol });
|
|
106
106
|
break;
|
|
107
107
|
}
|
|
108
|
-
// case 'query': {
|
|
109
|
-
// const match = tag.comment.match(
|
|
110
|
-
// /^\s*\{\s*(?<query>\w+)\s*\}\s+(?<name>\w+)\s*$/,
|
|
111
|
-
// )?.groups;
|
|
112
|
-
// if (match && match.query && match.name) {
|
|
113
|
-
// resourceQueries.set(match.name, match.query);
|
|
114
|
-
// }
|
|
115
|
-
// break;
|
|
116
|
-
// }
|
|
117
|
-
// case 'entrypoint': {
|
|
118
|
-
// const match = tag.comment.match(
|
|
119
|
-
// /^\s*\{\s*(?<resource>[\w#]+)\s*\}\s+(?<name>\w+)\s*$/,
|
|
120
|
-
// )?.groups;
|
|
121
|
-
// if (match && match.resource && match.name) {
|
|
122
|
-
// resourceEntryPoints.set(match.name, match.resource);
|
|
123
|
-
// }
|
|
124
|
-
// break;
|
|
125
|
-
// }
|
|
126
108
|
}
|
|
127
109
|
}
|
|
128
110
|
else {
|
|
@@ -511,17 +493,13 @@ export const router = express.Router();
|
|
|
511
493
|
}
|
|
512
494
|
await serverHandlerTemplate.save();
|
|
513
495
|
}
|
|
514
|
-
export async function
|
|
515
|
-
const targetDir = process.cwd();
|
|
516
|
-
const project = new Project({
|
|
517
|
-
tsConfigFilePath: path.join(targetDir, 'tsconfig.json'),
|
|
518
|
-
manipulationSettings: {
|
|
519
|
-
indentationText: IndentationText.TwoSpaces,
|
|
520
|
-
},
|
|
521
|
-
});
|
|
496
|
+
export async function generatePastoriaExports(project) {
|
|
522
497
|
const metadata = collectPastoriaMetadata(project);
|
|
523
498
|
await generateAppRoot(project, metadata);
|
|
524
499
|
await generateGraphqlContext(project, metadata);
|
|
500
|
+
return metadata;
|
|
501
|
+
}
|
|
502
|
+
export async function generatePastoriaArtifacts(project, metadata = collectPastoriaMetadata(project)) {
|
|
525
503
|
await generateRouter(project, metadata);
|
|
526
504
|
await generateJsResource(project, metadata);
|
|
527
505
|
await generateServerHandler(project, metadata);
|
package/dist/generate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -4,25 +4,24 @@ import { readFile } from 'node:fs/promises';
|
|
|
4
4
|
import * as path from 'node:path';
|
|
5
5
|
import { createBuild } from './build.js';
|
|
6
6
|
import { startDevserver } from './devserver.js';
|
|
7
|
-
import { generatePastoriaArtifacts } from './generate.js';
|
|
8
7
|
async function main() {
|
|
9
8
|
const packageData = JSON.parse(await readFile(path.join(import.meta.dirname, '../package.json'), 'utf-8'));
|
|
10
9
|
program
|
|
11
10
|
.name('pastoria')
|
|
12
11
|
.description(packageData.description)
|
|
13
12
|
.version(packageData.version);
|
|
14
|
-
program
|
|
15
|
-
.command('gen')
|
|
16
|
-
.description('Run Pastoria code generation')
|
|
17
|
-
.action(generatePastoriaArtifacts);
|
|
18
13
|
program
|
|
19
14
|
.command('dev')
|
|
20
15
|
.description('Start the pastoria devserver')
|
|
21
16
|
.option('--port <port>', 'Port the devserver will listen on', '3000')
|
|
22
17
|
.action(startDevserver);
|
|
23
18
|
program
|
|
24
|
-
.command('
|
|
19
|
+
.command('make')
|
|
25
20
|
.description('Creates a production build of the project')
|
|
21
|
+
.argument('[steps...]', 'Specific build steps to run (schema, relay, router). If not provided, will infer from changed files.')
|
|
22
|
+
.option('-B, --always-make', 'Always make, never cache')
|
|
23
|
+
.option('--release', 'Build for production')
|
|
24
|
+
.option('-w, --watch', 'Watch for changes and rebuild')
|
|
26
25
|
.action(createBuild);
|
|
27
26
|
program.parseAsync();
|
|
28
27
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAClC,OAAO,EAAC,QAAQ,EAAC,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAC,WAAW,EAAC,MAAM,YAAY,CAAC;AACvC,OAAO,EAAC,cAAc,EAAC,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAClC,OAAO,EAAC,QAAQ,EAAC,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAC,WAAW,EAAC,MAAM,YAAY,CAAC;AACvC,OAAO,EAAC,cAAc,EAAC,MAAM,gBAAgB,CAAC;AAE9C,KAAK,UAAU,IAAI;IACjB,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAC5B,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC,EAAE,OAAO,CAAC,CAC3E,CAAC;IAEF,OAAO;SACJ,IAAI,CAAC,UAAU,CAAC;SAChB,WAAW,CAAC,WAAW,CAAC,WAAW,CAAC;SACpC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAEhC,OAAO;SACJ,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,8BAA8B,CAAC;SAC3C,MAAM,CAAC,eAAe,EAAE,mCAAmC,EAAE,MAAM,CAAC;SACpE,MAAM,CAAC,cAAc,CAAC,CAAC;IAE1B,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,2CAA2C,CAAC;SACxD,QAAQ,CACP,YAAY,EACZ,sGAAsG,CACvG;SACA,MAAM,CAAC,mBAAmB,EAAE,0BAA0B,CAAC;SACvD,MAAM,CAAC,WAAW,EAAE,sBAAsB,CAAC;SAC3C,MAAM,CAAC,aAAa,EAAE,+BAA+B,CAAC;SACtD,MAAM,CAAC,WAAW,CAAC,CAAC;IAEvB,OAAO,CAAC,UAAU,EAAE,CAAC;AACvB,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pastoria",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.12",
|
|
4
4
|
"description": "Pastoria Development CLI",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -10,37 +10,47 @@
|
|
|
10
10
|
"pastoria": "./dist/index.js"
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"@
|
|
13
|
+
"@parcel/watcher": "^2.5.1",
|
|
14
|
+
"@tailwindcss/vite": "^4.1.15",
|
|
14
15
|
"@vitejs/plugin-react": "^5.0.4",
|
|
15
|
-
"babel-plugin-react-compiler": "^1.0.0",
|
|
16
16
|
"babel-plugin-relay": "^20.1.1",
|
|
17
17
|
"commander": "^14.0.1",
|
|
18
18
|
"cookie-parser": "^1.4.7",
|
|
19
19
|
"dotenv": "^16.6.1",
|
|
20
20
|
"picocolors": "^1.1.1",
|
|
21
|
-
"tailwindcss": "^4.1.
|
|
21
|
+
"tailwindcss": "^4.1.15",
|
|
22
22
|
"ts-morph": "^26.0.0",
|
|
23
|
-
"vite": "^7.1.
|
|
23
|
+
"vite": "^7.1.11",
|
|
24
24
|
"vite-plugin-cjs-interop": "^2.3.0"
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
27
27
|
"@types/cookie-parser": "^1.4.9",
|
|
28
28
|
"@types/express": "^5.0.3",
|
|
29
29
|
"@types/node": "^22.12.0",
|
|
30
|
-
"@types/react": "^19.2.
|
|
31
|
-
"@types/react-dom": "^19.2.
|
|
30
|
+
"@types/react": "^19.2.2",
|
|
31
|
+
"@types/react-dom": "^19.2.2",
|
|
32
32
|
"@types/react-relay": "^18.2.1",
|
|
33
|
+
"@types/relay-compiler": "^14.0.4",
|
|
33
34
|
"radix3": "^1.1.2",
|
|
34
|
-
"
|
|
35
|
+
"relay-compiler": "^20.1.1",
|
|
36
|
+
"typescript": "^5.9.3",
|
|
35
37
|
"zod": "^3.25.76",
|
|
36
38
|
"pastoria-config": "1.0.1",
|
|
37
39
|
"pastoria-runtime": "1.0.12"
|
|
38
40
|
},
|
|
39
41
|
"peerDependencies": {
|
|
42
|
+
"babel-plugin-react-compiler": "^1.0.0",
|
|
40
43
|
"express": "^5.1.0",
|
|
44
|
+
"grats": "^0.0.33",
|
|
45
|
+
"relay-compiler": "^20.1.1",
|
|
41
46
|
"tailwindcss": "^4.1.14",
|
|
42
47
|
"pastoria-config": "1.0.1"
|
|
43
48
|
},
|
|
49
|
+
"peerDependenciesMeta": {
|
|
50
|
+
"babel-plugin-react-compiler": {
|
|
51
|
+
"optional": true
|
|
52
|
+
}
|
|
53
|
+
},
|
|
44
54
|
"scripts": {
|
|
45
55
|
"build": "tsc",
|
|
46
56
|
"check:types": "tsc --noEmit"
|
package/src/build.ts
CHANGED
|
@@ -1,20 +1,159 @@
|
|
|
1
|
+
import ParcelWatcher, {getEventsSince, writeSnapshot} from '@parcel/watcher';
|
|
1
2
|
import tailwindcss from '@tailwindcss/vite';
|
|
2
3
|
import react from '@vitejs/plugin-react';
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
4
|
+
import {spawn} from 'node:child_process';
|
|
5
|
+
import {access, readFile} from 'node:fs/promises';
|
|
6
|
+
import path from 'node:path';
|
|
7
|
+
import {IndentationText, Project} from 'ts-morph';
|
|
5
8
|
import {
|
|
6
9
|
build,
|
|
7
10
|
InlineConfig,
|
|
11
|
+
PluginOption,
|
|
8
12
|
type BuildEnvironmentOptions,
|
|
9
13
|
type Plugin,
|
|
10
14
|
} from 'vite';
|
|
11
15
|
import {cjsInterop} from 'vite-plugin-cjs-interop';
|
|
16
|
+
import {
|
|
17
|
+
generatePastoriaArtifacts,
|
|
18
|
+
generatePastoriaExports,
|
|
19
|
+
PASTORIA_TAG_REGEX,
|
|
20
|
+
PastoriaMetadata,
|
|
21
|
+
} from './generate.js';
|
|
12
22
|
|
|
13
23
|
interface PastoriaCapabilities {
|
|
14
24
|
hasAppRoot: boolean;
|
|
15
25
|
hasServerHandler: boolean;
|
|
16
26
|
}
|
|
17
27
|
|
|
28
|
+
const SNAPSHOT_PATH = '.pastoriainfo';
|
|
29
|
+
|
|
30
|
+
async function runCommand(command: string, args: string[]): Promise<void> {
|
|
31
|
+
return new Promise((resolve, reject) => {
|
|
32
|
+
const child = spawn(command, args, {
|
|
33
|
+
cwd: process.cwd(),
|
|
34
|
+
stdio: 'inherit', // Stream output to terminal
|
|
35
|
+
shell: true,
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
child.on('exit', (code) => {
|
|
39
|
+
if (code === 0) {
|
|
40
|
+
resolve();
|
|
41
|
+
} else {
|
|
42
|
+
reject(new Error(`Command failed with exit code ${code}`));
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
child.on('error', reject);
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
async function runGratsCompiler(): Promise<void> {
|
|
51
|
+
const gratsPath = path.join(process.cwd(), 'node_modules', '.bin', 'grats');
|
|
52
|
+
await runCommand(gratsPath, []);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
async function runRelayCompiler(): Promise<void> {
|
|
56
|
+
const relayPath = path.join(
|
|
57
|
+
process.cwd(),
|
|
58
|
+
'node_modules',
|
|
59
|
+
'.bin',
|
|
60
|
+
'relay-compiler',
|
|
61
|
+
);
|
|
62
|
+
await runCommand(relayPath, []);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
function fileMatchesPastoriaTags(filePath: string, content: string): boolean {
|
|
66
|
+
// Skip generated files
|
|
67
|
+
if (filePath.includes('__generated__')) {
|
|
68
|
+
return false;
|
|
69
|
+
}
|
|
70
|
+
return PASTORIA_TAG_REGEX.test(content);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
function fileMatchesGratsTags(filePath: string, content: string): boolean {
|
|
74
|
+
// Skip generated files
|
|
75
|
+
if (filePath.includes('__generated__')) {
|
|
76
|
+
return false;
|
|
77
|
+
}
|
|
78
|
+
// Match any Grats JSDoc tag
|
|
79
|
+
return /@gql\w+/.test(content);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
function fileMatchesRelayImports(filePath: string, content: string): boolean {
|
|
83
|
+
// Skip generated files
|
|
84
|
+
if (filePath.includes('__generated__')) {
|
|
85
|
+
return false;
|
|
86
|
+
}
|
|
87
|
+
return (
|
|
88
|
+
/import\s+.*\s+from\s+['"]react-relay['"]/.test(content) ||
|
|
89
|
+
/import\s+.*\s+from\s+['"]relay-runtime['"]/.test(content)
|
|
90
|
+
);
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
async function analyzeChangedFiles(
|
|
94
|
+
events: Array<{type: string; path: string}>,
|
|
95
|
+
): Promise<{
|
|
96
|
+
needsPastoriaExports: boolean;
|
|
97
|
+
needsGratsCompiler: boolean;
|
|
98
|
+
needsRelayCompiler: boolean;
|
|
99
|
+
needsPastoriaArtifacts: boolean;
|
|
100
|
+
}> {
|
|
101
|
+
let needsPastoriaExports = false;
|
|
102
|
+
let needsGratsCompiler = false;
|
|
103
|
+
let needsRelayCompiler = false;
|
|
104
|
+
let needsPastoriaArtifacts = false;
|
|
105
|
+
|
|
106
|
+
for (const event of events) {
|
|
107
|
+
const filePath = event.path;
|
|
108
|
+
|
|
109
|
+
// Skip non-TypeScript/TSX files
|
|
110
|
+
if (!filePath.match(/\.(ts|tsx)$/)) {
|
|
111
|
+
continue;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
// For delete events, we can't read content, so assume it might affect all pipelines
|
|
115
|
+
if (event.type === 'delete') {
|
|
116
|
+
needsPastoriaExports = true;
|
|
117
|
+
needsGratsCompiler = true;
|
|
118
|
+
needsRelayCompiler = true;
|
|
119
|
+
needsPastoriaArtifacts = true;
|
|
120
|
+
continue;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
// Read file content for create/update events
|
|
124
|
+
try {
|
|
125
|
+
const content = await readFile(filePath, 'utf-8');
|
|
126
|
+
|
|
127
|
+
if (fileMatchesPastoriaTags(filePath, content)) {
|
|
128
|
+
needsPastoriaExports = true;
|
|
129
|
+
needsPastoriaArtifacts = true;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
if (fileMatchesGratsTags(filePath, content)) {
|
|
133
|
+
needsGratsCompiler = true;
|
|
134
|
+
needsRelayCompiler = true; // Relay depends on Grats schema
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
if (fileMatchesRelayImports(filePath, content)) {
|
|
138
|
+
needsRelayCompiler = true;
|
|
139
|
+
}
|
|
140
|
+
} catch {
|
|
141
|
+
// If we can't read the file, assume it might affect all pipelines
|
|
142
|
+
needsPastoriaExports = true;
|
|
143
|
+
needsGratsCompiler = true;
|
|
144
|
+
needsRelayCompiler = true;
|
|
145
|
+
needsPastoriaArtifacts = true;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
return {
|
|
150
|
+
needsPastoriaExports,
|
|
151
|
+
needsGratsCompiler,
|
|
152
|
+
needsRelayCompiler,
|
|
153
|
+
needsPastoriaArtifacts,
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
|
|
18
157
|
function generateClientEntry({hasAppRoot}: PastoriaCapabilities): string {
|
|
19
158
|
const appImport = hasAppRoot
|
|
20
159
|
? `import {App} from '#genfiles/router/app_root';`
|
|
@@ -101,6 +240,45 @@ export function createHandler(
|
|
|
101
240
|
`;
|
|
102
241
|
}
|
|
103
242
|
|
|
243
|
+
async function executeBuildSteps(
|
|
244
|
+
project: Project,
|
|
245
|
+
needs: {
|
|
246
|
+
needsPastoriaExports: boolean;
|
|
247
|
+
needsGratsCompiler: boolean;
|
|
248
|
+
needsRelayCompiler: boolean;
|
|
249
|
+
needsPastoriaArtifacts: boolean;
|
|
250
|
+
},
|
|
251
|
+
): Promise<boolean> {
|
|
252
|
+
let rebuiltAnything = false;
|
|
253
|
+
let cachedMetadata: PastoriaMetadata | undefined = undefined;
|
|
254
|
+
|
|
255
|
+
if (needs.needsPastoriaExports) {
|
|
256
|
+
console.log('Running Pastoria exports generation...');
|
|
257
|
+
cachedMetadata = await generatePastoriaExports(project);
|
|
258
|
+
rebuiltAnything = true;
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
if (needs.needsGratsCompiler) {
|
|
262
|
+
console.log('Running Grats compiler...');
|
|
263
|
+
await runGratsCompiler();
|
|
264
|
+
rebuiltAnything = true;
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
if (needs.needsRelayCompiler) {
|
|
268
|
+
console.log('Running Relay compiler...');
|
|
269
|
+
await runRelayCompiler();
|
|
270
|
+
rebuiltAnything = true;
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
if (needs.needsPastoriaArtifacts) {
|
|
274
|
+
console.log('Running Pastoria artifacts generation...');
|
|
275
|
+
await generatePastoriaArtifacts(project, cachedMetadata);
|
|
276
|
+
rebuiltAnything = true;
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
return rebuiltAnything;
|
|
280
|
+
}
|
|
281
|
+
|
|
104
282
|
async function determineCapabilities(): Promise<PastoriaCapabilities> {
|
|
105
283
|
const capabilities: PastoriaCapabilities = {
|
|
106
284
|
hasAppRoot: false,
|
|
@@ -177,7 +355,7 @@ export function createBuildConfig(
|
|
|
177
355
|
},
|
|
178
356
|
plugins: [
|
|
179
357
|
pastoriaEntryPlugin(),
|
|
180
|
-
tailwindcss(),
|
|
358
|
+
tailwindcss() as PluginOption,
|
|
181
359
|
react({
|
|
182
360
|
babel: {
|
|
183
361
|
plugins: [['babel-plugin-react-compiler', {}], 'relay'],
|
|
@@ -193,14 +371,163 @@ export function createBuildConfig(
|
|
|
193
371
|
};
|
|
194
372
|
}
|
|
195
373
|
|
|
196
|
-
|
|
197
|
-
|
|
374
|
+
async function createReleaseBuild() {
|
|
375
|
+
await build({
|
|
198
376
|
...createBuildConfig(CLIENT_BUILD),
|
|
199
377
|
configFile: false,
|
|
200
378
|
});
|
|
201
379
|
|
|
202
|
-
|
|
380
|
+
await build({
|
|
203
381
|
...createBuildConfig(SERVER_BUILD),
|
|
204
382
|
configFile: false,
|
|
205
383
|
});
|
|
206
384
|
}
|
|
385
|
+
|
|
386
|
+
function determineBuildStepsFromArgs(steps: string[]): {
|
|
387
|
+
needsPastoriaExports: boolean;
|
|
388
|
+
needsGratsCompiler: boolean;
|
|
389
|
+
needsRelayCompiler: boolean;
|
|
390
|
+
needsPastoriaArtifacts: boolean;
|
|
391
|
+
} {
|
|
392
|
+
const validSteps = new Set(['schema', 'relay', 'router']);
|
|
393
|
+
const needs = {
|
|
394
|
+
needsPastoriaExports: false,
|
|
395
|
+
needsGratsCompiler: false,
|
|
396
|
+
needsRelayCompiler: false,
|
|
397
|
+
needsPastoriaArtifacts: false,
|
|
398
|
+
};
|
|
399
|
+
|
|
400
|
+
for (const step of steps) {
|
|
401
|
+
if (!validSteps.has(step)) {
|
|
402
|
+
throw new Error(
|
|
403
|
+
`Invalid build step: ${step}. Valid steps are: schema, relay, router`,
|
|
404
|
+
);
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
switch (step) {
|
|
408
|
+
case 'schema':
|
|
409
|
+
needs.needsGratsCompiler = true;
|
|
410
|
+
break;
|
|
411
|
+
case 'relay':
|
|
412
|
+
needs.needsRelayCompiler = true;
|
|
413
|
+
break;
|
|
414
|
+
case 'router':
|
|
415
|
+
needs.needsPastoriaExports = true;
|
|
416
|
+
needs.needsPastoriaArtifacts = true;
|
|
417
|
+
break;
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
|
|
421
|
+
return needs;
|
|
422
|
+
}
|
|
423
|
+
|
|
424
|
+
export async function createBuild(
|
|
425
|
+
steps: string[],
|
|
426
|
+
opts: {
|
|
427
|
+
alwaysMake: boolean;
|
|
428
|
+
release: boolean;
|
|
429
|
+
watch?: boolean;
|
|
430
|
+
},
|
|
431
|
+
) {
|
|
432
|
+
if (opts.watch && opts.release) {
|
|
433
|
+
throw new Error(
|
|
434
|
+
'Cannot use --watch and --release together. Watch mode is for development only.',
|
|
435
|
+
);
|
|
436
|
+
}
|
|
437
|
+
|
|
438
|
+
const project = new Project({
|
|
439
|
+
tsConfigFilePath: path.join(process.cwd(), 'tsconfig.json'),
|
|
440
|
+
manipulationSettings: {
|
|
441
|
+
indentationText: IndentationText.TwoSpaces,
|
|
442
|
+
},
|
|
443
|
+
});
|
|
444
|
+
|
|
445
|
+
const cwd = process.cwd();
|
|
446
|
+
let needsPastoriaExports = opts.alwaysMake;
|
|
447
|
+
let needsGratsCompiler = opts.alwaysMake;
|
|
448
|
+
let needsRelayCompiler = opts.alwaysMake;
|
|
449
|
+
let needsPastoriaArtifacts = opts.alwaysMake;
|
|
450
|
+
|
|
451
|
+
// If specific steps are provided, override automatic inference
|
|
452
|
+
if (steps.length > 0) {
|
|
453
|
+
const stepsNeeds = determineBuildStepsFromArgs(steps);
|
|
454
|
+
needsPastoriaExports = stepsNeeds.needsPastoriaExports;
|
|
455
|
+
needsGratsCompiler = stepsNeeds.needsGratsCompiler;
|
|
456
|
+
needsRelayCompiler = stepsNeeds.needsRelayCompiler;
|
|
457
|
+
needsPastoriaArtifacts = stepsNeeds.needsPastoriaArtifacts;
|
|
458
|
+
}
|
|
459
|
+
// Use @parcel/watcher to get changes since last snapshot
|
|
460
|
+
else if (!opts.alwaysMake) {
|
|
461
|
+
try {
|
|
462
|
+
// Check if snapshot exists - if not, do a full build
|
|
463
|
+
await access(SNAPSHOT_PATH);
|
|
464
|
+
|
|
465
|
+
// Get events since last snapshot
|
|
466
|
+
const events = await getEventsSince(cwd, SNAPSHOT_PATH);
|
|
467
|
+
|
|
468
|
+
if (events.length > 0) {
|
|
469
|
+
// Analyze which files changed and determine what needs to be rebuilt
|
|
470
|
+
const analysis = await analyzeChangedFiles(events);
|
|
471
|
+
needsPastoriaExports = analysis.needsPastoriaExports;
|
|
472
|
+
needsGratsCompiler = analysis.needsGratsCompiler;
|
|
473
|
+
needsRelayCompiler =
|
|
474
|
+
analysis.needsRelayCompiler || analysis.needsGratsCompiler;
|
|
475
|
+
needsPastoriaArtifacts =
|
|
476
|
+
analysis.needsPastoriaArtifacts || analysis.needsPastoriaExports;
|
|
477
|
+
}
|
|
478
|
+
} catch (err) {
|
|
479
|
+
// No snapshot exists yet, or error reading it - do a full build
|
|
480
|
+
needsPastoriaExports = true;
|
|
481
|
+
needsGratsCompiler = true;
|
|
482
|
+
needsRelayCompiler = true;
|
|
483
|
+
needsPastoriaArtifacts = true;
|
|
484
|
+
}
|
|
485
|
+
}
|
|
486
|
+
|
|
487
|
+
// Execute build pipeline conditionally
|
|
488
|
+
await executeBuildSteps(project, {
|
|
489
|
+
needsPastoriaExports,
|
|
490
|
+
needsGratsCompiler,
|
|
491
|
+
needsRelayCompiler,
|
|
492
|
+
needsPastoriaArtifacts,
|
|
493
|
+
});
|
|
494
|
+
|
|
495
|
+
// Write snapshot for next incremental build
|
|
496
|
+
await writeSnapshot(cwd, SNAPSHOT_PATH);
|
|
497
|
+
|
|
498
|
+
if (opts.release) {
|
|
499
|
+
await createReleaseBuild();
|
|
500
|
+
}
|
|
501
|
+
|
|
502
|
+
// Start watch mode if requested
|
|
503
|
+
if (opts.watch) {
|
|
504
|
+
console.log('Watching for changes...');
|
|
505
|
+
|
|
506
|
+
const subscription = await ParcelWatcher.subscribe(
|
|
507
|
+
cwd,
|
|
508
|
+
async (err, events) => {
|
|
509
|
+
if (err) {
|
|
510
|
+
console.error('Watch error:', err);
|
|
511
|
+
return;
|
|
512
|
+
}
|
|
513
|
+
|
|
514
|
+
// Analyze which files changed and determine what needs to be rebuilt
|
|
515
|
+
const analysis = await analyzeChangedFiles(events);
|
|
516
|
+
|
|
517
|
+
const rebuiltAnything = await executeBuildSteps(project, analysis);
|
|
518
|
+
|
|
519
|
+
if (rebuiltAnything) {
|
|
520
|
+
// Write snapshot after successful rebuild
|
|
521
|
+
await writeSnapshot(cwd, SNAPSHOT_PATH);
|
|
522
|
+
console.log('Rebuild complete. Watching for changes...');
|
|
523
|
+
}
|
|
524
|
+
},
|
|
525
|
+
);
|
|
526
|
+
|
|
527
|
+
// Keep the process running
|
|
528
|
+
process.on('SIGINT', async () => {
|
|
529
|
+
await subscription.unsubscribe();
|
|
530
|
+
process.exit(0);
|
|
531
|
+
});
|
|
532
|
+
}
|
|
533
|
+
}
|
package/src/generate.ts
CHANGED
|
@@ -78,7 +78,7 @@ type ExportedSymbol = {
|
|
|
78
78
|
symbol: Symbol;
|
|
79
79
|
};
|
|
80
80
|
|
|
81
|
-
interface PastoriaMetadata {
|
|
81
|
+
export interface PastoriaMetadata {
|
|
82
82
|
resources: Map<string, RouterResource>;
|
|
83
83
|
routes: Map<string, RouterRoute>;
|
|
84
84
|
serverHandlers: Map<string, ExportedSymbol>;
|
|
@@ -87,7 +87,7 @@ interface PastoriaMetadata {
|
|
|
87
87
|
}
|
|
88
88
|
|
|
89
89
|
// Regex to quickly check if a file contains any Pastoria JSDoc tags
|
|
90
|
-
const PASTORIA_TAG_REGEX =
|
|
90
|
+
export const PASTORIA_TAG_REGEX =
|
|
91
91
|
/@(route|resource|appRoot|param|gqlContext|serverRoute)\b/;
|
|
92
92
|
|
|
93
93
|
function collectPastoriaMetadata(project: Project): PastoriaMetadata {
|
|
@@ -152,26 +152,6 @@ function collectPastoriaMetadata(project: Project): PastoriaMetadata {
|
|
|
152
152
|
serverHandlers.set(tag.comment, {sourceFile, symbol});
|
|
153
153
|
break;
|
|
154
154
|
}
|
|
155
|
-
// case 'query': {
|
|
156
|
-
// const match = tag.comment.match(
|
|
157
|
-
// /^\s*\{\s*(?<query>\w+)\s*\}\s+(?<name>\w+)\s*$/,
|
|
158
|
-
// )?.groups;
|
|
159
|
-
|
|
160
|
-
// if (match && match.query && match.name) {
|
|
161
|
-
// resourceQueries.set(match.name, match.query);
|
|
162
|
-
// }
|
|
163
|
-
// break;
|
|
164
|
-
// }
|
|
165
|
-
// case 'entrypoint': {
|
|
166
|
-
// const match = tag.comment.match(
|
|
167
|
-
// /^\s*\{\s*(?<resource>[\w#]+)\s*\}\s+(?<name>\w+)\s*$/,
|
|
168
|
-
// )?.groups;
|
|
169
|
-
|
|
170
|
-
// if (match && match.resource && match.name) {
|
|
171
|
-
// resourceEntryPoints.set(match.name, match.resource);
|
|
172
|
-
// }
|
|
173
|
-
// break;
|
|
174
|
-
// }
|
|
175
155
|
}
|
|
176
156
|
} else {
|
|
177
157
|
// Handle tags without comments (like @ExportedSymbol, @gqlContext)
|
|
@@ -748,19 +728,18 @@ export const router = express.Router();
|
|
|
748
728
|
await serverHandlerTemplate.save();
|
|
749
729
|
}
|
|
750
730
|
|
|
751
|
-
export async function
|
|
752
|
-
const targetDir = process.cwd();
|
|
753
|
-
const project = new Project({
|
|
754
|
-
tsConfigFilePath: path.join(targetDir, 'tsconfig.json'),
|
|
755
|
-
manipulationSettings: {
|
|
756
|
-
indentationText: IndentationText.TwoSpaces,
|
|
757
|
-
},
|
|
758
|
-
});
|
|
759
|
-
|
|
731
|
+
export async function generatePastoriaExports(project: Project) {
|
|
760
732
|
const metadata = collectPastoriaMetadata(project);
|
|
761
733
|
|
|
762
734
|
await generateAppRoot(project, metadata);
|
|
763
735
|
await generateGraphqlContext(project, metadata);
|
|
736
|
+
return metadata;
|
|
737
|
+
}
|
|
738
|
+
|
|
739
|
+
export async function generatePastoriaArtifacts(
|
|
740
|
+
project: Project,
|
|
741
|
+
metadata = collectPastoriaMetadata(project),
|
|
742
|
+
) {
|
|
764
743
|
await generateRouter(project, metadata);
|
|
765
744
|
await generateJsResource(project, metadata);
|
|
766
745
|
await generateServerHandler(project, metadata);
|
package/src/index.ts
CHANGED
|
@@ -5,7 +5,6 @@ import {readFile} from 'node:fs/promises';
|
|
|
5
5
|
import * as path from 'node:path';
|
|
6
6
|
import {createBuild} from './build.js';
|
|
7
7
|
import {startDevserver} from './devserver.js';
|
|
8
|
-
import {generatePastoriaArtifacts} from './generate.js';
|
|
9
8
|
|
|
10
9
|
async function main() {
|
|
11
10
|
const packageData = JSON.parse(
|
|
@@ -17,11 +16,6 @@ async function main() {
|
|
|
17
16
|
.description(packageData.description)
|
|
18
17
|
.version(packageData.version);
|
|
19
18
|
|
|
20
|
-
program
|
|
21
|
-
.command('gen')
|
|
22
|
-
.description('Run Pastoria code generation')
|
|
23
|
-
.action(generatePastoriaArtifacts);
|
|
24
|
-
|
|
25
19
|
program
|
|
26
20
|
.command('dev')
|
|
27
21
|
.description('Start the pastoria devserver')
|
|
@@ -29,8 +23,15 @@ async function main() {
|
|
|
29
23
|
.action(startDevserver);
|
|
30
24
|
|
|
31
25
|
program
|
|
32
|
-
.command('
|
|
26
|
+
.command('make')
|
|
33
27
|
.description('Creates a production build of the project')
|
|
28
|
+
.argument(
|
|
29
|
+
'[steps...]',
|
|
30
|
+
'Specific build steps to run (schema, relay, router). If not provided, will infer from changed files.',
|
|
31
|
+
)
|
|
32
|
+
.option('-B, --always-make', 'Always make, never cache')
|
|
33
|
+
.option('--release', 'Build for production')
|
|
34
|
+
.option('-w, --watch', 'Watch for changes and rebuild')
|
|
34
35
|
.action(createBuild);
|
|
35
36
|
|
|
36
37
|
program.parseAsync();
|