neoorm 0.1.0

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.
Files changed (127) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +86 -0
  3. package/dist/bin/neoorm.d.ts +3 -0
  4. package/dist/bin/neoorm.d.ts.map +1 -0
  5. package/dist/bin/neoorm.js +111 -0
  6. package/dist/bin/neoorm.js.map +1 -0
  7. package/dist/codegen/emit-includes.d.ts +3 -0
  8. package/dist/codegen/emit-includes.d.ts.map +1 -0
  9. package/dist/codegen/emit-includes.js +133 -0
  10. package/dist/codegen/emit-includes.js.map +1 -0
  11. package/dist/codegen/generate.d.ts +24 -0
  12. package/dist/codegen/generate.d.ts.map +1 -0
  13. package/dist/codegen/generate.js +156 -0
  14. package/dist/codegen/generate.js.map +1 -0
  15. package/dist/codegen/schema-to-manifest.d.ts +8 -0
  16. package/dist/codegen/schema-to-manifest.d.ts.map +1 -0
  17. package/dist/codegen/schema-to-manifest.js +210 -0
  18. package/dist/codegen/schema-to-manifest.js.map +1 -0
  19. package/dist/config.d.ts +11 -0
  20. package/dist/config.d.ts.map +1 -0
  21. package/dist/config.js +17 -0
  22. package/dist/config.js.map +1 -0
  23. package/dist/dialect/index.d.ts +3 -0
  24. package/dist/dialect/index.d.ts.map +1 -0
  25. package/dist/dialect/index.js +2 -0
  26. package/dist/dialect/index.js.map +1 -0
  27. package/dist/dialect/postgres.d.ts +5 -0
  28. package/dist/dialect/postgres.d.ts.map +1 -0
  29. package/dist/dialect/postgres.js +112 -0
  30. package/dist/dialect/postgres.js.map +1 -0
  31. package/dist/dialect/types.d.ts +79 -0
  32. package/dist/dialect/types.d.ts.map +1 -0
  33. package/dist/dialect/types.js +2 -0
  34. package/dist/dialect/types.js.map +1 -0
  35. package/dist/index.d.ts +10 -0
  36. package/dist/index.d.ts.map +1 -0
  37. package/dist/index.js +7 -0
  38. package/dist/index.js.map +1 -0
  39. package/dist/introspect/pull.d.ts +3 -0
  40. package/dist/introspect/pull.d.ts.map +1 -0
  41. package/dist/introspect/pull.js +91 -0
  42. package/dist/introspect/pull.js.map +1 -0
  43. package/dist/migrate/runner.d.ts +9 -0
  44. package/dist/migrate/runner.d.ts.map +1 -0
  45. package/dist/migrate/runner.js +70 -0
  46. package/dist/migrate/runner.js.map +1 -0
  47. package/dist/runtime/client.d.ts +61 -0
  48. package/dist/runtime/client.d.ts.map +1 -0
  49. package/dist/runtime/client.js +54 -0
  50. package/dist/runtime/client.js.map +1 -0
  51. package/dist/runtime/executor.d.ts +10 -0
  52. package/dist/runtime/executor.d.ts.map +1 -0
  53. package/dist/runtime/executor.js +62 -0
  54. package/dist/runtime/executor.js.map +1 -0
  55. package/dist/runtime/query/compile.d.ts +23 -0
  56. package/dist/runtime/query/compile.d.ts.map +1 -0
  57. package/dist/runtime/query/compile.js +182 -0
  58. package/dist/runtime/query/compile.js.map +1 -0
  59. package/dist/runtime/query/create.d.ts +8 -0
  60. package/dist/runtime/query/create.d.ts.map +1 -0
  61. package/dist/runtime/query/create.js +139 -0
  62. package/dist/runtime/query/create.js.map +1 -0
  63. package/dist/runtime/query/delete.d.ts +12 -0
  64. package/dist/runtime/query/delete.d.ts.map +1 -0
  65. package/dist/runtime/query/delete.js +35 -0
  66. package/dist/runtime/query/delete.js.map +1 -0
  67. package/dist/runtime/query/find.d.ts +21 -0
  68. package/dist/runtime/query/find.d.ts.map +1 -0
  69. package/dist/runtime/query/find.js +172 -0
  70. package/dist/runtime/query/find.js.map +1 -0
  71. package/dist/runtime/query/update.d.ts +17 -0
  72. package/dist/runtime/query/update.d.ts.map +1 -0
  73. package/dist/runtime/query/update.js +63 -0
  74. package/dist/runtime/query/update.js.map +1 -0
  75. package/dist/runtime/types.d.ts +48 -0
  76. package/dist/runtime/types.d.ts.map +1 -0
  77. package/dist/runtime/types.js +2 -0
  78. package/dist/runtime/types.js.map +1 -0
  79. package/dist/schema/column.d.ts +39 -0
  80. package/dist/schema/column.d.ts.map +1 -0
  81. package/dist/schema/column.js +70 -0
  82. package/dist/schema/column.js.map +1 -0
  83. package/dist/schema/define-schema.d.ts +6 -0
  84. package/dist/schema/define-schema.d.ts.map +1 -0
  85. package/dist/schema/define-schema.js +4 -0
  86. package/dist/schema/define-schema.js.map +1 -0
  87. package/dist/schema/index.d.ts +13 -0
  88. package/dist/schema/index.d.ts.map +1 -0
  89. package/dist/schema/index.js +6 -0
  90. package/dist/schema/index.js.map +1 -0
  91. package/dist/schema/many-to-many.d.ts +21 -0
  92. package/dist/schema/many-to-many.d.ts.map +1 -0
  93. package/dist/schema/many-to-many.js +20 -0
  94. package/dist/schema/many-to-many.js.map +1 -0
  95. package/dist/schema/relation-types.d.ts +74 -0
  96. package/dist/schema/relation-types.d.ts.map +1 -0
  97. package/dist/schema/relation-types.js +2 -0
  98. package/dist/schema/relation-types.js.map +1 -0
  99. package/dist/schema/relation.d.ts +24 -0
  100. package/dist/schema/relation.d.ts.map +1 -0
  101. package/dist/schema/relation.js +25 -0
  102. package/dist/schema/relation.js.map +1 -0
  103. package/dist/schema/table.d.ts +28 -0
  104. package/dist/schema/table.d.ts.map +1 -0
  105. package/dist/schema/table.js +23 -0
  106. package/dist/schema/table.js.map +1 -0
  107. package/dist/schema/types.d.ts +115 -0
  108. package/dist/schema/types.d.ts.map +1 -0
  109. package/dist/schema/types.js +2 -0
  110. package/dist/schema/types.js.map +1 -0
  111. package/dist/sql/builder.d.ts +17 -0
  112. package/dist/sql/builder.d.ts.map +1 -0
  113. package/dist/sql/builder.js +51 -0
  114. package/dist/sql/builder.js.map +1 -0
  115. package/dist/sql/index.d.ts +7 -0
  116. package/dist/sql/index.d.ts.map +1 -0
  117. package/dist/sql/index.js +6 -0
  118. package/dist/sql/index.js.map +1 -0
  119. package/dist/sql/template.d.ts +16 -0
  120. package/dist/sql/template.d.ts.map +1 -0
  121. package/dist/sql/template.js +43 -0
  122. package/dist/sql/template.js.map +1 -0
  123. package/dist/utils/case.d.ts +5 -0
  124. package/dist/utils/case.d.ts.map +1 -0
  125. package/dist/utils/case.js +20 -0
  126. package/dist/utils/case.js.map +1 -0
  127. package/package.json +60 -0
