over-zero 0.0.20 → 0.0.23

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/cjs/cli.cjs CHANGED
@@ -27,6 +27,12 @@ var import_model = require("@sinclair/typebox-codegen/model"),
27
27
  import_node_fs = require("node:fs"),
28
28
  import_node_path = require("node:path"),
29
29
  ts = __toESM(require("typescript"), 1);
30
+ function writeFileIfChanged(filePath, content) {
31
+ try {
32
+ if ((0, import_node_fs.existsSync)(filePath) && (0, import_node_fs.readFileSync)(filePath, "utf-8") === content) return !1;
33
+ } catch {}
34
+ return (0, import_node_fs.writeFileSync)(filePath, content, "utf-8"), !0;
35
+ }
30
36
  const generateQueries = (0, import_citty.defineCommand)({
31
37
  meta: {
32
38
  name: "generate-queries",
@@ -129,8 +135,9 @@ const generate = (0, import_citty.defineCommand)({
129
135
  file: f,
130
136
  hasSchema: (0, import_node_fs.readFileSync)((0, import_node_path.resolve)(modelsDir, f), "utf-8").includes("export const schema = table(")
131
137
  })))).filter(c => c.hasSchema).map(c => c.file),
132
- [modelsOutput, typesOutput, tablesOutput] = await Promise.all([Promise.resolve(generateModelsFile(allModelFiles)), Promise.resolve(generateTypesFile(filesWithSchema)), Promise.resolve(generateTablesFile(filesWithSchema))]);
133
- if (await Promise.all([Promise.resolve((0, import_node_fs.writeFileSync)((0, import_node_path.resolve)(generatedDir, "models.ts"), modelsOutput, "utf-8")), Promise.resolve((0, import_node_fs.writeFileSync)((0, import_node_path.resolve)(generatedDir, "types.ts"), typesOutput, "utf-8")), Promise.resolve((0, import_node_fs.writeFileSync)((0, import_node_path.resolve)(generatedDir, "tables.ts"), tablesOutput, "utf-8"))]), (0, import_node_fs.existsSync)(queriesDir)) {
138
+ [modelsOutput, typesOutput, tablesOutput, readmeOutput] = await Promise.all([Promise.resolve(generateModelsFile(allModelFiles)), Promise.resolve(generateTypesFile(filesWithSchema)), Promise.resolve(generateTablesFile(filesWithSchema)), Promise.resolve(generateReadmeFile())]),
139
+ filesChanged = (await Promise.all([Promise.resolve(writeFileIfChanged((0, import_node_path.resolve)(generatedDir, "models.ts"), modelsOutput)), Promise.resolve(writeFileIfChanged((0, import_node_path.resolve)(generatedDir, "types.ts"), typesOutput)), Promise.resolve(writeFileIfChanged((0, import_node_path.resolve)(generatedDir, "tables.ts"), tablesOutput)), Promise.resolve(writeFileIfChanged((0, import_node_path.resolve)(generatedDir, "README.md"), readmeOutput))])).filter(Boolean).length;
140
+ if (filesChanged > 0 && console.info(` \u{1F4DD} Updated ${filesChanged} file(s)`), (0, import_node_fs.existsSync)(queriesDir)) {
134
141
  const queryFiles = (0, import_node_fs.readdirSync)(queriesDir).filter(f => f.endsWith(".ts")),
135
142
  allQueries = (await Promise.all(queryFiles.map(async file => {
136
143
  const filePath = (0, import_node_path.resolve)(queriesDir, file),
@@ -172,7 +179,7 @@ const generate = (0, import_citty.defineCommand)({
172
179
  return queries;
173
180
  }))).flat(),
174
181
  queriesOutput = generateQueriesFile(allQueries);
175
- (0, import_node_fs.writeFileSync)((0, import_node_path.resolve)(generatedDir, "queries.ts"), queriesOutput, "utf-8"), console.info(`\u2713 ${allModelFiles.length} models (${filesWithSchema.length} schemas), ${allQueries.length} queries`);
182
+ writeFileIfChanged((0, import_node_path.resolve)(generatedDir, "queries.ts"), queriesOutput) && console.info(" \u{1F4DD} Updated queries.ts"), console.info(`\u2713 ${allModelFiles.length} models (${filesWithSchema.length} schemas), ${allQueries.length} queries`);
176
183
  } else console.info(`\u2713 ${allModelFiles.length} models (${filesWithSchema.length} schemas)`);
177
184
  if (args.after) try {
178
185
  const {
@@ -286,6 +293,65 @@ ${Array.from(queryByFile.keys()).sort().map(file => `import * as ${file}Queries
286
293
  ` + syncedQueries + `
287
294
  `;
288
295
  }
296
+ function generateReadmeFile() {
297
+ return `# generated
298
+
299
+ this folder is auto-generated by over-zero. do not edit files here directly.
300
+
301
+ ## what's generated
302
+
303
+ - \`models.ts\` - exports all models from ../models
304
+ - \`types.ts\` - typescript types derived from table schemas
305
+ - \`tables.ts\` - exports table schemas for type inference
306
+ - \`queries.ts\` - synced query definitions with validators
307
+
308
+ ## usage guidelines
309
+
310
+ **do not import generated files outside of the data folder.**
311
+
312
+ ### queries
313
+
314
+ don't import queries from this folder on the client. instead, import from \`../queries/\`:
315
+
316
+ \`\`\`ts
317
+ // \u274C bad - don't import from generated
318
+ import { channelMessages } from '~/data/generated/queries'
319
+
320
+ // \u2705 good - import from queries
321
+ import { channelMessages } from '~/data/queries/message'
322
+ \`\`\`
323
+
324
+ ### types
325
+
326
+ you can import types from this folder, but prefer re-exporting from \`../types.ts\`:
327
+
328
+ \`\`\`ts
329
+ // \u274C okay but not preferred
330
+ import type { Message } from '~/data/generated/types'
331
+
332
+ // \u2705 better - re-export from types.ts
333
+ import type { Message } from '~/data/types'
334
+ \`\`\`
335
+
336
+ ## regeneration
337
+
338
+ files are regenerated when you run:
339
+
340
+ \`\`\`bash
341
+ bun over-zero generate
342
+ \`\`\`
343
+
344
+ or in watch mode:
345
+
346
+ \`\`\`bash
347
+ bun over-zero generate --watch
348
+ \`\`\`
349
+
350
+ ## more info
351
+
352
+ see the [over-zero readme](./node_modules/over-zero/README.md) for full documentation.
353
+ `;
354
+ }
289
355
  const main = (0, import_citty.defineCommand)({
290
356
  meta: {
291
357
  name: "over-zero",
package/dist/cjs/cli.js CHANGED
@@ -19,6 +19,14 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
19
19
  mod
20
20
  ));
21
21
  var import_model = require("@sinclair/typebox-codegen/model"), import_typescript = require("@sinclair/typebox-codegen/typescript"), import_citty = require("citty"), import_node_fs = require("node:fs"), import_node_path = require("node:path"), ts = __toESM(require("typescript"), 1);
22
+ function writeFileIfChanged(filePath, content) {
23
+ try {
24
+ if ((0, import_node_fs.existsSync)(filePath) && (0, import_node_fs.readFileSync)(filePath, "utf-8") === content)
25
+ return !1;
26
+ } catch {
27
+ }
28
+ return (0, import_node_fs.writeFileSync)(filePath, content, "utf-8"), !0;
29
+ }
22
30
  const generateQueries = (0, import_citty.defineCommand)({
23
31
  meta: {
24
32
  name: "generate-queries",
@@ -107,22 +115,26 @@ const generate = (0, import_citty.defineCommand)({
107
115
  "export const schema = table("
108
116
  )
109
117
  }))
110
- )).filter((c) => c.hasSchema).map((c) => c.file), [modelsOutput, typesOutput, tablesOutput] = await Promise.all([
118
+ )).filter((c) => c.hasSchema).map((c) => c.file), [modelsOutput, typesOutput, tablesOutput, readmeOutput] = await Promise.all([
111
119
  Promise.resolve(generateModelsFile(allModelFiles)),
112
120
  Promise.resolve(generateTypesFile(filesWithSchema)),
113
- Promise.resolve(generateTablesFile(filesWithSchema))
114
- ]);
115
- if (await Promise.all([
121
+ Promise.resolve(generateTablesFile(filesWithSchema)),
122
+ Promise.resolve(generateReadmeFile())
123
+ ]), filesChanged = (await Promise.all([
124
+ Promise.resolve(
125
+ writeFileIfChanged((0, import_node_path.resolve)(generatedDir, "models.ts"), modelsOutput)
126
+ ),
116
127
  Promise.resolve(
117
- (0, import_node_fs.writeFileSync)((0, import_node_path.resolve)(generatedDir, "models.ts"), modelsOutput, "utf-8")
128
+ writeFileIfChanged((0, import_node_path.resolve)(generatedDir, "types.ts"), typesOutput)
118
129
  ),
119
130
  Promise.resolve(
120
- (0, import_node_fs.writeFileSync)((0, import_node_path.resolve)(generatedDir, "types.ts"), typesOutput, "utf-8")
131
+ writeFileIfChanged((0, import_node_path.resolve)(generatedDir, "tables.ts"), tablesOutput)
121
132
  ),
122
133
  Promise.resolve(
123
- (0, import_node_fs.writeFileSync)((0, import_node_path.resolve)(generatedDir, "tables.ts"), tablesOutput, "utf-8")
134
+ writeFileIfChanged((0, import_node_path.resolve)(generatedDir, "README.md"), readmeOutput)
124
135
  )
125
- ]), (0, import_node_fs.existsSync)(queriesDir)) {
136
+ ])).filter(Boolean).length;
137
+ if (filesChanged > 0 && console.info(` \u{1F4DD} Updated ${filesChanged} file(s)`), (0, import_node_fs.existsSync)(queriesDir)) {
126
138
  const queryFiles = (0, import_node_fs.readdirSync)(queriesDir).filter((f) => f.endsWith(".ts")), allQueries = (await Promise.all(
127
139
  queryFiles.map(async (file) => {
128
140
  const filePath = (0, import_node_path.resolve)(queriesDir, file), fileBaseName = (0, import_node_path.basename)(file, ".ts"), queries = [];
@@ -166,7 +178,10 @@ const generate = (0, import_citty.defineCommand)({
166
178
  return queries;
167
179
  })
168
180
  )).flat(), queriesOutput = generateQueriesFile(allQueries);
169
- (0, import_node_fs.writeFileSync)((0, import_node_path.resolve)(generatedDir, "queries.ts"), queriesOutput, "utf-8"), console.info(
181
+ writeFileIfChanged(
182
+ (0, import_node_path.resolve)(generatedDir, "queries.ts"),
183
+ queriesOutput
184
+ ) && console.info(" \u{1F4DD} Updated queries.ts"), console.info(
170
185
  `\u2713 ${allModelFiles.length} models (${filesWithSchema.length} schemas), ${allQueries.length} queries`
171
186
  );
172
187
  } else
@@ -276,6 +291,65 @@ ${Array.from(queryByFile.keys()).sort().map((file) => `import * as ${file}Querie
276
291
  ` + syncedQueries + `
277
292
  `;
278
293
  }
294
+ function generateReadmeFile() {
295
+ return `# generated
296
+
297
+ this folder is auto-generated by over-zero. do not edit files here directly.
298
+
299
+ ## what's generated
300
+
301
+ - \`models.ts\` - exports all models from ../models
302
+ - \`types.ts\` - typescript types derived from table schemas
303
+ - \`tables.ts\` - exports table schemas for type inference
304
+ - \`queries.ts\` - synced query definitions with validators
305
+
306
+ ## usage guidelines
307
+
308
+ **do not import generated files outside of the data folder.**
309
+
310
+ ### queries
311
+
312
+ don't import queries from this folder on the client. instead, import from \`../queries/\`:
313
+
314
+ \`\`\`ts
315
+ // \u274C bad - don't import from generated
316
+ import { channelMessages } from '~/data/generated/queries'
317
+
318
+ // \u2705 good - import from queries
319
+ import { channelMessages } from '~/data/queries/message'
320
+ \`\`\`
321
+
322
+ ### types
323
+
324
+ you can import types from this folder, but prefer re-exporting from \`../types.ts\`:
325
+
326
+ \`\`\`ts
327
+ // \u274C okay but not preferred
328
+ import type { Message } from '~/data/generated/types'
329
+
330
+ // \u2705 better - re-export from types.ts
331
+ import type { Message } from '~/data/types'
332
+ \`\`\`
333
+
334
+ ## regeneration
335
+
336
+ files are regenerated when you run:
337
+
338
+ \`\`\`bash
339
+ bun over-zero generate
340
+ \`\`\`
341
+
342
+ or in watch mode:
343
+
344
+ \`\`\`bash
345
+ bun over-zero generate --watch
346
+ \`\`\`
347
+
348
+ ## more info
349
+
350
+ see the [over-zero readme](./node_modules/over-zero/README.md) for full documentation.
351
+ `;
352
+ }
279
353
  const main = (0, import_citty.defineCommand)({
280
354
  meta: {
281
355
  name: "over-zero",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/cli.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["readdirSync", "writeFileSync"]
6
6
  }
@@ -28,80 +28,89 @@ var import_model = require("@sinclair/typebox-codegen/model"),
28
28
  import_citty = require("citty"),
29
29
  import_fs = require("fs"),
30
30
  import_path = require("path"),
31
- ts = __toESM(require("typescript"), 1),
32
- generateQueries = (0, import_citty.defineCommand)({
33
- meta: {
34
- name: "generate-queries",
35
- description: "Generate server-side query validators from TypeScript query functions"
36
- },
37
- args: {
38
- dir: {
39
- type: "positional",
40
- description: "Directory containing query files",
41
- required: !1,
42
- default: "."
43
- }
44
- },
45
- async run(param) {
46
- var {
47
- args
48
- } = param,
49
- dir = (0, import_path.resolve)(args.dir),
50
- {
51
- readdirSync: readdirSync2,
52
- writeFileSync: writeFileSync2
53
- } = await import("fs"),
54
- files = readdirSync2(dir).filter(function (f) {
55
- return f.endsWith(".ts");
56
- }),
57
- allQueries = [],
58
- results = await Promise.all(files.map(async function (file) {
59
- var filePath = (0, import_path.resolve)(dir, file),
60
- queries = [];
61
- try {
62
- var content = (0, import_fs.readFileSync)(filePath, "utf-8"),
63
- sourceFile = ts.createSourceFile(filePath, content, ts.ScriptTarget.Latest, !0);
64
- ts.forEachChild(sourceFile, function (node) {
65
- if (ts.isVariableStatement(node)) {
66
- var _node_modifiers,
67
- exportModifier = (_node_modifiers = node.modifiers) === null || _node_modifiers === void 0 ? void 0 : _node_modifiers.find(function (m) {
68
- return m.kind === ts.SyntaxKind.ExportKeyword;
31
+ ts = __toESM(require("typescript"), 1);
32
+ function writeFileIfChanged(filePath, content) {
33
+ try {
34
+ if ((0, import_fs.existsSync)(filePath)) {
35
+ var existingContent = (0, import_fs.readFileSync)(filePath, "utf-8");
36
+ if (existingContent === content) return !1;
37
+ }
38
+ } catch {}
39
+ return (0, import_fs.writeFileSync)(filePath, content, "utf-8"), !0;
40
+ }
41
+ var generateQueries = (0, import_citty.defineCommand)({
42
+ meta: {
43
+ name: "generate-queries",
44
+ description: "Generate server-side query validators from TypeScript query functions"
45
+ },
46
+ args: {
47
+ dir: {
48
+ type: "positional",
49
+ description: "Directory containing query files",
50
+ required: !1,
51
+ default: "."
52
+ }
53
+ },
54
+ async run(param) {
55
+ var {
56
+ args
57
+ } = param,
58
+ dir = (0, import_path.resolve)(args.dir),
59
+ {
60
+ readdirSync: readdirSync2,
61
+ writeFileSync: writeFileSync2
62
+ } = await import("fs"),
63
+ files = readdirSync2(dir).filter(function (f) {
64
+ return f.endsWith(".ts");
65
+ }),
66
+ allQueries = [],
67
+ results = await Promise.all(files.map(async function (file) {
68
+ var filePath = (0, import_path.resolve)(dir, file),
69
+ queries = [];
70
+ try {
71
+ var content = (0, import_fs.readFileSync)(filePath, "utf-8"),
72
+ sourceFile = ts.createSourceFile(filePath, content, ts.ScriptTarget.Latest, !0);
73
+ ts.forEachChild(sourceFile, function (node) {
74
+ if (ts.isVariableStatement(node)) {
75
+ var _node_modifiers,
76
+ exportModifier = (_node_modifiers = node.modifiers) === null || _node_modifiers === void 0 ? void 0 : _node_modifiers.find(function (m) {
77
+ return m.kind === ts.SyntaxKind.ExportKeyword;
78
+ });
79
+ if (!exportModifier) return;
80
+ var declaration = node.declarationList.declarations[0];
81
+ if (!declaration || !ts.isVariableDeclaration(declaration)) return;
82
+ var name = declaration.name.getText(sourceFile);
83
+ if (declaration.initializer && ts.isArrowFunction(declaration.initializer)) {
84
+ var params = declaration.initializer.parameters,
85
+ paramType = "void";
86
+ if (params.length > 0) {
87
+ var _param_type,
88
+ _$param = params[0];
89
+ paramType = ((_param_type = _$param.type) === null || _param_type === void 0 ? void 0 : _param_type.getText(sourceFile)) || "unknown";
90
+ }
91
+ try {
92
+ var typeString = `type QueryParams = ${paramType}`,
93
+ model = import_typescript.TypeScriptToModel.Generate(typeString),
94
+ valibotCode = import_model.ModelToValibot.Generate(model);
95
+ queries.push({
96
+ name,
97
+ params: paramType,
98
+ valibotCode
69
99
  });
70
- if (!exportModifier) return;
71
- var declaration = node.declarationList.declarations[0];
72
- if (!declaration || !ts.isVariableDeclaration(declaration)) return;
73
- var name = declaration.name.getText(sourceFile);
74
- if (declaration.initializer && ts.isArrowFunction(declaration.initializer)) {
75
- var params = declaration.initializer.parameters,
76
- paramType = "void";
77
- if (params.length > 0) {
78
- var _param_type,
79
- _$param = params[0];
80
- paramType = ((_param_type = _$param.type) === null || _param_type === void 0 ? void 0 : _param_type.getText(sourceFile)) || "unknown";
81
- }
82
- try {
83
- var typeString = `type QueryParams = ${paramType}`,
84
- model = import_typescript.TypeScriptToModel.Generate(typeString),
85
- valibotCode = import_model.ModelToValibot.Generate(model);
86
- queries.push({
87
- name,
88
- params: paramType,
89
- valibotCode
90
- });
91
- } catch (err) {
92
- console.error(`\u2717 ${name}: ${err}`);
93
- }
100
+ } catch (err) {
101
+ console.error(`\u2717 ${name}: ${err}`);
94
102
  }
95
103
  }
96
- });
97
- } catch (err) {
98
- console.error(`Error processing ${file}:`, err);
99
- }
100
- return queries;
101
- }));
102
- allQueries.push(...results.flat()), console.info(`\u2713 ${allQueries.length} query validators`);
103
- }
104
- });
104
+ }
105
+ });
106
+ } catch (err) {
107
+ console.error(`Error processing ${file}:`, err);
108
+ }
109
+ return queries;
110
+ }));
111
+ allQueries.push(...results.flat()), console.info(`\u2713 ${allQueries.length} query validators`);
112
+ }
113
+ });
105
114
  var generate = (0, import_citty.defineCommand)({
106
115
  meta: {
107
116
  name: "generate",
@@ -152,8 +161,10 @@ var generate = (0, import_citty.defineCommand)({
152
161
  }).map(function (c) {
153
162
  return c.file;
154
163
  }),
155
- [modelsOutput, typesOutput, tablesOutput] = await Promise.all([Promise.resolve(generateModelsFile(allModelFiles)), Promise.resolve(generateTypesFile(filesWithSchema)), Promise.resolve(generateTablesFile(filesWithSchema))]);
156
- if (await Promise.all([Promise.resolve((0, import_fs.writeFileSync)((0, import_path.resolve)(generatedDir, "models.ts"), modelsOutput, "utf-8")), Promise.resolve((0, import_fs.writeFileSync)((0, import_path.resolve)(generatedDir, "types.ts"), typesOutput, "utf-8")), Promise.resolve((0, import_fs.writeFileSync)((0, import_path.resolve)(generatedDir, "tables.ts"), tablesOutput, "utf-8"))]), (0, import_fs.existsSync)(queriesDir)) {
164
+ [modelsOutput, typesOutput, tablesOutput, readmeOutput] = await Promise.all([Promise.resolve(generateModelsFile(allModelFiles)), Promise.resolve(generateTypesFile(filesWithSchema)), Promise.resolve(generateTablesFile(filesWithSchema)), Promise.resolve(generateReadmeFile())]),
165
+ writeResults = await Promise.all([Promise.resolve(writeFileIfChanged((0, import_path.resolve)(generatedDir, "models.ts"), modelsOutput)), Promise.resolve(writeFileIfChanged((0, import_path.resolve)(generatedDir, "types.ts"), typesOutput)), Promise.resolve(writeFileIfChanged((0, import_path.resolve)(generatedDir, "tables.ts"), tablesOutput)), Promise.resolve(writeFileIfChanged((0, import_path.resolve)(generatedDir, "README.md"), readmeOutput))]),
166
+ filesChanged = writeResults.filter(Boolean).length;
167
+ if (filesChanged > 0 && console.info(` \u{1F4DD} Updated ${filesChanged} file(s)`), (0, import_fs.existsSync)(queriesDir)) {
157
168
  var queryFiles = (0, import_fs.readdirSync)(queriesDir).filter(function (f) {
158
169
  return f.endsWith(".ts");
159
170
  }),
@@ -205,8 +216,9 @@ var generate = (0, import_citty.defineCommand)({
205
216
  return queries;
206
217
  })),
207
218
  allQueries = queryResults.flat(),
208
- queriesOutput = generateQueriesFile(allQueries);
209
- (0, import_fs.writeFileSync)((0, import_path.resolve)(generatedDir, "queries.ts"), queriesOutput, "utf-8"), console.info(`\u2713 ${allModelFiles.length} models (${filesWithSchema.length} schemas), ${allQueries.length} queries`);
219
+ queriesOutput = generateQueriesFile(allQueries),
220
+ queriesChanged = writeFileIfChanged((0, import_path.resolve)(generatedDir, "queries.ts"), queriesOutput);
221
+ queriesChanged && console.info(" \u{1F4DD} Updated queries.ts"), console.info(`\u2713 ${allModelFiles.length} models (${filesWithSchema.length} schemas), ${allQueries.length} queries`);
210
222
  } else console.info(`\u2713 ${allModelFiles.length} models (${filesWithSchema.length} schemas)`);
211
223
  if (args.after) try {
212
224
  var {
@@ -372,6 +384,65 @@ ${queryImports}
372
384
  ` + syncedQueries + `
373
385
  `;
374
386
  }
387
+ function generateReadmeFile() {
388
+ return `# generated
389
+
390
+ this folder is auto-generated by over-zero. do not edit files here directly.
391
+
392
+ ## what's generated
393
+
394
+ - \`models.ts\` - exports all models from ../models
395
+ - \`types.ts\` - typescript types derived from table schemas
396
+ - \`tables.ts\` - exports table schemas for type inference
397
+ - \`queries.ts\` - synced query definitions with validators
398
+
399
+ ## usage guidelines
400
+
401
+ **do not import generated files outside of the data folder.**
402
+
403
+ ### queries
404
+
405
+ don't import queries from this folder on the client. instead, import from \`../queries/\`:
406
+
407
+ \`\`\`ts
408
+ // \u274C bad - don't import from generated
409
+ import { channelMessages } from '~/data/generated/queries'
410
+
411
+ // \u2705 good - import from queries
412
+ import { channelMessages } from '~/data/queries/message'
413
+ \`\`\`
414
+
415
+ ### types
416
+
417
+ you can import types from this folder, but prefer re-exporting from \`../types.ts\`:
418
+
419
+ \`\`\`ts
420
+ // \u274C okay but not preferred
421
+ import type { Message } from '~/data/generated/types'
422
+
423
+ // \u2705 better - re-export from types.ts
424
+ import type { Message } from '~/data/types'
425
+ \`\`\`
426
+
427
+ ## regeneration
428
+
429
+ files are regenerated when you run:
430
+
431
+ \`\`\`bash
432
+ bun over-zero generate
433
+ \`\`\`
434
+
435
+ or in watch mode:
436
+
437
+ \`\`\`bash
438
+ bun over-zero generate --watch
439
+ \`\`\`
440
+
441
+ ## more info
442
+
443
+ see the [over-zero readme](./node_modules/over-zero/README.md) for full documentation.
444
+ `;
445
+ }
375
446
  var main = (0, import_citty.defineCommand)({
376
447
  meta: {
377
448
  name: "over-zero",
@@ -1 +1 @@
1
- {"version":3,"names":["import_model","require","import_typescript","import_citty","import_fs","import_path","ts","__toESM","generateQueries","defineCommand","meta","name","description","args","dir","type","required","default","run","param","resolve","readdirSync","readdirSync2","writeFileSync","writeFileSync2","files","filter","f","endsWith","allQueries","results","Promise","all","map","file","filePath","queries","content","readFileSync","sourceFile","createSourceFile","ScriptTarget","Latest","forEachChild","node","isVariableStatement","_node_modifiers","exportModifier","modifiers","find","m","kind","SyntaxKind","ExportKeyword","declaration","declarationList","declarations","isVariableDeclaration","getText","initializer","isArrowFunction","params","parameters","paramType","length","_param_type","_$param","typeString","model","TypeScriptToModel","Generate","valibotCode","ModelToValibot","push","err","console","error","flat","info","generate","watch","after","baseDir","modelsDir","generatedDir","queriesDir","runGenerate","existsSync","mkdirSync","recursive","allModelFiles","sort","schemaChecks","hasSchema","includes","filesWithSchema","c","modelsOutput","typesOutput","tablesOutput","generateModelsFile","generateTypesFile","generateTablesFile","queryFiles","queryResults","fileBaseName","basename","queriesOutput","generateQueriesFile","execSync","stdio","chokidar","debounceTimer","debouncedRegenerate","path","event","clearTimeout","setTimeout","watcher","persistent","ignoreInitial","on","modelFiles","modelNames","getImportName","imports","importName","join","sortedByImportName","a","b","localeCompare","modelsObj","getSchemaName","typeExports","pascalName","charAt","toUpperCase","slice","schemaName","getExportName","exports","sortedQueries","queryByFile","Map","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","next","done","q","value","has","set","get","return","queryImports","Array","from","keys"],"sources":["../../src/cli.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["import_model","require","import_typescript","import_citty","import_fs","import_path","ts","__toESM","writeFileIfChanged","filePath","content","existsSync","existingContent","readFileSync","writeFileSync","generateQueries","defineCommand","meta","name","description","args","dir","type","required","default","run","param","resolve","readdirSync","readdirSync2","writeFileSync2","files","filter","f","endsWith","allQueries","results","Promise","all","map","file","queries","sourceFile","createSourceFile","ScriptTarget","Latest","forEachChild","node","isVariableStatement","_node_modifiers","exportModifier","modifiers","find","m","kind","SyntaxKind","ExportKeyword","declaration","declarationList","declarations","isVariableDeclaration","getText","initializer","isArrowFunction","params","parameters","paramType","length","_param_type","_$param","typeString","model","TypeScriptToModel","Generate","valibotCode","ModelToValibot","push","err","console","error","flat","info","generate","watch","after","baseDir","modelsDir","generatedDir","queriesDir","runGenerate","mkdirSync","recursive","allModelFiles","sort","schemaChecks","hasSchema","includes","filesWithSchema","c","modelsOutput","typesOutput","tablesOutput","readmeOutput","generateModelsFile","generateTypesFile","generateTablesFile","generateReadmeFile","writeResults","filesChanged","Boolean","queryFiles","queryResults","fileBaseName","basename","queriesOutput","generateQueriesFile","queriesChanged","execSync","stdio","chokidar","debounceTimer","debouncedRegenerate","path","event","clearTimeout","setTimeout","watcher","persistent","ignoreInitial","on","modelFiles","modelNames","getImportName","imports","importName","join","sortedByImportName","a","b","localeCompare","modelsObj","getSchemaName","typeExports","pascalName","charAt","toUpperCase","slice","schemaName","getExportName","exports","sortedQueries","queryByFile","Map","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","next","done","q","value","has","set","get","return","queryImports","Array","from","keys","syncedQueries","q2","lines","split","l","trim","schemaLineIndex","findIndex","startsWith","validatorDef","schemaLines","openBraces","started","i","line","cleaned","replace","match","wrappedValidator","queryFn"],"sources":["../../src/cli.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/dist/esm/cli.js CHANGED
@@ -5,6 +5,14 @@ import { defineCommand, runMain } from "citty";
5
5
  import { existsSync, mkdirSync, readFileSync, readdirSync, writeFileSync } from "node:fs";
6
6
  import { basename, resolve } from "node:path";
7
7
  import * as ts from "typescript";
8
+ function writeFileIfChanged(filePath, content) {
9
+ try {
10
+ if (existsSync(filePath) && readFileSync(filePath, "utf-8") === content)
11
+ return !1;
12
+ } catch {
13
+ }
14
+ return writeFileSync(filePath, content, "utf-8"), !0;
15
+ }
8
16
  const generateQueries = defineCommand({
9
17
  meta: {
10
18
  name: "generate-queries",
@@ -93,22 +101,26 @@ const generate = defineCommand({
93
101
  "export const schema = table("
94
102
  )
95
103
  }))
96
- )).filter((c) => c.hasSchema).map((c) => c.file), [modelsOutput, typesOutput, tablesOutput] = await Promise.all([
104
+ )).filter((c) => c.hasSchema).map((c) => c.file), [modelsOutput, typesOutput, tablesOutput, readmeOutput] = await Promise.all([
97
105
  Promise.resolve(generateModelsFile(allModelFiles)),
98
106
  Promise.resolve(generateTypesFile(filesWithSchema)),
99
- Promise.resolve(generateTablesFile(filesWithSchema))
100
- ]);
101
- if (await Promise.all([
107
+ Promise.resolve(generateTablesFile(filesWithSchema)),
108
+ Promise.resolve(generateReadmeFile())
109
+ ]), filesChanged = (await Promise.all([
110
+ Promise.resolve(
111
+ writeFileIfChanged(resolve(generatedDir, "models.ts"), modelsOutput)
112
+ ),
102
113
  Promise.resolve(
103
- writeFileSync(resolve(generatedDir, "models.ts"), modelsOutput, "utf-8")
114
+ writeFileIfChanged(resolve(generatedDir, "types.ts"), typesOutput)
104
115
  ),
105
116
  Promise.resolve(
106
- writeFileSync(resolve(generatedDir, "types.ts"), typesOutput, "utf-8")
117
+ writeFileIfChanged(resolve(generatedDir, "tables.ts"), tablesOutput)
107
118
  ),
108
119
  Promise.resolve(
109
- writeFileSync(resolve(generatedDir, "tables.ts"), tablesOutput, "utf-8")
120
+ writeFileIfChanged(resolve(generatedDir, "README.md"), readmeOutput)
110
121
  )
111
- ]), existsSync(queriesDir)) {
122
+ ])).filter(Boolean).length;
123
+ if (filesChanged > 0 && console.info(` \u{1F4DD} Updated ${filesChanged} file(s)`), existsSync(queriesDir)) {
112
124
  const queryFiles = readdirSync(queriesDir).filter((f) => f.endsWith(".ts")), allQueries = (await Promise.all(
113
125
  queryFiles.map(async (file) => {
114
126
  const filePath = resolve(queriesDir, file), fileBaseName = basename(file, ".ts"), queries = [];
@@ -152,7 +164,10 @@ const generate = defineCommand({
152
164
  return queries;
153
165
  })
154
166
  )).flat(), queriesOutput = generateQueriesFile(allQueries);
155
- writeFileSync(resolve(generatedDir, "queries.ts"), queriesOutput, "utf-8"), console.info(
167
+ writeFileIfChanged(
168
+ resolve(generatedDir, "queries.ts"),
169
+ queriesOutput
170
+ ) && console.info(" \u{1F4DD} Updated queries.ts"), console.info(
156
171
  `\u2713 ${allModelFiles.length} models (${filesWithSchema.length} schemas), ${allQueries.length} queries`
157
172
  );
158
173
  } else
@@ -262,6 +277,65 @@ ${Array.from(queryByFile.keys()).sort().map((file) => `import * as ${file}Querie
262
277
  ` + syncedQueries + `
263
278
  `;
264
279
  }
280
+ function generateReadmeFile() {
281
+ return `# generated
282
+
283
+ this folder is auto-generated by over-zero. do not edit files here directly.
284
+
285
+ ## what's generated
286
+
287
+ - \`models.ts\` - exports all models from ../models
288
+ - \`types.ts\` - typescript types derived from table schemas
289
+ - \`tables.ts\` - exports table schemas for type inference
290
+ - \`queries.ts\` - synced query definitions with validators
291
+
292
+ ## usage guidelines
293
+
294
+ **do not import generated files outside of the data folder.**
295
+
296
+ ### queries
297
+
298
+ don't import queries from this folder on the client. instead, import from \`../queries/\`:
299
+
300
+ \`\`\`ts
301
+ // \u274C bad - don't import from generated
302
+ import { channelMessages } from '~/data/generated/queries'
303
+
304
+ // \u2705 good - import from queries
305
+ import { channelMessages } from '~/data/queries/message'
306
+ \`\`\`
307
+
308
+ ### types
309
+
310
+ you can import types from this folder, but prefer re-exporting from \`../types.ts\`:
311
+
312
+ \`\`\`ts
313
+ // \u274C okay but not preferred
314
+ import type { Message } from '~/data/generated/types'
315
+
316
+ // \u2705 better - re-export from types.ts
317
+ import type { Message } from '~/data/types'
318
+ \`\`\`
319
+
320
+ ## regeneration
321
+
322
+ files are regenerated when you run:
323
+
324
+ \`\`\`bash
325
+ bun over-zero generate
326
+ \`\`\`
327
+
328
+ or in watch mode:
329
+
330
+ \`\`\`bash
331
+ bun over-zero generate --watch
332
+ \`\`\`
333
+
334
+ ## more info
335
+
336
+ see the [over-zero readme](./node_modules/over-zero/README.md) for full documentation.
337
+ `;
338
+ }
265
339
  const main = defineCommand({
266
340
  meta: {
267
341
  name: "over-zero",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/cli.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["readdirSync", "writeFileSync"]
6
6
  }
package/dist/esm/cli.mjs CHANGED
@@ -5,6 +5,12 @@ import { defineCommand, runMain } from "citty";
5
5
  import { existsSync, mkdirSync, readFileSync, readdirSync, writeFileSync } from "node:fs";
6
6
  import { basename, resolve } from "node:path";
7
7
  import * as ts from "typescript";
8
+ function writeFileIfChanged(filePath, content) {
9
+ try {
10
+ if (existsSync(filePath) && readFileSync(filePath, "utf-8") === content) return !1;
11
+ } catch {}
12
+ return writeFileSync(filePath, content, "utf-8"), !0;
13
+ }
8
14
  const generateQueries = defineCommand({
9
15
  meta: {
10
16
  name: "generate-queries",
@@ -107,8 +113,9 @@ const generate = defineCommand({
107
113
  file: f,
108
114
  hasSchema: readFileSync(resolve(modelsDir, f), "utf-8").includes("export const schema = table(")
109
115
  })))).filter(c => c.hasSchema).map(c => c.file),
110
- [modelsOutput, typesOutput, tablesOutput] = await Promise.all([Promise.resolve(generateModelsFile(allModelFiles)), Promise.resolve(generateTypesFile(filesWithSchema)), Promise.resolve(generateTablesFile(filesWithSchema))]);
111
- if (await Promise.all([Promise.resolve(writeFileSync(resolve(generatedDir, "models.ts"), modelsOutput, "utf-8")), Promise.resolve(writeFileSync(resolve(generatedDir, "types.ts"), typesOutput, "utf-8")), Promise.resolve(writeFileSync(resolve(generatedDir, "tables.ts"), tablesOutput, "utf-8"))]), existsSync(queriesDir)) {
116
+ [modelsOutput, typesOutput, tablesOutput, readmeOutput] = await Promise.all([Promise.resolve(generateModelsFile(allModelFiles)), Promise.resolve(generateTypesFile(filesWithSchema)), Promise.resolve(generateTablesFile(filesWithSchema)), Promise.resolve(generateReadmeFile())]),
117
+ filesChanged = (await Promise.all([Promise.resolve(writeFileIfChanged(resolve(generatedDir, "models.ts"), modelsOutput)), Promise.resolve(writeFileIfChanged(resolve(generatedDir, "types.ts"), typesOutput)), Promise.resolve(writeFileIfChanged(resolve(generatedDir, "tables.ts"), tablesOutput)), Promise.resolve(writeFileIfChanged(resolve(generatedDir, "README.md"), readmeOutput))])).filter(Boolean).length;
118
+ if (filesChanged > 0 && console.info(` \u{1F4DD} Updated ${filesChanged} file(s)`), existsSync(queriesDir)) {
112
119
  const queryFiles = readdirSync(queriesDir).filter(f => f.endsWith(".ts")),
113
120
  allQueries = (await Promise.all(queryFiles.map(async file => {
114
121
  const filePath = resolve(queriesDir, file),
@@ -150,7 +157,7 @@ const generate = defineCommand({
150
157
  return queries;
151
158
  }))).flat(),
152
159
  queriesOutput = generateQueriesFile(allQueries);
153
- writeFileSync(resolve(generatedDir, "queries.ts"), queriesOutput, "utf-8"), console.info(`\u2713 ${allModelFiles.length} models (${filesWithSchema.length} schemas), ${allQueries.length} queries`);
160
+ writeFileIfChanged(resolve(generatedDir, "queries.ts"), queriesOutput) && console.info(" \u{1F4DD} Updated queries.ts"), console.info(`\u2713 ${allModelFiles.length} models (${filesWithSchema.length} schemas), ${allQueries.length} queries`);
154
161
  } else console.info(`\u2713 ${allModelFiles.length} models (${filesWithSchema.length} schemas)`);
155
162
  if (args.after) try {
156
163
  const {
@@ -264,6 +271,65 @@ ${Array.from(queryByFile.keys()).sort().map(file => `import * as ${file}Queries
264
271
  ` + syncedQueries + `
265
272
  `;
266
273
  }
274
+ function generateReadmeFile() {
275
+ return `# generated
276
+
277
+ this folder is auto-generated by over-zero. do not edit files here directly.
278
+
279
+ ## what's generated
280
+
281
+ - \`models.ts\` - exports all models from ../models
282
+ - \`types.ts\` - typescript types derived from table schemas
283
+ - \`tables.ts\` - exports table schemas for type inference
284
+ - \`queries.ts\` - synced query definitions with validators
285
+
286
+ ## usage guidelines
287
+
288
+ **do not import generated files outside of the data folder.**
289
+
290
+ ### queries
291
+
292
+ don't import queries from this folder on the client. instead, import from \`../queries/\`:
293
+
294
+ \`\`\`ts
295
+ // \u274C bad - don't import from generated
296
+ import { channelMessages } from '~/data/generated/queries'
297
+
298
+ // \u2705 good - import from queries
299
+ import { channelMessages } from '~/data/queries/message'
300
+ \`\`\`
301
+
302
+ ### types
303
+
304
+ you can import types from this folder, but prefer re-exporting from \`../types.ts\`:
305
+
306
+ \`\`\`ts
307
+ // \u274C okay but not preferred
308
+ import type { Message } from '~/data/generated/types'
309
+
310
+ // \u2705 better - re-export from types.ts
311
+ import type { Message } from '~/data/types'
312
+ \`\`\`
313
+
314
+ ## regeneration
315
+
316
+ files are regenerated when you run:
317
+
318
+ \`\`\`bash
319
+ bun over-zero generate
320
+ \`\`\`
321
+
322
+ or in watch mode:
323
+
324
+ \`\`\`bash
325
+ bun over-zero generate --watch
326
+ \`\`\`
327
+
328
+ ## more info
329
+
330
+ see the [over-zero readme](./node_modules/over-zero/README.md) for full documentation.
331
+ `;
332
+ }
267
333
  const main = defineCommand({
268
334
  meta: {
269
335
  name: "over-zero",
@@ -1 +1 @@
1
- {"version":3,"names":["ModelToValibot","TypeScriptToModel","defineCommand","runMain","existsSync","mkdirSync","readFileSync","readdirSync","writeFileSync","basename","resolve","ts","generateQueries","meta","name","description","args","dir","type","required","default","run","readdirSync2","writeFileSync2","files","filter","f","endsWith","allQueries","results","Promise","all","map","file","filePath","queries","content","sourceFile","createSourceFile","ScriptTarget","Latest","forEachChild","node","isVariableStatement","modifiers","find","m","kind","SyntaxKind","ExportKeyword","declaration","declarationList","declarations","isVariableDeclaration","getText","initializer","isArrowFunction","params","parameters","paramType","length","typeString","model","Generate","valibotCode","push","err","console","error","flat","info","generate","watch","after","baseDir","modelsDir","generatedDir","queriesDir","runGenerate","recursive","allModelFiles","sort","filesWithSchema","hasSchema","includes","c","modelsOutput","typesOutput","tablesOutput","generateModelsFile","generateTypesFile","generateTablesFile","queryFiles","fileBaseName","queriesOutput","generateQueriesFile","execSync","stdio","chokidar","debounceTimer","debouncedRegenerate","path","event","clearTimeout","setTimeout","watcher","persistent","ignoreInitial","on","modelFiles","modelNames","getImportName","imports","join","modelsObj","a","b","localeCompare","getSchemaName","pascalName","charAt","toUpperCase","slice","schemaName","getExportName","sortedQueries","queryByFile","Map","q","has","set","get","Array","from","keys","syncedQueries","lines","split","l","trim","schemaLineIndex","findIndex","startsWith","validatorDef","schemaLines","openBraces","started","i","line","cleaned","replace","match","wrappedValidator","queryFn","main","subCommands"],"sources":["../../src/cli.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["ModelToValibot","TypeScriptToModel","defineCommand","runMain","existsSync","mkdirSync","readFileSync","readdirSync","writeFileSync","basename","resolve","ts","writeFileIfChanged","filePath","content","generateQueries","meta","name","description","args","dir","type","required","default","run","readdirSync2","writeFileSync2","files","filter","f","endsWith","allQueries","results","Promise","all","map","file","queries","sourceFile","createSourceFile","ScriptTarget","Latest","forEachChild","node","isVariableStatement","modifiers","find","m","kind","SyntaxKind","ExportKeyword","declaration","declarationList","declarations","isVariableDeclaration","getText","initializer","isArrowFunction","params","parameters","paramType","length","typeString","model","Generate","valibotCode","push","err","console","error","flat","info","generate","watch","after","baseDir","modelsDir","generatedDir","queriesDir","runGenerate","recursive","allModelFiles","sort","filesWithSchema","hasSchema","includes","c","modelsOutput","typesOutput","tablesOutput","readmeOutput","generateModelsFile","generateTypesFile","generateTablesFile","generateReadmeFile","filesChanged","Boolean","queryFiles","fileBaseName","queriesOutput","generateQueriesFile","execSync","stdio","chokidar","debounceTimer","debouncedRegenerate","path","event","clearTimeout","setTimeout","watcher","persistent","ignoreInitial","on","modelFiles","modelNames","getImportName","imports","join","modelsObj","a","b","localeCompare","getSchemaName","pascalName","charAt","toUpperCase","slice","schemaName","getExportName","sortedQueries","queryByFile","Map","q","has","set","get","Array","from","keys","syncedQueries","lines","split","l","trim","schemaLineIndex","findIndex","startsWith","validatorDef","schemaLines","openBraces","started","i","line","cleaned","replace","match","wrappedValidator","queryFn","main","subCommands"],"sources":["../../src/cli.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -5,6 +5,15 @@ import { defineCommand, runMain } from "citty";
5
5
  import { existsSync, mkdirSync, readFileSync, readdirSync, writeFileSync } from "fs";
6
6
  import { basename, resolve } from "path";
7
7
  import * as ts from "typescript";
8
+ function writeFileIfChanged(filePath, content) {
9
+ try {
10
+ if (existsSync(filePath)) {
11
+ var existingContent = readFileSync(filePath, "utf-8");
12
+ if (existingContent === content) return !1;
13
+ }
14
+ } catch {}
15
+ return writeFileSync(filePath, content, "utf-8"), !0;
16
+ }
8
17
  var generateQueries = defineCommand({
9
18
  meta: {
10
19
  name: "generate-queries",
@@ -128,8 +137,10 @@ var generate = defineCommand({
128
137
  }).map(function (c) {
129
138
  return c.file;
130
139
  }),
131
- [modelsOutput, typesOutput, tablesOutput] = await Promise.all([Promise.resolve(generateModelsFile(allModelFiles)), Promise.resolve(generateTypesFile(filesWithSchema)), Promise.resolve(generateTablesFile(filesWithSchema))]);
132
- if (await Promise.all([Promise.resolve(writeFileSync(resolve(generatedDir, "models.ts"), modelsOutput, "utf-8")), Promise.resolve(writeFileSync(resolve(generatedDir, "types.ts"), typesOutput, "utf-8")), Promise.resolve(writeFileSync(resolve(generatedDir, "tables.ts"), tablesOutput, "utf-8"))]), existsSync(queriesDir)) {
140
+ [modelsOutput, typesOutput, tablesOutput, readmeOutput] = await Promise.all([Promise.resolve(generateModelsFile(allModelFiles)), Promise.resolve(generateTypesFile(filesWithSchema)), Promise.resolve(generateTablesFile(filesWithSchema)), Promise.resolve(generateReadmeFile())]),
141
+ writeResults = await Promise.all([Promise.resolve(writeFileIfChanged(resolve(generatedDir, "models.ts"), modelsOutput)), Promise.resolve(writeFileIfChanged(resolve(generatedDir, "types.ts"), typesOutput)), Promise.resolve(writeFileIfChanged(resolve(generatedDir, "tables.ts"), tablesOutput)), Promise.resolve(writeFileIfChanged(resolve(generatedDir, "README.md"), readmeOutput))]),
142
+ filesChanged = writeResults.filter(Boolean).length;
143
+ if (filesChanged > 0 && console.info(` \u{1F4DD} Updated ${filesChanged} file(s)`), existsSync(queriesDir)) {
133
144
  var queryFiles = readdirSync(queriesDir).filter(function (f) {
134
145
  return f.endsWith(".ts");
135
146
  }),
@@ -181,8 +192,9 @@ var generate = defineCommand({
181
192
  return queries;
182
193
  })),
183
194
  allQueries = queryResults.flat(),
184
- queriesOutput = generateQueriesFile(allQueries);
185
- writeFileSync(resolve(generatedDir, "queries.ts"), queriesOutput, "utf-8"), console.info(`\u2713 ${allModelFiles.length} models (${filesWithSchema.length} schemas), ${allQueries.length} queries`);
195
+ queriesOutput = generateQueriesFile(allQueries),
196
+ queriesChanged = writeFileIfChanged(resolve(generatedDir, "queries.ts"), queriesOutput);
197
+ queriesChanged && console.info(" \u{1F4DD} Updated queries.ts"), console.info(`\u2713 ${allModelFiles.length} models (${filesWithSchema.length} schemas), ${allQueries.length} queries`);
186
198
  } else console.info(`\u2713 ${allModelFiles.length} models (${filesWithSchema.length} schemas)`);
187
199
  if (args.after) try {
188
200
  var {
@@ -348,6 +360,65 @@ ${queryImports}
348
360
  ` + syncedQueries + `
349
361
  `;
350
362
  }
363
+ function generateReadmeFile() {
364
+ return `# generated
365
+
366
+ this folder is auto-generated by over-zero. do not edit files here directly.
367
+
368
+ ## what's generated
369
+
370
+ - \`models.ts\` - exports all models from ../models
371
+ - \`types.ts\` - typescript types derived from table schemas
372
+ - \`tables.ts\` - exports table schemas for type inference
373
+ - \`queries.ts\` - synced query definitions with validators
374
+
375
+ ## usage guidelines
376
+
377
+ **do not import generated files outside of the data folder.**
378
+
379
+ ### queries
380
+
381
+ don't import queries from this folder on the client. instead, import from \`../queries/\`:
382
+
383
+ \`\`\`ts
384
+ // \u274C bad - don't import from generated
385
+ import { channelMessages } from '~/data/generated/queries'
386
+
387
+ // \u2705 good - import from queries
388
+ import { channelMessages } from '~/data/queries/message'
389
+ \`\`\`
390
+
391
+ ### types
392
+
393
+ you can import types from this folder, but prefer re-exporting from \`../types.ts\`:
394
+
395
+ \`\`\`ts
396
+ // \u274C okay but not preferred
397
+ import type { Message } from '~/data/generated/types'
398
+
399
+ // \u2705 better - re-export from types.ts
400
+ import type { Message } from '~/data/types'
401
+ \`\`\`
402
+
403
+ ## regeneration
404
+
405
+ files are regenerated when you run:
406
+
407
+ \`\`\`bash
408
+ bun over-zero generate
409
+ \`\`\`
410
+
411
+ or in watch mode:
412
+
413
+ \`\`\`bash
414
+ bun over-zero generate --watch
415
+ \`\`\`
416
+
417
+ ## more info
418
+
419
+ see the [over-zero readme](./node_modules/over-zero/README.md) for full documentation.
420
+ `;
421
+ }
351
422
  var main = defineCommand({
352
423
  meta: {
353
424
  name: "over-zero",
@@ -1 +1 @@
1
- {"version":3,"names":["ModelToValibot","TypeScriptToModel","defineCommand","runMain","existsSync","mkdirSync","readFileSync","readdirSync","writeFileSync","basename","resolve","ts","generateQueries","meta","name","description","args","dir","type","required","default","run","param","readdirSync2","writeFileSync2","files","filter","f","endsWith","allQueries","results","Promise","all","map","file","filePath","queries","content","sourceFile","createSourceFile","ScriptTarget","Latest","forEachChild","node","isVariableStatement","_node_modifiers","exportModifier","modifiers","find","m","kind","SyntaxKind","ExportKeyword","declaration","declarationList","declarations","isVariableDeclaration","getText","initializer","isArrowFunction","params","parameters","paramType","length","_param_type","_$param","typeString","model","Generate","valibotCode","push","err","console","error","flat","info","generate","watch","after","baseDir","modelsDir","generatedDir","queriesDir","runGenerate","recursive","allModelFiles","sort","schemaChecks","hasSchema","includes","filesWithSchema","c","modelsOutput","typesOutput","tablesOutput","generateModelsFile","generateTypesFile","generateTablesFile","queryFiles","queryResults","fileBaseName","queriesOutput","generateQueriesFile","execSync","stdio","chokidar","debounceTimer","debouncedRegenerate","path","event","clearTimeout","setTimeout","watcher","persistent","ignoreInitial","on","modelFiles","modelNames","getImportName","imports","importName","join","sortedByImportName","a","b","localeCompare","modelsObj","getSchemaName","typeExports","pascalName","charAt","toUpperCase","slice","schemaName","getExportName","exports","sortedQueries","queryByFile","Map","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","next","done","q","value","has","set","get","return","queryImports","Array","from","keys"],"sources":["../../src/cli.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["ModelToValibot","TypeScriptToModel","defineCommand","runMain","existsSync","mkdirSync","readFileSync","readdirSync","writeFileSync","basename","resolve","ts","writeFileIfChanged","filePath","content","existingContent","generateQueries","meta","name","description","args","dir","type","required","default","run","param","readdirSync2","writeFileSync2","files","filter","f","endsWith","allQueries","results","Promise","all","map","file","queries","sourceFile","createSourceFile","ScriptTarget","Latest","forEachChild","node","isVariableStatement","_node_modifiers","exportModifier","modifiers","find","m","kind","SyntaxKind","ExportKeyword","declaration","declarationList","declarations","isVariableDeclaration","getText","initializer","isArrowFunction","params","parameters","paramType","length","_param_type","_$param","typeString","model","Generate","valibotCode","push","err","console","error","flat","info","generate","watch","after","baseDir","modelsDir","generatedDir","queriesDir","runGenerate","recursive","allModelFiles","sort","schemaChecks","hasSchema","includes","filesWithSchema","c","modelsOutput","typesOutput","tablesOutput","readmeOutput","generateModelsFile","generateTypesFile","generateTablesFile","generateReadmeFile","writeResults","filesChanged","Boolean","queryFiles","queryResults","fileBaseName","queriesOutput","generateQueriesFile","queriesChanged","execSync","stdio","chokidar","debounceTimer","debouncedRegenerate","path","event","clearTimeout","setTimeout","watcher","persistent","ignoreInitial","on","modelFiles","modelNames","getImportName","imports","importName","join","sortedByImportName","a","b","localeCompare","modelsObj","getSchemaName","typeExports","pascalName","charAt","toUpperCase","slice","schemaName","getExportName","exports","sortedQueries","queryByFile","Map","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","next","done","q","value","has","set","get","return","queryImports","Array","from","keys","syncedQueries","q2","lines","split","l","trim","schemaLineIndex","findIndex","startsWith","validatorDef","schemaLines","openBraces","started","i","line","cleaned","replace","match","wrappedValidator","queryFn"],"sources":["../../src/cli.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "over-zero",
3
- "version": "0.0.20",
3
+ "version": "0.0.23",
4
4
  "sideEffects": false,
5
5
  "source": "src/index.ts",
6
6
  "main": "dist/cjs",
@@ -47,7 +47,7 @@
47
47
  "dependencies": {
48
48
  "@sinclair/typebox": "^0.34.41",
49
49
  "@sinclair/typebox-codegen": "^0.11.1",
50
- "@vxrn/helpers": "0.0.20",
50
+ "@vxrn/helpers": "^0.0.21",
51
51
  "chokidar": "^4.0.3",
52
52
  "citty": "^0.1.6",
53
53
  "pg": "^8.13.1",
package/src/cli.ts CHANGED
@@ -6,6 +6,26 @@ import { existsSync, mkdirSync, readFileSync, readdirSync, writeFileSync } from
6
6
  import { basename, resolve } from 'node:path'
7
7
  import * as ts from 'typescript'
8
8
 
9
+ /**
10
+ * Write file only if the content has changed.
11
+ * This prevents unnecessary rebuilds from file watchers.
12
+ */
13
+ function writeFileIfChanged(filePath: string, content: string): boolean {
14
+ try {
15
+ if (existsSync(filePath)) {
16
+ const existingContent = readFileSync(filePath, 'utf-8')
17
+ if (existingContent === content) {
18
+ return false // no change
19
+ }
20
+ }
21
+ } catch {
22
+ // if we can't read the file, proceed with writing
23
+ }
24
+
25
+ writeFileSync(filePath, content, 'utf-8')
26
+ return true // file was written
27
+ }
28
+
9
29
  const generateQueries = defineCommand({
10
30
  meta: {
11
31
  name: 'generate-queries',
@@ -196,25 +216,34 @@ const generate = defineCommand({
196
216
  const filesWithSchema = schemaChecks.filter((c) => c.hasSchema).map((c) => c.file)
197
217
 
198
218
  // generate all files in parallel
199
- const [modelsOutput, typesOutput, tablesOutput] = await Promise.all([
219
+ const [modelsOutput, typesOutput, tablesOutput, readmeOutput] = await Promise.all([
200
220
  Promise.resolve(generateModelsFile(allModelFiles)),
201
221
  Promise.resolve(generateTypesFile(filesWithSchema)),
202
222
  Promise.resolve(generateTablesFile(filesWithSchema)),
223
+ Promise.resolve(generateReadmeFile()),
203
224
  ])
204
225
 
205
226
  // write all generated files in parallel
206
- await Promise.all([
227
+ const writeResults = await Promise.all([
228
+ Promise.resolve(
229
+ writeFileIfChanged(resolve(generatedDir, 'models.ts'), modelsOutput)
230
+ ),
207
231
  Promise.resolve(
208
- writeFileSync(resolve(generatedDir, 'models.ts'), modelsOutput, 'utf-8')
232
+ writeFileIfChanged(resolve(generatedDir, 'types.ts'), typesOutput)
209
233
  ),
210
234
  Promise.resolve(
211
- writeFileSync(resolve(generatedDir, 'types.ts'), typesOutput, 'utf-8')
235
+ writeFileIfChanged(resolve(generatedDir, 'tables.ts'), tablesOutput)
212
236
  ),
213
237
  Promise.resolve(
214
- writeFileSync(resolve(generatedDir, 'tables.ts'), tablesOutput, 'utf-8')
238
+ writeFileIfChanged(resolve(generatedDir, 'README.md'), readmeOutput)
215
239
  ),
216
240
  ])
217
241
 
242
+ const filesChanged = writeResults.filter(Boolean).length
243
+ if (filesChanged > 0) {
244
+ console.info(` 📝 Updated ${filesChanged} file(s)`)
245
+ }
246
+
218
247
  // generate synced queries
219
248
  if (existsSync(queriesDir)) {
220
249
  const queryFiles = readdirSync(queriesDir).filter((f) => f.endsWith('.ts'))
@@ -295,7 +324,14 @@ const generate = defineCommand({
295
324
 
296
325
  const allQueries = queryResults.flat()
297
326
  const queriesOutput = generateQueriesFile(allQueries)
298
- writeFileSync(resolve(generatedDir, 'queries.ts'), queriesOutput, 'utf-8')
327
+ const queriesChanged = writeFileIfChanged(
328
+ resolve(generatedDir, 'queries.ts'),
329
+ queriesOutput
330
+ )
331
+
332
+ if (queriesChanged) {
333
+ console.info(` 📝 Updated queries.ts`)
334
+ }
299
335
 
300
336
  console.info(
301
337
  `✓ ${allModelFiles.length} models (${filesWithSchema.length} schemas), ${allQueries.length} queries`
@@ -495,6 +531,66 @@ ${queryImports}
495
531
  return imports + '\n' + syncedQueries + '\n'
496
532
  }
497
533
 
534
+ function generateReadmeFile() {
535
+ return `# generated
536
+
537
+ this folder is auto-generated by over-zero. do not edit files here directly.
538
+
539
+ ## what's generated
540
+
541
+ - \`models.ts\` - exports all models from ../models
542
+ - \`types.ts\` - typescript types derived from table schemas
543
+ - \`tables.ts\` - exports table schemas for type inference
544
+ - \`queries.ts\` - synced query definitions with validators
545
+
546
+ ## usage guidelines
547
+
548
+ **do not import generated files outside of the data folder.**
549
+
550
+ ### queries
551
+
552
+ don't import queries from this folder on the client. instead, import from \`../queries/\`:
553
+
554
+ \`\`\`ts
555
+ // ❌ bad - don't import from generated
556
+ import { channelMessages } from '~/data/generated/queries'
557
+
558
+ // ✅ good - import from queries
559
+ import { channelMessages } from '~/data/queries/message'
560
+ \`\`\`
561
+
562
+ ### types
563
+
564
+ you can import types from this folder, but prefer re-exporting from \`../types.ts\`:
565
+
566
+ \`\`\`ts
567
+ // ❌ okay but not preferred
568
+ import type { Message } from '~/data/generated/types'
569
+
570
+ // ✅ better - re-export from types.ts
571
+ import type { Message } from '~/data/types'
572
+ \`\`\`
573
+
574
+ ## regeneration
575
+
576
+ files are regenerated when you run:
577
+
578
+ \`\`\`bash
579
+ bun over-zero generate
580
+ \`\`\`
581
+
582
+ or in watch mode:
583
+
584
+ \`\`\`bash
585
+ bun over-zero generate --watch
586
+ \`\`\`
587
+
588
+ ## more info
589
+
590
+ see the [over-zero readme](./node_modules/over-zero/README.md) for full documentation.
591
+ `
592
+ }
593
+
498
594
  const main = defineCommand({
499
595
  meta: {
500
596
  name: 'over-zero',