pastoria 1.0.9 → 1.0.11

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 CHANGED
@@ -1,5 +1,22 @@
1
1
  # pastoria
2
2
 
3
+ ## 1.0.11
4
+
5
+ ### Patch Changes
6
+
7
+ - b139f3c: Bump patch versions
8
+ - Updated dependencies [b139f3c]
9
+ - pastoria-config@1.0.1
10
+
11
+ ## 1.0.10
12
+
13
+ ### Patch Changes
14
+
15
+ - 1ae49d3: Update router generator to automatically create an entrypoint and
16
+ resource
17
+ - 4ed4588: Don't duplicate JSResource import when generating code
18
+ - e7e5519: Detect queries and entrypoints from type annotations
19
+
3
20
  ## 1.0.9
4
21
 
5
22
  ### Patch Changes
@@ -1 +1 @@
1
- {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAyoBH,wBAAsB,yBAAyB,kBAgB9C"}
1
+ {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAotBH,wBAAsB,yBAAyB,kBAgB9C"}
package/dist/generate.js CHANGED
@@ -48,10 +48,6 @@ async function loadRouterTemplates(project, filename) {
48
48
  }
49
49
  // Regex to quickly check if a file contains any Pastoria JSDoc tags
50
50
  const PASTORIA_TAG_REGEX = /@(route|resource|appRoot|param|gqlContext|serverRoute)\b/;
51
- /**
52
- *
53
- * @query {abc} 123
54
- */
55
51
  function collectPastoriaMetadata(project) {
56
52
  const resources = new Map();
57
53
  const routes = new Map();
@@ -70,8 +66,6 @@ function collectPastoriaMetadata(project) {
70
66
  }
71
67
  sourceFile.getExportSymbols().forEach((symbol) => {
72
68
  let routerResource = null;
73
- const resourceQueries = new Map();
74
- const resourceEntryPoints = new Map();
75
69
  let routerRoute = null;
76
70
  const routeParams = new Map();
77
71
  function visitJSDocTags(tag) {
@@ -101,8 +95,8 @@ function collectPastoriaMetadata(project) {
101
95
  {
102
96
  sourceFile,
103
97
  symbol,
104
- queries: resourceQueries,
105
- entryPoints: resourceEntryPoints,
98
+ queries: new Map(),
99
+ entryPoints: new Map(),
106
100
  },
107
101
  ];
108
102
  break;
@@ -111,20 +105,24 @@ function collectPastoriaMetadata(project) {
111
105
  serverHandlers.set(tag.comment, { sourceFile, symbol });
112
106
  break;
113
107
  }
114
- case 'query': {
115
- const match = tag.comment.match(/^\s*\{\s*(?<query>\w+)\s*\}\s+(?<name>\w+)\s*$/)?.groups;
116
- if (match && match.query && match.name) {
117
- resourceQueries.set(match.name, match.query);
118
- }
119
- break;
120
- }
121
- case 'entrypoint': {
122
- const match = tag.comment.match(/^\s*\{\s*(?<resource>[\w#]+)\s*\}\s+(?<name>\w+)\s*$/)?.groups;
123
- if (match && match.resource && match.name) {
124
- resourceEntryPoints.set(match.name, match.resource);
125
- }
126
- break;
127
- }
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
+ // }
128
126
  }
129
127
  }
130
128
  else {
@@ -182,16 +180,75 @@ function collectPastoriaMetadata(project) {
182
180
  .flatMap((decl) => ts.getJSDocCommentsAndTags(decl.compilerNode))
183
181
  .forEach(visitJSDocTags);
184
182
  if (routerRoute != null) {
185
- routes.set(routerRoute[0], routerRoute[1]);
183
+ const [routeName, routeSymbol] = routerRoute;
184
+ routes.set(routeName, routeSymbol);
185
+ const { entryPoints, queries } = getResourceQueriesAndEntryPoints(routeSymbol.symbol);
186
+ if (routerResource == null && (entryPoints.size || queries.size)) {
187
+ resources.set(`route(${routeName})`, {
188
+ ...routeSymbol,
189
+ entryPoints,
190
+ queries,
191
+ });
192
+ }
186
193
  }
187
194
  if (routerResource != null) {
188
- resources.set(routerResource[0], routerResource[1]);
195
+ const [resourceName, resourceSymbol] = routerResource;
196
+ const { entryPoints, queries } = getResourceQueriesAndEntryPoints(resourceSymbol.symbol);
197
+ resourceSymbol.queries = queries;
198
+ resourceSymbol.entryPoints = entryPoints;
199
+ resources.set(resourceName, resourceSymbol);
189
200
  }
190
201
  });
191
202
  }
192
203
  project.getSourceFiles().forEach(visitRouterNodes);
193
204
  return { resources, routes, appRoot, gqlContext, serverHandlers };
194
205
  }
206
+ function getResourceQueriesAndEntryPoints(symbol) {
207
+ const resource = {
208
+ queries: new Map(),
209
+ entryPoints: new Map(),
210
+ };
211
+ const decl = symbol.getValueDeclaration();
212
+ if (!decl)
213
+ return resource;
214
+ const t = decl.getType();
215
+ const aliasSymbol = t.getAliasSymbol();
216
+ if (aliasSymbol?.getName() === 'EntryPointComponent') {
217
+ const [queries, entryPoints] = t.getAliasTypeArguments();
218
+ queries?.getProperties().forEach((prop) => {
219
+ const queryRef = prop.getName();
220
+ const queryName = prop
221
+ .getValueDeclaration()
222
+ ?.getType()
223
+ .getAliasSymbol()
224
+ ?.getName();
225
+ if (queryName) {
226
+ resource.queries.set(queryRef, queryName);
227
+ }
228
+ });
229
+ entryPoints?.getProperties().forEach((prop) => {
230
+ const epRef = prop.getName();
231
+ const resourceName = prop
232
+ .getValueDeclaration()
233
+ ?.asKind(SyntaxKind.PropertySignature)
234
+ ?.getTypeNode()
235
+ ?.asKind(SyntaxKind.TypeReference)
236
+ ?.getTypeArguments()
237
+ .at(0)
238
+ ?.asKind(SyntaxKind.TypeReference)
239
+ ?.getTypeArguments()
240
+ .at(0)
241
+ ?.asKind(SyntaxKind.LiteralType)
242
+ ?.getLiteral()
243
+ .asKind(SyntaxKind.StringLiteral)
244
+ ?.getLiteralText();
245
+ if (resourceName) {
246
+ resource.entryPoints.set(epRef, resourceName);
247
+ }
248
+ });
249
+ }
250
+ return resource;
251
+ }
195
252
  function zodSchemaOfType(tc, t) {
196
253
  if (t.getFlags() & TypeFlags.String) {
197
254
  return `z.pipe(z.string(), z.transform(decodeURIComponent))`;
@@ -266,6 +323,7 @@ function writeEntryPoint(writer, metadata, consumedQueries, resourceName, resour
266
323
  async function generateRouter(project, metadata) {
267
324
  const routerTemplate = await loadRouterTemplates(project, 'router.tsx');
268
325
  const tc = project.getTypeChecker().compilerObject;
326
+ let didAddJsResourceImport = false;
269
327
  const routerConf = routerTemplate
270
328
  .getVariableDeclarationOrThrow('ROUTER_CONF')
271
329
  .getInitializerIfKindOrThrow(SyntaxKind.AsExpression)
@@ -280,11 +338,14 @@ async function generateRouter(project, metadata) {
280
338
  const isResourceRoute = Array.from(metadata.resources.entries()).find(([, { symbol: resourceSymbol }]) => symbol === resourceSymbol);
281
339
  if (isResourceRoute) {
282
340
  const [resourceName, resource] = isResourceRoute;
283
- const entryPointFunctionName = `entrypoint_${resourceName.replace(/\W/g, '__')}`;
284
- routerTemplate.addImportDeclaration({
285
- moduleSpecifier: './js_resource',
286
- namedImports: ['JSResource', 'ModuleType'],
287
- });
341
+ const entryPointFunctionName = `entrypoint_${resourceName.replace(/\W/g, '')}`;
342
+ if (!didAddJsResourceImport) {
343
+ didAddJsResourceImport = true;
344
+ routerTemplate.addImportDeclaration({
345
+ moduleSpecifier: './js_resource',
346
+ namedImports: ['JSResource', 'ModuleType'],
347
+ });
348
+ }
288
349
  const consumedQueries = new Set();
289
350
  routerTemplate.addFunction({
290
351
  name: entryPointFunctionName,
@@ -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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pastoria",
3
- "version": "1.0.9",
3
+ "version": "1.0.11",
4
4
  "description": "Pastoria Development CLI",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -33,13 +33,13 @@
33
33
  "radix3": "^1.1.2",
34
34
  "typescript": "^5.9.2",
35
35
  "zod": "^3.25.76",
36
- "pastoria-config": "1.0.0",
37
- "pastoria-runtime": "1.0.9"
36
+ "pastoria-config": "1.0.1",
37
+ "pastoria-runtime": "1.0.12"
38
38
  },
39
39
  "peerDependencies": {
40
40
  "express": "^5.1.0",
41
41
  "tailwindcss": "^4.1.14",
42
- "pastoria-config": "1.0.0"
42
+ "pastoria-config": "1.0.1"
43
43
  },
44
44
  "scripts": {
45
45
  "build": "tsc",
package/src/generate.ts CHANGED
@@ -90,10 +90,6 @@ interface PastoriaMetadata {
90
90
  const PASTORIA_TAG_REGEX =
91
91
  /@(route|resource|appRoot|param|gqlContext|serverRoute)\b/;
92
92
 
93
- /**
94
- *
95
- * @query {abc} 123
96
- */
97
93
  function collectPastoriaMetadata(project: Project): PastoriaMetadata {
98
94
  const resources = new Map<string, RouterResource>();
99
95
  const routes = new Map<string, RouterRoute>();
@@ -115,8 +111,6 @@ function collectPastoriaMetadata(project: Project): PastoriaMetadata {
115
111
 
116
112
  sourceFile.getExportSymbols().forEach((symbol) => {
117
113
  let routerResource = null as [string, RouterResource] | null;
118
- const resourceQueries = new Map<string, string>();
119
- const resourceEntryPoints = new Map<string, string>();
120
114
  let routerRoute = null as [string, RouterRoute] | null;
121
115
  const routeParams = new Map<string, ts.Type>();
122
116
 
@@ -148,8 +142,8 @@ function collectPastoriaMetadata(project: Project): PastoriaMetadata {
148
142
  {
149
143
  sourceFile,
150
144
  symbol,
151
- queries: resourceQueries,
152
- entryPoints: resourceEntryPoints,
145
+ queries: new Map(),
146
+ entryPoints: new Map(),
153
147
  },
154
148
  ];
155
149
  break;
@@ -158,26 +152,26 @@ function collectPastoriaMetadata(project: Project): PastoriaMetadata {
158
152
  serverHandlers.set(tag.comment, {sourceFile, symbol});
159
153
  break;
160
154
  }
161
- case 'query': {
162
- const match = tag.comment.match(
163
- /^\s*\{\s*(?<query>\w+)\s*\}\s+(?<name>\w+)\s*$/,
164
- )?.groups;
165
-
166
- if (match && match.query && match.name) {
167
- resourceQueries.set(match.name, match.query);
168
- }
169
- break;
170
- }
171
- case 'entrypoint': {
172
- const match = tag.comment.match(
173
- /^\s*\{\s*(?<resource>[\w#]+)\s*\}\s+(?<name>\w+)\s*$/,
174
- )?.groups;
175
-
176
- if (match && match.resource && match.name) {
177
- resourceEntryPoints.set(match.name, match.resource);
178
- }
179
- break;
180
- }
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
+ // }
181
175
  }
182
176
  } else {
183
177
  // Handle tags without comments (like @ExportedSymbol, @gqlContext)
@@ -244,11 +238,31 @@ function collectPastoriaMetadata(project: Project): PastoriaMetadata {
244
238
  .forEach(visitJSDocTags);
245
239
 
246
240
  if (routerRoute != null) {
247
- routes.set(routerRoute[0], routerRoute[1]);
241
+ const [routeName, routeSymbol] = routerRoute;
242
+ routes.set(routeName, routeSymbol);
243
+
244
+ const {entryPoints, queries} = getResourceQueriesAndEntryPoints(
245
+ routeSymbol.symbol,
246
+ );
247
+
248
+ if (routerResource == null && (entryPoints.size || queries.size)) {
249
+ resources.set(`route(${routeName})`, {
250
+ ...routeSymbol,
251
+ entryPoints,
252
+ queries,
253
+ });
254
+ }
248
255
  }
249
256
 
250
257
  if (routerResource != null) {
251
- resources.set(routerResource[0], routerResource[1]);
258
+ const [resourceName, resourceSymbol] = routerResource;
259
+ const {entryPoints, queries} = getResourceQueriesAndEntryPoints(
260
+ resourceSymbol.symbol,
261
+ );
262
+
263
+ resourceSymbol.queries = queries;
264
+ resourceSymbol.entryPoints = entryPoints;
265
+ resources.set(resourceName, resourceSymbol);
252
266
  }
253
267
  });
254
268
  }
@@ -257,6 +271,63 @@ function collectPastoriaMetadata(project: Project): PastoriaMetadata {
257
271
  return {resources, routes, appRoot, gqlContext, serverHandlers};
258
272
  }
259
273
 
274
+ function getResourceQueriesAndEntryPoints(symbol: Symbol): {
275
+ queries: Map<string, string>;
276
+ entryPoints: Map<string, string>;
277
+ } {
278
+ const resource = {
279
+ queries: new Map<string, string>(),
280
+ entryPoints: new Map<string, string>(),
281
+ };
282
+
283
+ const decl = symbol.getValueDeclaration();
284
+ if (!decl) return resource;
285
+
286
+ const t = decl.getType();
287
+ const aliasSymbol = t.getAliasSymbol();
288
+
289
+ if (aliasSymbol?.getName() === 'EntryPointComponent') {
290
+ const [queries, entryPoints] = t.getAliasTypeArguments();
291
+
292
+ queries?.getProperties().forEach((prop) => {
293
+ const queryRef = prop.getName();
294
+ const queryName = prop
295
+ .getValueDeclaration()
296
+ ?.getType()
297
+ .getAliasSymbol()
298
+ ?.getName();
299
+
300
+ if (queryName) {
301
+ resource.queries.set(queryRef, queryName);
302
+ }
303
+ });
304
+
305
+ entryPoints?.getProperties().forEach((prop) => {
306
+ const epRef = prop.getName();
307
+ const resourceName = prop
308
+ .getValueDeclaration()
309
+ ?.asKind(SyntaxKind.PropertySignature)
310
+ ?.getTypeNode()
311
+ ?.asKind(SyntaxKind.TypeReference)
312
+ ?.getTypeArguments()
313
+ .at(0)
314
+ ?.asKind(SyntaxKind.TypeReference)
315
+ ?.getTypeArguments()
316
+ .at(0)
317
+ ?.asKind(SyntaxKind.LiteralType)
318
+ ?.getLiteral()
319
+ .asKind(SyntaxKind.StringLiteral)
320
+ ?.getLiteralText();
321
+
322
+ if (resourceName) {
323
+ resource.entryPoints.set(epRef, resourceName);
324
+ }
325
+ });
326
+ }
327
+
328
+ return resource;
329
+ }
330
+
260
331
  function zodSchemaOfType(tc: ts.TypeChecker, t: ts.Type): string {
261
332
  if (t.getFlags() & TypeFlags.String) {
262
333
  return `z.pipe(z.string(), z.transform(decodeURIComponent))`;
@@ -355,6 +426,7 @@ async function generateRouter(project: Project, metadata: PastoriaMetadata) {
355
426
  const routerTemplate = await loadRouterTemplates(project, 'router.tsx');
356
427
  const tc = project.getTypeChecker().compilerObject;
357
428
 
429
+ let didAddJsResourceImport = false;
358
430
  const routerConf = routerTemplate
359
431
  .getVariableDeclarationOrThrow('ROUTER_CONF')
360
432
  .getInitializerIfKindOrThrow(SyntaxKind.AsExpression)
@@ -378,12 +450,15 @@ async function generateRouter(project: Project, metadata: PastoriaMetadata) {
378
450
 
379
451
  if (isResourceRoute) {
380
452
  const [resourceName, resource] = isResourceRoute;
381
- const entryPointFunctionName = `entrypoint_${resourceName.replace(/\W/g, '__')}`;
453
+ const entryPointFunctionName = `entrypoint_${resourceName.replace(/\W/g, '')}`;
382
454
 
383
- routerTemplate.addImportDeclaration({
384
- moduleSpecifier: './js_resource',
385
- namedImports: ['JSResource', 'ModuleType'],
386
- });
455
+ if (!didAddJsResourceImport) {
456
+ didAddJsResourceImport = true;
457
+ routerTemplate.addImportDeclaration({
458
+ moduleSpecifier: './js_resource',
459
+ namedImports: ['JSResource', 'ModuleType'],
460
+ });
461
+ }
387
462
 
388
463
  const consumedQueries = new Set<string>();
389
464
  routerTemplate.addFunction({