@@ -0,0 +1,9 @@
1
+ import type { Pool } from "pg";
2
+ import type { Manifest } from "../dialect/types.js";
3
+ export declare function ensureMigrationsTable(pool: Pool): Promise<void>;
4
+ export declare function getAppliedMigrations(pool: Pool): Promise<Set<string>>;
5
+ export declare function listPendingMigrations(migrationsDir: string, applied: Set<string>): Promise<string[]>;
6
+ export declare function applyMigration(pool: Pool, migrationsDir: string, name: string): Promise<void>;
7
+ export declare function migrateDeploy(pool: Pool, migrationsDir: string): Promise<string[]>;
8
+ export declare function dbPush(pool: Pool, manifest: Manifest): Promise<void>;
9
+ //# sourceMappingURL=runner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/migrate/runner.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC/B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAKpD,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAQrE;AAED,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAM3E;AAED,wBAAsB,qBAAqB,CACzC,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,GACnB,OAAO,CAAC,MAAM,EAAE,CAAC,CASnB;AAED,wBAAsB,cAAc,CAClC,IAAI,EAAE,IAAI,EACV,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC,CAmBf;AAED,wBAAsB,aAAa,CACjC,IAAI,EAAE,IAAI,EACV,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,MAAM,EAAE,CAAC,CASnB;AAED,wBAAsB,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAa1E"}
@@ -0,0 +1,70 @@
1
+ import { readdir, readFile } from "node:fs/promises";
2
+ import { join } from "node:path";
3
+ import { postgresDialect } from "../dialect/postgres.js";
4
+ const MIGRATIONS_TABLE = "_neoorm_migrations";
5
+ export async function ensureMigrationsTable(pool) {
6
+ await pool.query(`
7
+ CREATE TABLE IF NOT EXISTS ${postgresDialect.quoteIdentifier(MIGRATIONS_TABLE)} (
8
+ id SERIAL PRIMARY KEY,
9
+ name TEXT NOT NULL UNIQUE,
10
+ applied_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
11
+ )
12
+ `);
13
+ }
14
+ export async function getAppliedMigrations(pool) {
15
+ await ensureMigrationsTable(pool);
16
+ const result = await pool.query(`SELECT name FROM ${postgresDialect.quoteIdentifier(MIGRATIONS_TABLE)} ORDER BY id`);
17
+ return new Set(result.rows.map((r) => r.name));
18
+ }
19
+ export async function listPendingMigrations(migrationsDir, applied) {
20
+ let entries;
21
+ try {
22
+ entries = await readdir(migrationsDir);
23
+ }
24
+ catch {
25
+ return [];
26
+ }
27
+ return entries.filter((e) => !applied.has(e)).sort();
28
+ }
29
+ export async function applyMigration(pool, migrationsDir, name) {
30
+ const sqlPath = join(migrationsDir, name, "migration.sql");
31
+ const sql = await readFile(sqlPath, "utf-8");
32
+ const client = await pool.connect();
33
+ try {
34
+ await client.query("BEGIN");
35
+ await client.query(sql);
36
+ await client.query(`INSERT INTO ${postgresDialect.quoteIdentifier(MIGRATIONS_TABLE)} (name) VALUES ($1)`, [name]);
37
+ await client.query("COMMIT");
38
+ }
39
+ catch (err) {
40
+ await client.query("ROLLBACK");
41
+ throw err;
42
+ }
43
+ finally {
44
+ client.release();
45
+ }
46
+ }
47
+ export async function migrateDeploy(pool, migrationsDir) {
48
+ const applied = await getAppliedMigrations(pool);
49
+ const pending = await listPendingMigrations(migrationsDir, applied);
50
+ for (const name of pending) {
51
+ await applyMigration(pool, migrationsDir, name);
52
+ }
53
+ return pending;
54
+ }
55
+ export async function dbPush(pool, manifest) {
56
+ for (const table of Object.values(manifest.tables)) {
57
+ const sql = postgresDialect.emitCreateTable(table);
58
+ try {
59
+ await pool.query(sql);
60
+ }
61
+ catch (err) {
62
+ const message = err instanceof Error ? err.message : String(err);
63
+ if (message.includes("already exists")) {
64
+ continue;
65
+ }
66
+ throw err;
67
+ }
68
+ }
69
+ }
70
+ //# sourceMappingURL=runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/migrate/runner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ import { Pool } from "pg";
2
+ import type { Manifest } from "../dialect/types.js";
3
+ import type { TableDef } from "../schema/table.js";
4
+ import type { WithInput } from "./query/find.js";
5
+ import type { TypedNeoOrmClient, DefaultWithMap } from "./types.js";
6
+ export type TableRepository = {
7
+ findMany(args?: {
8
+ where?: Record<string, unknown>;
9
+ orderBy?: Record<string, string>;
10
+ limit?: number;
11
+ offset?: number;
12
+ with?: Record<string, WithInput>;
13
+ }): Promise<Record<string, unknown>[]>;
14
+ findFirst(args?: {
15
+ where?: Record<string, unknown>;
16
+ orderBy?: Record<string, string>;
17
+ with?: Record<string, WithInput>;
18
+ }): Promise<Record<string, unknown> | null>;
19
+ findById(id: string, args?: {
20
+ with?: Record<string, WithInput>;
21
+ }): Promise<Record<string, unknown> | null>;
22
+ create(args: {
23
+ data: Record<string, unknown>;
24
+ with?: Record<string, WithInput>;
25
+ }): Promise<Record<string, unknown>>;
26
+ update(args: {
27
+ where: Record<string, unknown>;
28
+ data: Record<string, unknown>;
29
+ with?: Record<string, WithInput>;
30
+ }): Promise<Record<string, unknown> | null>;
31
+ updateMany(args: {
32
+ where?: Record<string, unknown>;
33
+ data: Record<string, unknown>;
34
+ }): Promise<number>;
35
+ updateById(id: string, args: {
36
+ data: Record<string, unknown>;
37
+ with?: Record<string, WithInput>;
38
+ }): Promise<Record<string, unknown> | null>;
39
+ delete(args: {
40
+ where: Record<string, unknown>;
41
+ with?: Record<string, WithInput>;
42
+ }): Promise<Record<string, unknown> | null>;
43
+ deleteMany(args?: {
44
+ where?: Record<string, unknown>;
45
+ }): Promise<number>;
46
+ deleteById(id: string): Promise<Record<string, unknown> | null>;
47
+ };
48
+ /** @deprecated Use TypedNeoOrmClient with createNeoOrmClient generic instead */
49
+ export interface NeoOrmClient {
50
+ sql<T = Record<string, unknown>>(strings: TemplateStringsArray, ...values: unknown[]): Promise<T[]>;
51
+ execute(query: {
52
+ text: string;
53
+ params: unknown[];
54
+ }): Promise<Record<string, unknown>[]>;
55
+ $disconnect(): Promise<void>;
56
+ [tableAccessor: string]: TableRepository | NeoOrmClient["sql"] | NeoOrmClient["execute"] | NeoOrmClient["$disconnect"];
57
+ }
58
+ export declare function createNeoOrmClient<TTables extends Record<string, TableDef>, TIncludes extends Record<keyof TTables & string, unknown> = DefaultWithMap<TTables>>(manifest: Manifest, connectionString?: string): TypedNeoOrmClient<TTables, TIncludes>;
59
+ export declare function createNeoOrmClientFromPool<TTables extends Record<string, TableDef>, TIncludes extends Record<keyof TTables & string, unknown> = DefaultWithMap<TTables>>(manifest: Manifest, pool: Pool): TypedNeoOrmClient<TTables, TIncludes>;
60
+ export type { TypedNeoOrmClient, TypedTableRepository, DefaultWithMap } from "./types.js";
61
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/runtime/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC1B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAMnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,iBAAiB,EAAwB,cAAc,EAAE,MAAM,YAAY,CAAC;AAE1F,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE;QACd,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAChC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;KAClC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;IACvC,SAAS,CAAC,IAAI,CAAC,EAAE;QACf,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAChC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;KAClC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;IAC5C,QAAQ,CACN,EAAE,EAAE,MAAM,EACV,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;KAAE,GAC1C,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;IAC3C,MAAM,CAAC,IAAI,EAAE;QACX,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC9B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;KAClC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACrC,MAAM,CAAC,IAAI,EAAE;QACX,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC/B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC9B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;KAClC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;IAC5C,UAAU,CAAC,IAAI,EAAE;QACf,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAChC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC/B,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACpB,UAAU,CACR,EAAE,EAAE,MAAM,EACV,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;KAAE,GACxE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;IAC3C,MAAM,CAAC,IAAI,EAAE;QACX,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC/B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;KAClC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;IAC5C,UAAU,CAAC,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACxE,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;CACjE,CAAC;AAEF,gFAAgF;AAChF,MAAM,WAAW,YAAY;IAC3B,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,EAAE,oBAAoB,EAC7B,GAAG,MAAM,EAAE,OAAO,EAAE,GACnB,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;IACxF,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC,aAAa,EAAE,MAAM,GAClB,eAAe,GACf,YAAY,CAAC,KAAK,CAAC,GACnB,YAAY,CAAC,SAAS,CAAC,GACvB,YAAY,CAAC,aAAa,CAAC,CAAC;CACjC;AAwDD,wBAAgB,kBAAkB,CAChC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,EACxC,SAAS,SAAS,MAAM,CAAC,MAAM,OAAO,GAAG,MAAM,EAAE,OAAO,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC,EAEnF,QAAQ,EAAE,QAAQ,EAClB,gBAAgB,CAAC,EAAE,MAAM,GACxB,iBAAiB,CAAC,OAAO,EAAE,SAAS,CAAC,CAYvC;AAED,wBAAgB,0BAA0B,CACxC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,EACxC,SAAS,SAAS,MAAM,CAAC,MAAM,OAAO,GAAG,MAAM,EAAE,OAAO,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC,EAEnF,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,IAAI,GACT,iBAAiB,CAAC,OAAO,EAAE,SAAS,CAAC,CAMvC;AAED,YAAY,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,54 @@
1
+ import { Pool } from "pg";
2
+ import { createExecutor, compileQuery } from "./executor.js";
3
+ import { findMany, findFirst, findById } from "./query/find.js";
4
+ import { createRecord } from "./query/create.js";
5
+ import { updateRecord, updateManyRecords, updateById } from "./query/update.js";
6
+ import { deleteRecord, deleteManyRecords, deleteById } from "./query/delete.js";
7
+ function createTableRepository(executor, manifest, accessor) {
8
+ return {
9
+ findMany: (args) => findMany(executor, manifest, accessor, args),
10
+ findFirst: (args) => findFirst(executor, manifest, accessor, args),
11
+ findById: (id, args) => findById(executor, manifest, accessor, id, args),
12
+ create: (args) => createRecord(executor, manifest, accessor, args),
13
+ update: (args) => updateRecord(executor, manifest, accessor, args),
14
+ updateMany: (args) => updateManyRecords(executor, manifest, accessor, args),
15
+ updateById: (id, args) => updateById(executor, manifest, accessor, id, args),
16
+ delete: (args) => deleteRecord(executor, manifest, accessor, args),
17
+ deleteMany: (args) => deleteManyRecords(executor, manifest, accessor, args),
18
+ deleteById: (id) => deleteById(executor, manifest, accessor, id),
19
+ };
20
+ }
21
+ function buildClient(executor, manifest, disconnect) {
22
+ const client = {
23
+ sql(strings, ...values) {
24
+ const { text, params } = compileQuery(strings, values);
25
+ return executor.query(text, params);
26
+ },
27
+ execute(query) {
28
+ return executor.query(query.text, query.params);
29
+ },
30
+ $disconnect: disconnect,
31
+ };
32
+ for (const accessor of Object.keys(manifest.tables)) {
33
+ client[accessor] = createTableRepository(executor, manifest, accessor);
34
+ }
35
+ return client;
36
+ }
37
+ export function createNeoOrmClient(manifest, connectionString) {
38
+ const url = connectionString ?? process.env["DATABASE_URL"];
39
+ if (!url) {
40
+ throw new Error("DATABASE_URL is required");
41
+ }
42
+ const pool = new Pool({ connectionString: url });
43
+ const executor = createExecutor(pool);
44
+ return buildClient(executor, manifest, async () => {
45
+ await pool.end();
46
+ });
47
+ }
48
+ export function createNeoOrmClientFromPool(manifest, pool) {
49
+ const executor = createExecutor(pool);
50
+ return buildClient(executor, manifest, async () => {
51
+ await pool.end();
52
+ });
53
+ }
54
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/runtime/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { Pool } from "pg";
2
+ import type { CompiledQuery } from "../dialect/types.js";
3
+ export type Executor = {
4
+ query<T = Record<string, unknown>>(text: string, params?: unknown[]): Promise<T[]>;
5
+ queryOne<T = Record<string, unknown>>(text: string, params?: unknown[]): Promise<T | null>;
6
+ transaction<T>(fn: (tx: Executor) => Promise<T>): Promise<T>;
7
+ };
8
+ export declare function createExecutor(pool: Pool): Executor;
9
+ export declare function compileQuery(parts: TemplateStringsArray, values: unknown[]): CompiledQuery;
10
+ //# sourceMappingURL=executor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/runtime/executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAA2B,MAAM,IAAI,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,MAAM,MAAM,QAAQ,GAAG;IACrB,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,OAAO,EAAE,GACjB,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;IAChB,QAAQ,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,OAAO,EAAE,GACjB,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACrB,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CAC9D,CAAC;AAMF,wBAAgB,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,QAAQ,CAmCnD;AA2BD,wBAAgB,YAAY,CAAC,KAAK,EAAE,oBAAoB,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,aAAa,CAa1F"}
@@ -0,0 +1,62 @@
1
+ function rowsFromResult(result) {
2
+ return result.rows;
3
+ }
4
+ export function createExecutor(pool) {
5
+ return {
6
+ async query(text, params = []) {
7
+ const result = await pool.query(text, params);
8
+ return rowsFromResult(result);
9
+ },
10
+ async queryOne(text, params = []) {
11
+ const result = await pool.query(text, params);
12
+ const rows = rowsFromResult(result);
13
+ return rows[0] ?? null;
14
+ },
15
+ async transaction(fn) {
16
+ const client = await pool.connect();
17
+ try {
18
+ await client.query("BEGIN");
19
+ const tx = createClientExecutor(client);
20
+ const result = await fn(tx);
21
+ await client.query("COMMIT");
22
+ return result;
23
+ }
24
+ catch (err) {
25
+ await client.query("ROLLBACK");
26
+ throw err;
27
+ }
28
+ finally {
29
+ client.release();
30
+ }
31
+ },
32
+ };
33
+ }
34
+ function createClientExecutor(client) {
35
+ return {
36
+ async query(text, params = []) {
37
+ const result = await client.query(text, params);
38
+ return rowsFromResult(result);
39
+ },
40
+ async queryOne(text, params = []) {
41
+ const result = await client.query(text, params);
42
+ const rows = rowsFromResult(result);
43
+ return rows[0] ?? null;
44
+ },
45
+ transaction(_fn) {
46
+ throw new Error("Nested transactions are not supported");
47
+ },
48
+ };
49
+ }
50
+ export function compileQuery(parts, values) {
51
+ let text = "";
52
+ const params = [];
53
+ for (let i = 0; i < parts.length; i++) {
54
+ text += parts[i];
55
+ if (i < values.length) {
56
+ params.push(values[i]);
57
+ text += `$${params.length}`;
58
+ }
59
+ }
60
+ return { text, params };
61
+ }
62
+ //# sourceMappingURL=executor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/runtime/executor.ts"],"names":[],"mappings":"AAeA,SAAS,cAAc,CAAC,MAAmB;IACzC,OAAO,MAAM,CAAC,IAAiC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAU;IACvC,OAAO;QACL,KAAK,CAAC,KAAK,CACT,IAAY,EACZ,SAAoB,EAAE;YAEtB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAC9C,OAAO,cAAc,CAAC,MAAM,CAAQ,CAAC;QACvC,CAAC;QAED,KAAK,CAAC,QAAQ,CACZ,IAAY,EACZ,SAAoB,EAAE;YAEtB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAC9C,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;YACpC,OAAQ,IAAI,CAAC,CAAC,CAAmB,IAAI,IAAI,CAAC;QAC5C,CAAC;QAED,KAAK,CAAC,WAAW,CAAI,EAAgC;YACnD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;YACpC,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAC5B,MAAM,EAAE,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;gBACxC,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC5B,MAAM,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBAC7B,OAAO,MAAM,CAAC;YAChB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;gBAC/B,MAAM,GAAG,CAAC;YACZ,CAAC;oBAAS,CAAC;gBACT,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,MAAkB;IAC9C,OAAO;QACL,KAAK,CAAC,KAAK,CACT,IAAY,EACZ,SAAoB,EAAE;YAEtB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAChD,OAAO,cAAc,CAAC,MAAM,CAAQ,CAAC;QACvC,CAAC;QAED,KAAK,CAAC,QAAQ,CACZ,IAAY,EACZ,SAAoB,EAAE;YAEtB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAChD,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;YACpC,OAAQ,IAAI,CAAC,CAAC,CAAmB,IAAI,IAAI,CAAC;QAC5C,CAAC;QAED,WAAW,CAAI,GAAiC;YAC9C,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC3D,CAAC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAA2B,EAAE,MAAiB;IACzE,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,MAAM,MAAM,GAAc,EAAE,CAAC;IAE7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;QACjB,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YACtB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACvB,IAAI,IAAI,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAC1B,CAAC"}
@@ -0,0 +1,23 @@
1
+ import type { Dialect, ManifestTable } from "../../dialect/types.js";
2
+ export type WhereClause = {
3
+ sql: string;
4
+ params: unknown[];
5
+ };
6
+ export declare function compileWhere(table: ManifestTable, where: Record<string, unknown> | undefined, dialect: Dialect, startParamIndex?: number): WhereClause;
7
+ export declare function compileOrderBy(table: ManifestTable, orderBy: Record<string, string> | undefined): string;
8
+ export declare function normalizeSelectColumns(select?: readonly string[] | Record<string, boolean | undefined>): readonly string[] | undefined;
9
+ export declare function buildSelectColumns(table: ManifestTable, select?: readonly string[]): string;
10
+ export declare function buildFindByIdQuery(table: ManifestTable, idColumn?: string): string;
11
+ export declare function buildFindManyQuery(table: ManifestTable, whereSql: string, orderSql: string, limit?: number, offset?: number): string;
12
+ export declare function buildInsertQuery(table: ManifestTable, dataKeys: string[]): string;
13
+ export declare function buildUpdateQuery(table: ManifestTable, dataKeys: string[], whereSql: string): string;
14
+ export declare function buildDeleteQuery(table: ManifestTable, whereSql: string): string;
15
+ export declare function buildDeleteManyQuery(table: ManifestTable, whereSql: string): string;
16
+ export declare function buildUpdateManyQuery(table: ManifestTable, dataKeys: string[], whereSql: string): string;
17
+ export declare function dataToSqlValues(table: ManifestTable, data: Record<string, unknown>): {
18
+ keys: string[];
19
+ values: unknown[];
20
+ };
21
+ export declare function rowToTs(table: ManifestTable, row: Record<string, unknown>): Record<string, unknown>;
22
+ export declare function rowsToTs(table: ManifestTable, rows: Record<string, unknown>[]): Record<string, unknown>[];
23
+ //# sourceMappingURL=compile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../../../src/runtime/query/compile.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAkB,aAAa,EAAiB,MAAM,wBAAwB,CAAC;AAGpG,MAAM,MAAM,WAAW,GAAG;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,OAAO,EAAE,CAAC;CACnB,CAAC;AAmBF,wBAAgB,YAAY,CAC1B,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAC1C,OAAO,EAAE,OAAO,EAChB,eAAe,SAAI,GAClB,WAAW,CAgDb;AAED,wBAAgB,cAAc,CAC5B,KAAK,EAAE,aAAa,EACpB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,GAC1C,MAAM,CAYR;AAED,wBAAgB,sBAAsB,CACpC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,SAAS,CAAC,GAC/D,SAAS,MAAM,EAAE,GAAG,SAAS,CAM/B;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,aAAa,EAAE,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAO3F;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,aAAa,EACpB,QAAQ,SAAO,GACd,MAAM,CAKR;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,aAAa,EACpB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,GACd,MAAM,CAUR;AAED,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,aAAa,EACpB,QAAQ,EAAE,MAAM,EAAE,GACjB,MAAM,CASR;AAED,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,aAAa,EACpB,QAAQ,EAAE,MAAM,EAAE,EAClB,QAAQ,EAAE,MAAM,GACf,MAAM,CAiBR;AAED,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,aAAa,EACpB,QAAQ,EAAE,MAAM,GACf,MAAM,CAMR;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,aAAa,EACpB,QAAQ,EAAE,MAAM,GACf,MAAM,CAIR;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,aAAa,EACpB,QAAQ,EAAE,MAAM,EAAE,EAClB,QAAQ,EAAE,MAAM,GACf,MAAM,CAeR;AAED,wBAAgB,eAAe,CAC7B,KAAK,EAAE,aAAa,EACpB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B;IAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,EAAE,OAAO,EAAE,CAAA;CAAE,CAavC;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAQnG;AAED,wBAAgB,QAAQ,CACtB,KAAK,EAAE,aAAa,EACpB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAC9B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAE3B"}
@@ -0,0 +1,182 @@
1
+ import { quoteIdentifier } from "../../dialect/postgres.js";
2
+ function isOperatorObject(value) {
3
+ return (typeof value === "object" &&
4
+ value !== null &&
5
+ !Array.isArray(value) &&
6
+ !(value instanceof Date));
7
+ }
8
+ const operatorParamTransform = {
9
+ contains: (v) => `%${String(v)}%`,
10
+ startsWith: (v) => `${String(v)}%`,
11
+ endsWith: (v) => `%${String(v)}`,
12
+ };
13
+ export function compileWhere(table, where, dialect, startParamIndex = 1) {
14
+ if (!where || Object.keys(where).length === 0) {
15
+ return { sql: "", params: [] };
16
+ }
17
+ const conditions = [];
18
+ const params = [];
19
+ let paramIndex = startParamIndex;
20
+ for (const [tsKey, rawValue] of Object.entries(where)) {
21
+ const col = table.columns.find((c) => c.tsName === tsKey);
22
+ if (!col)
23
+ continue;
24
+ const sqlCol = quoteIdentifier(col.sqlName);
25
+ if (!isOperatorObject(rawValue) || Array.isArray(rawValue)) {
26
+ conditions.push(dialect.whereOperators.equals(sqlCol, paramIndex));
27
+ params.push(rawValue);
28
+ paramIndex++;
29
+ continue;
30
+ }
31
+ const hasOperator = Object.keys(rawValue).some((k) => k in dialect.whereOperators);
32
+ if (!hasOperator) {
33
+ conditions.push(dialect.whereOperators.equals(sqlCol, paramIndex));
34
+ params.push(rawValue);
35
+ paramIndex++;
36
+ continue;
37
+ }
38
+ for (const [op, value] of Object.entries(rawValue)) {
39
+ if (!(op in dialect.whereOperators))
40
+ continue;
41
+ const operator = op;
42
+ const transform = operatorParamTransform[operator];
43
+ const paramValue = transform ? transform(value) : value;
44
+ conditions.push(dialect.whereOperators[operator](sqlCol, paramIndex));
45
+ params.push(paramValue);
46
+ paramIndex++;
47
+ }
48
+ }
49
+ return {
50
+ sql: conditions.length > 0 ? `WHERE ${conditions.join(" AND ")}` : "",
51
+ params,
52
+ };
53
+ }
54
+ export function compileOrderBy(table, orderBy) {
55
+ if (!orderBy || Object.keys(orderBy).length === 0)
56
+ return "";
57
+ const parts = [];
58
+ for (const [tsKey, direction] of Object.entries(orderBy)) {
59
+ const col = table.columns.find((c) => c.tsName === tsKey);
60
+ if (!col)
61
+ continue;
62
+ const dir = direction.toUpperCase() === "DESC" ? "DESC" : "ASC";
63
+ parts.push(`${quoteIdentifier(col.sqlName)} ${dir}`);
64
+ }
65
+ return parts.length > 0 ? `ORDER BY ${parts.join(", ")}` : "";
66
+ }
67
+ export function normalizeSelectColumns(select) {
68
+ if (!select)
69
+ return undefined;
70
+ if (Array.isArray(select))
71
+ return select;
72
+ return Object.entries(select)
73
+ .filter(([, enabled]) => enabled === true)
74
+ .map(([key]) => key);
75
+ }
76
+ export function buildSelectColumns(table, select) {
77
+ const cols = select && select.length > 0
78
+ ? table.columns.filter((c) => select.includes(c.tsName))
79
+ : table.columns;
80
+ return cols.map((c) => quoteIdentifier(c.sqlName)).join(", ");
81
+ }
82
+ export function buildFindByIdQuery(table, idColumn = "id") {
83
+ const col = table.columns.find((c) => c.tsName === idColumn);
84
+ const sqlCol = col ? quoteIdentifier(col.sqlName) : quoteIdentifier("id");
85
+ const selectCols = buildSelectColumns(table);
86
+ return `SELECT ${selectCols} FROM ${quoteIdentifier(table.sqlName)} WHERE ${sqlCol} = $1`;
87
+ }
88
+ export function buildFindManyQuery(table, whereSql, orderSql, limit, offset) {
89
+ const selectCols = buildSelectColumns(table);
90
+ let sql = `SELECT ${selectCols} FROM ${quoteIdentifier(table.sqlName)}`;
91
+ if (whereSql)
92
+ sql += ` ${whereSql}`;
93
+ if (orderSql)
94
+ sql += ` ${orderSql}`;
95
+ if (limit !== undefined)
96
+ sql += ` LIMIT ${limit}`;
97
+ if (offset !== undefined)
98
+ sql += ` OFFSET ${offset}`;
99
+ return sql;
100
+ }
101
+ export function buildInsertQuery(table, dataKeys) {
102
+ const cols = dataKeys.map((k) => {
103
+ const col = table.columns.find((c) => c.tsName === k);
104
+ return quoteIdentifier(col?.sqlName ?? k);
105
+ });
106
+ const placeholders = dataKeys.map((_, i) => `$${i + 1}`).join(", ");
107
+ const selectCols = buildSelectColumns(table);
108
+ return `INSERT INTO ${quoteIdentifier(table.sqlName)} (${cols.join(", ")}) VALUES (${placeholders}) RETURNING ${selectCols}`;
109
+ }
110
+ export function buildUpdateQuery(table, dataKeys, whereSql) {
111
+ const sets = dataKeys.map((k, i) => {
112
+ const col = table.columns.find((c) => c.tsName === k);
113
+ return `${quoteIdentifier(col?.sqlName ?? k)} = $${i + 1}`;
114
+ });
115
+ const selectCols = buildSelectColumns(table);
116
+ const whereOffset = dataKeys.length;
117
+ let sql = `UPDATE ${quoteIdentifier(table.sqlName)} SET ${sets.join(", ")}`;
118
+ if (whereSql) {
119
+ const adjustedWhere = whereSql.replace(/\$(\d+)/g, (_, n) => {
120
+ return `$${Number(n) + whereOffset}`;
121
+ });
122
+ sql += ` ${adjustedWhere}`;
123
+ }
124
+ sql += ` RETURNING ${selectCols}`;
125
+ return sql;
126
+ }
127
+ export function buildDeleteQuery(table, whereSql) {
128
+ const selectCols = buildSelectColumns(table);
129
+ let sql = `DELETE FROM ${quoteIdentifier(table.sqlName)}`;
130
+ if (whereSql)
131
+ sql += ` ${whereSql}`;
132
+ sql += ` RETURNING ${selectCols}`;
133
+ return sql;
134
+ }
135
+ export function buildDeleteManyQuery(table, whereSql) {
136
+ let sql = `DELETE FROM ${quoteIdentifier(table.sqlName)}`;
137
+ if (whereSql)
138
+ sql += ` ${whereSql}`;
139
+ return sql;
140
+ }
141
+ export function buildUpdateManyQuery(table, dataKeys, whereSql) {
142
+ const sets = dataKeys.map((k, i) => {
143
+ const col = table.columns.find((c) => c.tsName === k);
144
+ return `${quoteIdentifier(col?.sqlName ?? k)} = $${i + 1}`;
145
+ });
146
+ const whereOffset = dataKeys.length;
147
+ let sql = `UPDATE ${quoteIdentifier(table.sqlName)} SET ${sets.join(", ")}`;
148
+ if (whereSql) {
149
+ const adjustedWhere = whereSql.replace(/\$(\d+)/g, (_, n) => {
150
+ return `$${Number(n) + whereOffset}`;
151
+ });
152
+ sql += ` ${adjustedWhere}`;
153
+ }
154
+ return sql;
155
+ }
156
+ export function dataToSqlValues(table, data) {
157
+ const keys = [];
158
+ const values = [];
159
+ for (const [key, value] of Object.entries(data)) {
160
+ const col = table.columns.find((c) => c.tsName === key);
161
+ if (!col || col.primary)
162
+ continue;
163
+ if (value === undefined)
164
+ continue;
165
+ keys.push(key);
166
+ values.push(value);
167
+ }
168
+ return { keys, values };
169
+ }
170
+ export function rowToTs(table, row) {
171
+ const result = {};
172
+ for (const col of table.columns) {
173
+ if (col.sqlName in row) {
174
+ result[col.tsName] = row[col.sqlName];
175
+ }
176
+ }
177
+ return result;
178
+ }
179
+ export function rowsToTs(table, rows) {
180
+ return rows.map((row) => rowToTs(table, row));
181
+ }
182
+ //# sourceMappingURL=compile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compile.js","sourceRoot":"","sources":["../../../src/runtime/query/compile.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { Manifest } from "../../dialect/types.js";
2
+ import type { Executor } from "../executor.js";
3
+ import { type WithInput } from "./find.js";
4
+ export declare function createRecord(executor: Executor, manifest: Manifest, tableAccessor: string, args: {
5
+ data: Record<string, unknown>;
6
+ with?: Record<string, WithInput>;
7
+ }): Promise<Record<string, unknown>>;
8
+ //# sourceMappingURL=create.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/runtime/query/create.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAiB,MAAM,wBAAwB,CAAC;AACtE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAO/C,OAAO,EAAiB,KAAK,SAAS,EAAE,MAAM,WAAW,CAAC;AA2F1D,wBAAsB,YAAY,CAChC,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE;IACJ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;CAClC,GACA,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAkGlC"}