neoorm 0.8.2 → 0.8.4
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/bin/neoorm.js +22 -50
- package/dist/bin/neoorm.js.map +1 -1
- package/dist/codegen/column-ts.d.ts +41 -0
- package/dist/codegen/column-ts.d.ts.map +1 -0
- package/dist/codegen/column-ts.js +269 -0
- package/dist/codegen/column-ts.js.map +1 -0
- package/dist/codegen/emit-includes.d.ts.map +1 -1
- package/dist/codegen/emit-includes.js +13 -4
- package/dist/codegen/emit-includes.js.map +1 -1
- package/dist/codegen/emit-models.d.ts +2 -1
- package/dist/codegen/emit-models.d.ts.map +1 -1
- package/dist/codegen/emit-models.js +100 -38
- package/dist/codegen/emit-models.js.map +1 -1
- package/dist/codegen/emit-query-types.d.ts +3 -0
- package/dist/codegen/emit-query-types.d.ts.map +1 -0
- package/dist/codegen/emit-query-types.js +638 -0
- package/dist/codegen/emit-query-types.js.map +1 -0
- package/dist/codegen/generate.d.ts +2 -2
- package/dist/codegen/generate.d.ts.map +1 -1
- package/dist/codegen/generate.js +12 -32
- package/dist/codegen/generate.js.map +1 -1
- package/dist/dialect/mariadb.test.js +31 -6
- package/dist/dialect/mariadb.test.js.map +1 -1
- package/dist/dialect/mysql-family.d.ts +7 -0
- package/dist/dialect/mysql-family.d.ts.map +1 -1
- package/dist/dialect/mysql-family.js +25 -3
- package/dist/dialect/mysql-family.js.map +1 -1
- package/dist/dialect/mysql.test.js +37 -5
- package/dist/dialect/mysql.test.js.map +1 -1
- package/dist/dialect/postgres.d.ts.map +1 -1
- package/dist/dialect/postgres.js +1 -0
- package/dist/dialect/postgres.js.map +1 -1
- package/dist/dialect/sqlite.d.ts.map +1 -1
- package/dist/dialect/sqlite.js +2 -1
- package/dist/dialect/sqlite.js.map +1 -1
- package/dist/dialect/types.d.ts +2 -0
- package/dist/dialect/types.d.ts.map +1 -1
- package/dist/init/prompt.d.ts +21 -0
- package/dist/init/prompt.d.ts.map +1 -0
- package/dist/init/prompt.js +127 -0
- package/dist/init/prompt.js.map +1 -0
- package/dist/init/scaffold.d.ts +9 -0
- package/dist/init/scaffold.d.ts.map +1 -1
- package/dist/init/scaffold.js +22 -13
- package/dist/init/scaffold.js.map +1 -1
- package/dist/init/templates.d.ts +1 -0
- package/dist/init/templates.d.ts.map +1 -1
- package/dist/init/templates.js +1 -1
- package/dist/init/templates.js.map +1 -1
- package/dist/init/validate.d.ts +12 -0
- package/dist/init/validate.d.ts.map +1 -0
- package/dist/init/validate.js +51 -0
- package/dist/init/validate.js.map +1 -0
- package/dist/runtime/client.d.ts +13 -7
- package/dist/runtime/client.d.ts.map +1 -1
- package/dist/runtime/client.js +3 -1
- package/dist/runtime/client.js.map +1 -1
- package/dist/runtime/client.test.js +1 -0
- package/dist/runtime/client.test.js.map +1 -1
- package/dist/runtime/driver-sqlite.test.js +12 -0
- package/dist/runtime/driver-sqlite.test.js.map +1 -1
- package/dist/runtime/driver.d.ts.map +1 -1
- package/dist/runtime/driver.js +16 -8
- package/dist/runtime/driver.js.map +1 -1
- package/dist/runtime/executor.d.ts +1 -0
- package/dist/runtime/executor.d.ts.map +1 -1
- package/dist/runtime/executor.js +12 -5
- package/dist/runtime/executor.js.map +1 -1
- package/dist/runtime/mariadb-driver.d.ts.map +1 -1
- package/dist/runtime/mariadb-driver.js +50 -10
- package/dist/runtime/mariadb-driver.js.map +1 -1
- package/dist/runtime/mysql-driver.d.ts.map +1 -1
- package/dist/runtime/mysql-driver.js +8 -4
- package/dist/runtime/mysql-driver.js.map +1 -1
- package/dist/runtime/mysql-family-pool.test.js +178 -6
- package/dist/runtime/mysql-family-pool.test.js.map +1 -1
- package/dist/runtime/query/aggregate.d.ts.map +1 -1
- package/dist/runtime/query/aggregate.js +33 -2
- package/dist/runtime/query/aggregate.js.map +1 -1
- package/dist/runtime/query/compile-aggregate.d.ts +1 -0
- package/dist/runtime/query/compile-aggregate.d.ts.map +1 -1
- package/dist/runtime/query/compile-aggregate.js +12 -3
- package/dist/runtime/query/compile-aggregate.js.map +1 -1
- package/dist/runtime/query/compile-where.d.ts.map +1 -1
- package/dist/runtime/query/compile-where.js +6 -1
- package/dist/runtime/query/compile-where.js.map +1 -1
- package/dist/runtime/query/compile-write.d.ts +8 -2
- package/dist/runtime/query/compile-write.d.ts.map +1 -1
- package/dist/runtime/query/compile-write.js +100 -8
- package/dist/runtime/query/compile-write.js.map +1 -1
- package/dist/runtime/query/compile.d.ts +2 -2
- package/dist/runtime/query/compile.d.ts.map +1 -1
- package/dist/runtime/query/compile.js +2 -2
- package/dist/runtime/query/compile.js.map +1 -1
- package/dist/runtime/query/create.d.ts.map +1 -1
- package/dist/runtime/query/create.js +19 -6
- package/dist/runtime/query/create.js.map +1 -1
- package/dist/runtime/query/delete.d.ts.map +1 -1
- package/dist/runtime/query/delete.js +45 -3
- package/dist/runtime/query/delete.js.map +1 -1
- package/dist/runtime/query/find.d.ts.map +1 -1
- package/dist/runtime/query/find.js +43 -15
- package/dist/runtime/query/find.js.map +1 -1
- package/dist/runtime/query/map-row.d.ts.map +1 -1
- package/dist/runtime/query/map-row.js +11 -2
- package/dist/runtime/query/map-row.js.map +1 -1
- package/dist/runtime/query/mutation-returning.d.ts +3 -1
- package/dist/runtime/query/mutation-returning.d.ts.map +1 -1
- package/dist/runtime/query/mutation-returning.js +22 -0
- package/dist/runtime/query/mutation-returning.js.map +1 -1
- package/dist/runtime/query/relation-planner.d.ts +2 -0
- package/dist/runtime/query/relation-planner.d.ts.map +1 -1
- package/dist/runtime/query/relation-planner.js +8 -2
- package/dist/runtime/query/relation-planner.js.map +1 -1
- package/dist/runtime/query/relation-writes.d.ts.map +1 -1
- package/dist/runtime/query/relation-writes.js +7 -2
- package/dist/runtime/query/relation-writes.js.map +1 -1
- package/dist/runtime/query/strip.d.ts.map +1 -1
- package/dist/runtime/query/strip.js +23 -3
- package/dist/runtime/query/strip.js.map +1 -1
- package/dist/runtime/query/table-index.d.ts +4 -0
- package/dist/runtime/query/table-index.d.ts.map +1 -1
- package/dist/runtime/query/table-index.js +13 -1
- package/dist/runtime/query/table-index.js.map +1 -1
- package/dist/runtime/query/unique.d.ts +6 -0
- package/dist/runtime/query/unique.d.ts.map +1 -1
- package/dist/runtime/query/unique.js +40 -4
- package/dist/runtime/query/unique.js.map +1 -1
- package/dist/runtime/query/unique.test.js +15 -1
- package/dist/runtime/query/unique.test.js.map +1 -1
- package/dist/runtime/query/update.d.ts.map +1 -1
- package/dist/runtime/query/update.js +100 -29
- package/dist/runtime/query/update.js.map +1 -1
- package/dist/runtime/transaction.test.js +22 -1
- package/dist/runtime/transaction.test.js.map +1 -1
- package/dist/runtime/types.d.ts +6 -6
- package/dist/runtime/types.d.ts.map +1 -1
- package/dist/schema/relation-types.d.ts +5 -5
- package/dist/schema/relation-types.d.ts.map +1 -1
- package/dist/schema/types.d.ts +3 -3
- package/dist/schema/types.d.ts.map +1 -1
- package/docs/cli.md +6 -4
- package/docs/getting-started.md +2 -0
- package/docs/mariadb.md +10 -6
- package/docs/mysql.md +4 -2
- package/docs/queries.md +15 -1
- package/package.json +2 -1
package/dist/bin/neoorm.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { writeFile } from "node:fs/promises";
|
|
3
3
|
import { join, resolve } from "node:path";
|
|
4
|
-
import { createInterface } from "node:readline/promises";
|
|
5
4
|
import { Command } from "commander";
|
|
6
5
|
import { Pool } from "pg";
|
|
7
6
|
import packageJson from "../../package.json" with { type: "json" };
|
|
@@ -11,6 +10,7 @@ import { isMariadbProvider, isMysqlFamilyProvider, isMysqlProvider, isPostgresPr
|
|
|
11
10
|
import { postgresDialect } from "../dialect/postgres.js";
|
|
12
11
|
import { dialectForProvider } from "../dialect/resolve.js";
|
|
13
12
|
import { sqliteDialect } from "../dialect/sqlite.js";
|
|
13
|
+
import { printInitComplete, resolveInitOptions } from "../init/prompt.js";
|
|
14
14
|
import { formatInitNextSteps, runInit } from "../init/scaffold.js";
|
|
15
15
|
import { introspectMysql, introspectPostgres, introspectSqlite, } from "../introspect/pull.js";
|
|
16
16
|
import { acquireMigrateDevLock } from "../migrate/dev-lock.js";
|
|
@@ -210,33 +210,6 @@ function normalizeProvider(input) {
|
|
|
210
210
|
return "mariadb";
|
|
211
211
|
return null;
|
|
212
212
|
}
|
|
213
|
-
async function promptForProvider() {
|
|
214
|
-
const rl = createInterface({
|
|
215
|
-
input: process.stdin,
|
|
216
|
-
output: process.stdout,
|
|
217
|
-
});
|
|
218
|
-
try {
|
|
219
|
-
const answer = await rl.question("Database provider? (1) PostgreSQL (2) SQLite (3) MySQL (4) MariaDB [1]: ");
|
|
220
|
-
const trimmed = answer.trim().toLowerCase();
|
|
221
|
-
if (trimmed === "2" || trimmed === "sqlite")
|
|
222
|
-
return "sqlite";
|
|
223
|
-
if (trimmed === "3" || trimmed === "mysql")
|
|
224
|
-
return "mysql";
|
|
225
|
-
if (trimmed === "4" || trimmed === "mariadb")
|
|
226
|
-
return "mariadb";
|
|
227
|
-
if (trimmed === "" ||
|
|
228
|
-
trimmed === "1" ||
|
|
229
|
-
trimmed === "postgresql" ||
|
|
230
|
-
trimmed === "postgres" ||
|
|
231
|
-
trimmed === "pg")
|
|
232
|
-
return "postgresql";
|
|
233
|
-
console.log(`Unknown choice "${answer}", defaulting to PostgreSQL`);
|
|
234
|
-
return "postgresql";
|
|
235
|
-
}
|
|
236
|
-
finally {
|
|
237
|
-
rl.close();
|
|
238
|
-
}
|
|
239
|
-
}
|
|
240
213
|
program
|
|
241
214
|
.command("init")
|
|
242
215
|
.description("Scaffold neoorm.config.ts, schema.ts, and .env.example (no codegen — run `neoorm migrate dev` after)")
|
|
@@ -245,8 +218,9 @@ program
|
|
|
245
218
|
.option("--out <dir>", "Generated output directory", "./neoorm")
|
|
246
219
|
.option("--provider <provider>", "Database provider (postgresql|postgres|sqlite|mysql|mariadb)")
|
|
247
220
|
.option("--database-url <url>", "Database URL / file path")
|
|
248
|
-
.action(async (options) => {
|
|
221
|
+
.action(async (options, command) => {
|
|
249
222
|
const cwd = process.cwd();
|
|
223
|
+
const interactive = Boolean(process.stdin.isTTY && process.stdout.isTTY);
|
|
250
224
|
try {
|
|
251
225
|
let provider;
|
|
252
226
|
if (options.provider) {
|
|
@@ -257,34 +231,32 @@ program
|
|
|
257
231
|
}
|
|
258
232
|
provider = normalized;
|
|
259
233
|
}
|
|
260
|
-
|
|
261
|
-
provider = await promptForProvider();
|
|
262
|
-
}
|
|
263
|
-
const result = await runInit({
|
|
234
|
+
const resolved = await resolveInitOptions({
|
|
264
235
|
cwd,
|
|
265
|
-
|
|
266
|
-
outDir: options.out,
|
|
236
|
+
interactive,
|
|
267
237
|
...(options.force ? { force: true } : {}),
|
|
268
238
|
...(provider ? { provider } : {}),
|
|
269
239
|
...(options.databaseUrl
|
|
270
240
|
? { databaseUrl: options.databaseUrl }
|
|
271
241
|
: {}),
|
|
242
|
+
...(command.getOptionValueSource("schema") === "cli"
|
|
243
|
+
? { schemaPath: options.schema }
|
|
244
|
+
: {}),
|
|
245
|
+
...(command.getOptionValueSource("out") === "cli"
|
|
246
|
+
? { outDir: options.out }
|
|
247
|
+
: {}),
|
|
272
248
|
});
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
}
|
|
285
|
-
for (const line of formatInitNextSteps(cwd, options.schema, options.out)) {
|
|
286
|
-
console.log(line);
|
|
287
|
-
}
|
|
249
|
+
const result = await runInit({
|
|
250
|
+
cwd,
|
|
251
|
+
schemaPath: resolved.schemaPath,
|
|
252
|
+
outDir: resolved.outDir,
|
|
253
|
+
provider: resolved.provider,
|
|
254
|
+
...(resolved.force ? { force: true } : {}),
|
|
255
|
+
...(resolved.databaseUrl
|
|
256
|
+
? { databaseUrl: resolved.databaseUrl }
|
|
257
|
+
: {}),
|
|
258
|
+
});
|
|
259
|
+
printInitComplete(result, formatInitNextSteps(cwd, resolved.schemaPath, resolved.outDir), interactive);
|
|
288
260
|
}
|
|
289
261
|
catch (err) {
|
|
290
262
|
console.error(err instanceof Error ? err.message : String(err));
|
package/dist/bin/neoorm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"neoorm.js","sourceRoot":"","sources":["../../src/bin/neoorm.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"neoorm.js","sourceRoot":"","sources":["../../src/bin/neoorm.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { Manifest, ManifestColumn, ManifestTable } from "../dialect/types.js";
|
|
2
|
+
import type { ValidationType } from "./validation/types.js";
|
|
3
|
+
export type EnumAlias = {
|
|
4
|
+
name: string;
|
|
5
|
+
values: readonly string[];
|
|
6
|
+
array: boolean;
|
|
7
|
+
};
|
|
8
|
+
export type EnumRegistry = {
|
|
9
|
+
aliasForColumn: (accessor: string, tsName: string) => string | null;
|
|
10
|
+
declarations: string[];
|
|
11
|
+
byName: Map<string, EnumAlias>;
|
|
12
|
+
};
|
|
13
|
+
/** Map validator-neutral JSON/validation IR to a TypeScript type string. */
|
|
14
|
+
export declare function validationTypeToTs(type: ValidationType): string;
|
|
15
|
+
/** Collect hoisted `export type X = ...` enum aliases for enum/enumArray columns. */
|
|
16
|
+
export declare function buildEnumRegistry(manifest: Manifest): EnumRegistry;
|
|
17
|
+
/**
|
|
18
|
+
* Resolved TS type for a manifest column (the `resolvedType` printer).
|
|
19
|
+
* Uses the plugin `columnTsType`, hoisted enum aliases, and JSON validation
|
|
20
|
+
* generics — never the schema builder chain.
|
|
21
|
+
*/
|
|
22
|
+
export declare function columnTsType(col: ManifestColumn, manifest: Manifest, enums?: EnumRegistry | null, tableAccessor?: string): string;
|
|
23
|
+
/** Non-nullable TS type for filter generic params (`StringFilter<PostStatus>`). */
|
|
24
|
+
export declare function columnNonNullTsType(col: ManifestColumn, manifest: Manifest, enums?: EnumRegistry | null, tableAccessor?: string): string;
|
|
25
|
+
/** SQL-name primary key mapped to TS names (empty when the table has no PK). */
|
|
26
|
+
export declare function pkTsNames(table: ManifestTable): string[];
|
|
27
|
+
/**
|
|
28
|
+
* Unique `where` candidates mirroring runtime `resolveUniqueConstraint`:
|
|
29
|
+
* PK group, single unique/primary columns, then unique btree indexes.
|
|
30
|
+
*/
|
|
31
|
+
export declare function uniqueKeyCandidates(table: ManifestTable): string[][];
|
|
32
|
+
/** `timestamps()` / `.defaultNow()` / `.updatedAt()` — ORM-owned, not client-writable. */
|
|
33
|
+
export declare function isManagedTimestamp(col: ManifestColumn): boolean;
|
|
34
|
+
export declare function isJunctionTable(manifest: Manifest, accessor: string): boolean;
|
|
35
|
+
export declare function isJunctionPkColumn(col: ManifestColumn, table: ManifestTable, isJunction: boolean): boolean;
|
|
36
|
+
export declare function isOmittedOnCreate(col: ManifestColumn, table: ManifestTable, isJunction: boolean): boolean;
|
|
37
|
+
export declare function isOmittedOnUpdate(col: ManifestColumn, table: ManifestTable, isJunction: boolean): boolean;
|
|
38
|
+
export declare function isCreateRequired(col: ManifestColumn, table: ManifestTable, isJunction: boolean): boolean;
|
|
39
|
+
export declare function updateScalarTsType(col: ManifestColumn, manifest: Manifest, enums?: EnumRegistry | null, tableAccessor?: string): string;
|
|
40
|
+
export declare function columnByTsNameOrThrow(table: ManifestTable, tsName: string): ManifestColumn;
|
|
41
|
+
//# sourceMappingURL=column-ts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"column-ts.d.ts","sourceRoot":"","sources":["../../src/codegen/column-ts.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACX,QAAQ,EACR,cAAc,EACd,aAAa,EACb,MAAM,qBAAqB,CAAC;AAG7B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,MAAM,SAAS,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,KAAK,EAAE,OAAO,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IAC1B,cAAc,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IACpE,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;CAC/B,CAAC;AAEF,4EAA4E;AAC5E,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAgD/D;AAgBD,qFAAqF;AACrF,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,GAAG,YAAY,CAmDlE;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAC3B,GAAG,EAAE,cAAc,EACnB,QAAQ,EAAE,QAAQ,EAClB,KAAK,CAAC,EAAE,YAAY,GAAG,IAAI,EAC3B,aAAa,CAAC,EAAE,MAAM,GACpB,MAAM,CA+BR;AAED,mFAAmF;AACnF,wBAAgB,mBAAmB,CAClC,GAAG,EAAE,cAAc,EACnB,QAAQ,EAAE,QAAQ,EAClB,KAAK,CAAC,EAAE,YAAY,GAAG,IAAI,EAC3B,aAAa,CAAC,EAAE,MAAM,GACpB,MAAM,CAOR;AAED,gFAAgF;AAChF,wBAAgB,SAAS,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,EAAE,CAQxD;AASD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,EAAE,EAAE,CA4CpE;AAED,0FAA0F;AAC1F,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAE/D;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAE7E;AAED,wBAAgB,kBAAkB,CACjC,GAAG,EAAE,cAAc,EACnB,KAAK,EAAE,aAAa,EACpB,UAAU,EAAE,OAAO,GACjB,OAAO,CAET;AAED,wBAAgB,iBAAiB,CAChC,GAAG,EAAE,cAAc,EACnB,KAAK,EAAE,aAAa,EACpB,UAAU,EAAE,OAAO,GACjB,OAAO,CAUT;AAED,wBAAgB,iBAAiB,CAChC,GAAG,EAAE,cAAc,EACnB,KAAK,EAAE,aAAa,EACpB,UAAU,EAAE,OAAO,GACjB,OAAO,CAKT;AAED,wBAAgB,gBAAgB,CAC/B,GAAG,EAAE,cAAc,EACnB,KAAK,EAAE,aAAa,EACpB,UAAU,EAAE,OAAO,GACjB,OAAO,CAgBT;AAED,wBAAgB,kBAAkB,CACjC,GAAG,EAAE,cAAc,EACnB,QAAQ,EAAE,QAAQ,EAClB,KAAK,CAAC,EAAE,YAAY,GAAG,IAAI,EAC3B,aAAa,CAAC,EAAE,MAAM,GACpB,MAAM,CAaR;AAED,wBAAgB,qBAAqB,CACpC,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,MAAM,GACZ,cAAc,CAQhB"}
|
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
import { findFkReferencedColumn } from "../dialect/fk.js";
|
|
2
|
+
import { getColumnTypeOrThrow } from "../plugins/registry.js";
|
|
3
|
+
import { modelTypeName, pascalCase } from "./manifest-relations.js";
|
|
4
|
+
/** Map validator-neutral JSON/validation IR to a TypeScript type string. */
|
|
5
|
+
export function validationTypeToTs(type) {
|
|
6
|
+
switch (type.kind) {
|
|
7
|
+
case "string":
|
|
8
|
+
return "string";
|
|
9
|
+
case "number":
|
|
10
|
+
return "number";
|
|
11
|
+
case "bigint":
|
|
12
|
+
return "bigint";
|
|
13
|
+
case "boolean":
|
|
14
|
+
return "boolean";
|
|
15
|
+
case "date":
|
|
16
|
+
return "Date";
|
|
17
|
+
case "enum": {
|
|
18
|
+
const union = type.values.map((v) => JSON.stringify(v)).join(" | ");
|
|
19
|
+
return union.length > 0 ? union : "string";
|
|
20
|
+
}
|
|
21
|
+
case "unknown":
|
|
22
|
+
return "unknown";
|
|
23
|
+
case "record": {
|
|
24
|
+
const value = validationTypeToTs(type.value);
|
|
25
|
+
return `Record<string, ${value}>`;
|
|
26
|
+
}
|
|
27
|
+
case "array":
|
|
28
|
+
return `${validationTypeToTs(type.element)}[]`;
|
|
29
|
+
case "object": {
|
|
30
|
+
if (type.fields.length === 0)
|
|
31
|
+
return "Record<string, unknown>";
|
|
32
|
+
const fields = type.fields
|
|
33
|
+
.map((f) => {
|
|
34
|
+
const optional = f.optional ? "?" : "";
|
|
35
|
+
const ts = validationTypeToTs(f.type);
|
|
36
|
+
return `${f.name}${optional}: ${ts}${f.nullable ? " | null" : ""};`;
|
|
37
|
+
})
|
|
38
|
+
.join(" ");
|
|
39
|
+
return `{ ${fields} }`;
|
|
40
|
+
}
|
|
41
|
+
case "union":
|
|
42
|
+
return type.variants.map((v) => validationTypeToTs(v)).join(" | ");
|
|
43
|
+
case "literal":
|
|
44
|
+
return JSON.stringify(type.value);
|
|
45
|
+
case "tuple":
|
|
46
|
+
return `[${type.elements.map((e) => validationTypeToTs(e)).join(", ")}]`;
|
|
47
|
+
case "instance":
|
|
48
|
+
return type.tsName;
|
|
49
|
+
default: {
|
|
50
|
+
const _exhaustive = type;
|
|
51
|
+
return _exhaustive;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
function enumValuesOf(col) {
|
|
56
|
+
const values = col.typeOptions?.values;
|
|
57
|
+
if (!values || values.length === 0)
|
|
58
|
+
return null;
|
|
59
|
+
return values;
|
|
60
|
+
}
|
|
61
|
+
function enumAliasSeed(col, modelName) {
|
|
62
|
+
const explicit = col.typeOptions?.name;
|
|
63
|
+
if (explicit !== undefined && explicit.length > 0) {
|
|
64
|
+
return pascalCase(explicit);
|
|
65
|
+
}
|
|
66
|
+
return `${modelName}${pascalCase(col.tsName)}`;
|
|
67
|
+
}
|
|
68
|
+
/** Collect hoisted `export type X = ...` enum aliases for enum/enumArray columns. */
|
|
69
|
+
export function buildEnumRegistry(manifest) {
|
|
70
|
+
const byKey = new Map();
|
|
71
|
+
const byName = new Map();
|
|
72
|
+
const declarations = [];
|
|
73
|
+
const tables = Object.values(manifest.tables).sort((a, b) => a.accessor.localeCompare(b.accessor));
|
|
74
|
+
for (const table of tables) {
|
|
75
|
+
const modelName = modelTypeName(table.accessor);
|
|
76
|
+
for (const col of table.columns) {
|
|
77
|
+
if (col.kind !== "enum" && col.kind !== "enumArray")
|
|
78
|
+
continue;
|
|
79
|
+
const values = enumValuesOf(col);
|
|
80
|
+
if (!values)
|
|
81
|
+
continue;
|
|
82
|
+
const key = `${table.accessor}.${col.tsName}`;
|
|
83
|
+
let name = enumAliasSeed(col, modelName);
|
|
84
|
+
const existing = byName.get(name);
|
|
85
|
+
if (existing) {
|
|
86
|
+
if (existing.array === (col.kind === "enumArray") &&
|
|
87
|
+
JSON.stringify(existing.values) === JSON.stringify(values)) {
|
|
88
|
+
byKey.set(key, name);
|
|
89
|
+
continue;
|
|
90
|
+
}
|
|
91
|
+
let i = 2;
|
|
92
|
+
while (byName.has(`${name}${i}`))
|
|
93
|
+
i++;
|
|
94
|
+
name = `${name}${i}`;
|
|
95
|
+
}
|
|
96
|
+
const union = values.map((v) => JSON.stringify(v)).join(" | ");
|
|
97
|
+
const decl = col.kind === "enumArray"
|
|
98
|
+
? `export type ${name} = (${union})[];`
|
|
99
|
+
: `export type ${name} = ${union};`;
|
|
100
|
+
byName.set(name, {
|
|
101
|
+
name,
|
|
102
|
+
values,
|
|
103
|
+
array: col.kind === "enumArray",
|
|
104
|
+
});
|
|
105
|
+
byKey.set(key, name);
|
|
106
|
+
declarations.push(decl);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
declarations.sort();
|
|
110
|
+
return {
|
|
111
|
+
aliasForColumn: (accessor, tsName) => byKey.get(`${accessor}.${tsName}`) ?? null,
|
|
112
|
+
declarations,
|
|
113
|
+
byName,
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Resolved TS type for a manifest column (the `resolvedType` printer).
|
|
118
|
+
* Uses the plugin `columnTsType`, hoisted enum aliases, and JSON validation
|
|
119
|
+
* generics — never the schema builder chain.
|
|
120
|
+
*/
|
|
121
|
+
export function columnTsType(col, manifest, enums, tableAccessor) {
|
|
122
|
+
if (col.kind === "fk") {
|
|
123
|
+
const referenced = findFkReferencedColumn(col, manifest);
|
|
124
|
+
if (referenced && referenced.kind !== "fk") {
|
|
125
|
+
return columnTsType({ ...referenced, nullable: col.nullable }, manifest, enums, tableAccessor);
|
|
126
|
+
}
|
|
127
|
+
return col.nullable ? "string | null" : "string";
|
|
128
|
+
}
|
|
129
|
+
if ((col.kind === "json" || col.kind === "jsonb") &&
|
|
130
|
+
col.validation !== undefined) {
|
|
131
|
+
const base = validationTypeToTs(col.validation);
|
|
132
|
+
return col.nullable ? `${base} | null` : base;
|
|
133
|
+
}
|
|
134
|
+
if (enums &&
|
|
135
|
+
tableAccessor &&
|
|
136
|
+
(col.kind === "enum" || col.kind === "enumArray")) {
|
|
137
|
+
const alias = enums.aliasForColumn(tableAccessor, col.tsName);
|
|
138
|
+
if (alias) {
|
|
139
|
+
return col.nullable ? `${alias} | null` : alias;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
return getColumnTypeOrThrow(col.kind).columnTsType(col);
|
|
143
|
+
}
|
|
144
|
+
/** Non-nullable TS type for filter generic params (`StringFilter<PostStatus>`). */
|
|
145
|
+
export function columnNonNullTsType(col, manifest, enums, tableAccessor) {
|
|
146
|
+
return columnTsType({ ...col, nullable: false }, manifest, enums, tableAccessor);
|
|
147
|
+
}
|
|
148
|
+
/** SQL-name primary key mapped to TS names (empty when the table has no PK). */
|
|
149
|
+
export function pkTsNames(table) {
|
|
150
|
+
const bySql = new Map(table.columns.map((c) => [c.sqlName, c.tsName]));
|
|
151
|
+
const names = [];
|
|
152
|
+
for (const sqlName of table.primaryKey) {
|
|
153
|
+
const tsName = bySql.get(sqlName);
|
|
154
|
+
if (tsName !== undefined)
|
|
155
|
+
names.push(tsName);
|
|
156
|
+
}
|
|
157
|
+
return names;
|
|
158
|
+
}
|
|
159
|
+
function columnByTsName(table, tsName) {
|
|
160
|
+
return table.columns.find((c) => c.tsName === tsName);
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Unique `where` candidates mirroring runtime `resolveUniqueConstraint`:
|
|
164
|
+
* PK group, single unique/primary columns, then unique btree indexes.
|
|
165
|
+
*/
|
|
166
|
+
export function uniqueKeyCandidates(table) {
|
|
167
|
+
const candidates = [];
|
|
168
|
+
const pk = pkTsNames(table);
|
|
169
|
+
if (pk.length > 0)
|
|
170
|
+
candidates.push(pk);
|
|
171
|
+
for (const col of table.columns) {
|
|
172
|
+
if (col.unique || col.primary) {
|
|
173
|
+
if (!candidates.some((c) => c.length === 1 && c[0] === col.tsName)) {
|
|
174
|
+
candidates.push([col.tsName]);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
const bySql = new Map(table.columns.map((c) => [c.sqlName, c.tsName]));
|
|
179
|
+
for (const index of table.indexes) {
|
|
180
|
+
if (!index.unique)
|
|
181
|
+
continue;
|
|
182
|
+
if (index.using && index.using !== "btree")
|
|
183
|
+
continue;
|
|
184
|
+
if (index.keys?.some((key) => key.expr))
|
|
185
|
+
continue;
|
|
186
|
+
const tsNames = [];
|
|
187
|
+
let ok = true;
|
|
188
|
+
for (const sqlName of index.columns) {
|
|
189
|
+
const tsName = bySql.get(sqlName);
|
|
190
|
+
if (tsName === undefined) {
|
|
191
|
+
ok = false;
|
|
192
|
+
break;
|
|
193
|
+
}
|
|
194
|
+
tsNames.push(tsName);
|
|
195
|
+
}
|
|
196
|
+
if (!ok || tsNames.length === 0)
|
|
197
|
+
continue;
|
|
198
|
+
if (candidates.some((c) => c.length === tsNames.length &&
|
|
199
|
+
c.every((name) => tsNames.includes(name)))) {
|
|
200
|
+
continue;
|
|
201
|
+
}
|
|
202
|
+
candidates.push(tsNames);
|
|
203
|
+
}
|
|
204
|
+
return candidates;
|
|
205
|
+
}
|
|
206
|
+
/** `timestamps()` / `.defaultNow()` / `.updatedAt()` — ORM-owned, not client-writable. */
|
|
207
|
+
export function isManagedTimestamp(col) {
|
|
208
|
+
return col.defaultNow || col.updatedAt === true;
|
|
209
|
+
}
|
|
210
|
+
export function isJunctionTable(manifest, accessor) {
|
|
211
|
+
return manifest.manyToMany.some((m) => m.throughAccessor === accessor);
|
|
212
|
+
}
|
|
213
|
+
export function isJunctionPkColumn(col, table, isJunction) {
|
|
214
|
+
return isJunction && table.primaryKey.includes(col.sqlName);
|
|
215
|
+
}
|
|
216
|
+
export function isOmittedOnCreate(col, table, isJunction) {
|
|
217
|
+
if (isJunctionPkColumn(col, table, isJunction)) {
|
|
218
|
+
return false;
|
|
219
|
+
}
|
|
220
|
+
return (col.primary ||
|
|
221
|
+
col.generated === true ||
|
|
222
|
+
col.kind === "serial" ||
|
|
223
|
+
isManagedTimestamp(col));
|
|
224
|
+
}
|
|
225
|
+
export function isOmittedOnUpdate(col, table, isJunction) {
|
|
226
|
+
if (isJunctionPkColumn(col, table, isJunction)) {
|
|
227
|
+
return true;
|
|
228
|
+
}
|
|
229
|
+
return col.primary || isManagedTimestamp(col);
|
|
230
|
+
}
|
|
231
|
+
export function isCreateRequired(col, table, isJunction) {
|
|
232
|
+
if (isOmittedOnCreate(col, table, isJunction)) {
|
|
233
|
+
return false;
|
|
234
|
+
}
|
|
235
|
+
// FK scalars are satisfied by relation writes (`author: { connect }`),
|
|
236
|
+
// mirroring schema-driven `IsRequired` which is never true for FKs.
|
|
237
|
+
if (col.kind === "fk") {
|
|
238
|
+
return false;
|
|
239
|
+
}
|
|
240
|
+
if (col.nullable) {
|
|
241
|
+
return false;
|
|
242
|
+
}
|
|
243
|
+
if (col.defaultNow || col.defaultValue !== undefined) {
|
|
244
|
+
return false;
|
|
245
|
+
}
|
|
246
|
+
return true;
|
|
247
|
+
}
|
|
248
|
+
export function updateScalarTsType(col, manifest, enums, tableAccessor) {
|
|
249
|
+
const base = columnTsType(col, manifest, enums, tableAccessor);
|
|
250
|
+
const nonNull = columnNonNullTsType(col, manifest, enums, tableAccessor);
|
|
251
|
+
switch (col.kind) {
|
|
252
|
+
case "int":
|
|
253
|
+
case "serial":
|
|
254
|
+
case "real":
|
|
255
|
+
case "double":
|
|
256
|
+
case "bigint":
|
|
257
|
+
return `${base} | { increment?: ${nonNull}; decrement?: ${nonNull}; multiply?: ${nonNull}; set?: ${base} }`;
|
|
258
|
+
default:
|
|
259
|
+
return `${base} | { set?: ${base} }`;
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
export function columnByTsNameOrThrow(table, tsName) {
|
|
263
|
+
const col = columnByTsName(table, tsName);
|
|
264
|
+
if (!col) {
|
|
265
|
+
throw new Error(`Column "${tsName}" not found on table "${table.accessor}"`);
|
|
266
|
+
}
|
|
267
|
+
return col;
|
|
268
|
+
}
|
|
269
|
+
//# sourceMappingURL=column-ts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"column-ts.js","sourceRoot":"","sources":["../../src/codegen/column-ts.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emit-includes.d.ts","sourceRoot":"","sources":["../../src/codegen/emit-includes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,QAAQ,EAIR,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"emit-includes.d.ts","sourceRoot":"","sources":["../../src/codegen/emit-includes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,QAAQ,EAIR,MAAM,qBAAqB,CAAC;AA8E7B,wBAAgB,cAAc,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAsCzD"}
|
|
@@ -22,11 +22,12 @@ function emitRelationIncludeType(manifest, tableAccessor, relation) {
|
|
|
22
22
|
const target = manifest.tables[relation.targetAccessor];
|
|
23
23
|
const columns = target?.columns ?? [];
|
|
24
24
|
const nestedWith = `${modelTypeName(relation.targetAccessor)}With`;
|
|
25
|
+
const targetWhere = `${modelTypeName(relation.targetAccessor)}Where`;
|
|
25
26
|
return `export type ${typeName} =
|
|
26
27
|
| boolean
|
|
27
28
|
| {
|
|
28
29
|
select?: ${selectType(columns)};
|
|
29
|
-
where?:
|
|
30
|
+
where?: ${targetWhere};
|
|
30
31
|
orderBy?: ${orderByType(columns)};
|
|
31
32
|
take?: number;
|
|
32
33
|
skip?: number;
|
|
@@ -48,18 +49,25 @@ function emitTableWithType(manifest, table) {
|
|
|
48
49
|
.join("\n");
|
|
49
50
|
const countField = manyRelations.length > 0
|
|
50
51
|
? `\n _count?: {\n${manyRelations
|
|
51
|
-
.map((rel) =>
|
|
52
|
+
.map((rel) => {
|
|
53
|
+
const targetWhere = `${modelTypeName(rel.targetAccessor)}Where`;
|
|
54
|
+
return ` ${rel.name}?: true | { where?: ${targetWhere} };`;
|
|
55
|
+
})
|
|
52
56
|
.join("\n")}\n };`
|
|
53
57
|
: "";
|
|
54
58
|
return `export type ${typeName} = {\n${fields}${countField}\n};`;
|
|
55
59
|
}
|
|
56
60
|
export function emitIncludesTs(manifest) {
|
|
61
|
+
const tables = Object.values(manifest.tables).sort((a, b) => a.accessor.localeCompare(b.accessor));
|
|
62
|
+
const withNames = tables.map((t) => `${modelTypeName(t.accessor)}With`);
|
|
63
|
+
const whereNames = tables.map((t) => `${modelTypeName(t.accessor)}Where`);
|
|
57
64
|
const lines = [
|
|
58
65
|
"// Auto-generated by neoorm generate — do not edit",
|
|
59
|
-
`import type {
|
|
66
|
+
`import type { ${whereNames.join(", ")} } from "./query-types.js";`,
|
|
67
|
+
"",
|
|
68
|
+
`type OrderDirection = "asc" | "desc";`,
|
|
60
69
|
"",
|
|
61
70
|
];
|
|
62
|
-
const tables = Object.values(manifest.tables).sort((a, b) => a.accessor.localeCompare(b.accessor));
|
|
63
71
|
for (const table of tables) {
|
|
64
72
|
for (const rel of effectiveRelations(manifest, table)) {
|
|
65
73
|
lines.push(emitRelationIncludeType(manifest, table.accessor, rel));
|
|
@@ -77,6 +85,7 @@ export function emitIncludesTs(manifest) {
|
|
|
77
85
|
lines.push(includeMapEntries);
|
|
78
86
|
lines.push(`};`);
|
|
79
87
|
lines.push("");
|
|
88
|
+
void withNames;
|
|
80
89
|
return lines.join("\n");
|
|
81
90
|
}
|
|
82
91
|
//# sourceMappingURL=emit-includes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emit-includes.js","sourceRoot":"","sources":["../../src/codegen/emit-includes.ts"],"names":[],"mappings":"AAMA,OAAO,EACN,kBAAkB,EAClB,aAAa,EACb,UAAU,GACV,MAAM,yBAAyB,CAAC;AAEjC,SAAS,WAAW,CAAC,OAAyB;IAC7C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,OAAO,CAAC;IACzC,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,UAAU,CAAC,OAAyB;IAC5C,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IACnC,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzE,OAAO,aAAa,KAAK,WAAW,YAAY,IAAI,CAAC;AACtD,CAAC;AAED,SAAS,WAAW,CAAC,OAAyB;IAC7C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,uBAAuB,CAAC;IACzD,MAAM,MAAM,GAAG,OAAO;SACpB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,mBAAmB,CAAC;SAC1C,IAAI,CAAC,IAAI,CAAC,CAAC;IACb,OAAO,KAAK,MAAM,IAAI,CAAC;AACxB,CAAC;AAED,SAAS,uBAAuB,CAC/B,QAAkB,EAClB,aAAqB,EACrB,QAA0B;IAE1B,MAAM,QAAQ,GAAG,GAAG,aAAa,CAAC,aAAa,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC;IACtF,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IACxD,MAAM,OAAO,GAAG,MAAM,EAAE,OAAO,IAAI,EAAE,CAAC;IACtC,MAAM,UAAU,GAAG,GAAG,aAAa,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"emit-includes.js","sourceRoot":"","sources":["../../src/codegen/emit-includes.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
import type { Manifest } from "../dialect/types.js";
|
|
1
|
+
import type { Manifest, ManifestTable } from "../dialect/types.js";
|
|
2
|
+
export declare function relationResultTypeFor(manifest: Manifest, table: ManifestTable, relationName: string): string;
|
|
2
3
|
export declare function emitModelsTs(manifest: Manifest, packageImportPath?: string): string;
|
|
3
4
|
//# sourceMappingURL=emit-models.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emit-models.d.ts","sourceRoot":"","sources":["../../src/codegen/emit-models.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"emit-models.d.ts","sourceRoot":"","sources":["../../src/codegen/emit-models.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,QAAQ,EAER,aAAa,EACb,MAAM,qBAAqB,CAAC;AA0K7B,wBAAgB,qBAAqB,CACpC,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,aAAa,EACpB,YAAY,EAAE,MAAM,GAClB,MAAM,CAUR;AAED,wBAAgB,YAAY,CAC3B,QAAQ,EAAE,QAAQ,EAClB,iBAAiB,SAAW,GAC1B,MAAM,CAqHR"}
|