@syncular/typegen 0.0.1-73 → 0.0.1-89
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/generate.js +3 -3
- package/dist/index.js +5 -5
- package/dist/introspect-sqlite.d.ts.map +1 -1
- package/dist/introspect-sqlite.js +10 -2
- package/dist/introspect-sqlite.js.map +1 -1
- package/dist/introspect.js +2 -2
- package/dist/map-types.d.ts.map +1 -1
- package/dist/map-types.js +4 -3
- package/dist/map-types.js.map +1 -1
- package/dist/render.d.ts.map +1 -1
- package/dist/render.js +9 -3
- package/dist/render.js.map +1 -1
- package/package.json +2 -1
- package/src/introspect-sqlite.ts +11 -2
- package/src/map-types.ts +4 -3
- package/src/render.ts +14 -3
package/dist/generate.js
CHANGED
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { mkdir, writeFile } from 'node:fs/promises';
|
|
5
5
|
import { dirname } from 'node:path';
|
|
6
|
-
import { introspectAllVersions, introspectCurrentSchema } from './introspect';
|
|
7
|
-
import { resolveColumnType } from './map-types';
|
|
8
|
-
import { renderTypes } from './render';
|
|
6
|
+
import { introspectAllVersions, introspectCurrentSchema } from './introspect.js';
|
|
7
|
+
import { resolveColumnType } from './map-types.js';
|
|
8
|
+
import { renderTypes } from './render.js';
|
|
9
9
|
/**
|
|
10
10
|
* Apply type mapping to all columns in the schemas.
|
|
11
11
|
* Returns the schemas with tsType filled in and any custom imports collected.
|
package/dist/index.js
CHANGED
|
@@ -6,9 +6,9 @@
|
|
|
6
6
|
* 2. Introspecting the resulting schema
|
|
7
7
|
* 3. Generating TypeScript interfaces
|
|
8
8
|
*/
|
|
9
|
-
export * from './generate';
|
|
10
|
-
export * from './introspect';
|
|
11
|
-
export * from './map-types';
|
|
12
|
-
export * from './render';
|
|
13
|
-
export * from './types';
|
|
9
|
+
export * from './generate.js';
|
|
10
|
+
export * from './introspect.js';
|
|
11
|
+
export * from './map-types.js';
|
|
12
|
+
export * from './render.js';
|
|
13
|
+
export * from './types.js';
|
|
14
14
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"introspect-sqlite.d.ts","sourceRoot":"","sources":["../src/introspect-sqlite.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,OAAO,KAAK,EAAe,eAAe,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"introspect-sqlite.d.ts","sourceRoot":"","sources":["../src/introspect-sqlite.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,OAAO,KAAK,EAAe,eAAe,EAAE,MAAM,SAAS,CAAC;AAmH5D,wBAAsB,2BAA2B,CAAC,EAAE,GAAG,OAAO,EAC5D,UAAU,EAAE,iBAAiB,CAAC,EAAE,CAAC,EACjC,YAAY,CAAC,EAAE,MAAM,EAAE,GACtB,OAAO,CAAC,eAAe,EAAE,CAAC,CAa5B;AAED,wBAAsB,6BAA6B,CAAC,EAAE,GAAG,OAAO,EAC9D,UAAU,EAAE,iBAAiB,CAAC,EAAE,CAAC,EACjC,YAAY,CAAC,EAAE,MAAM,EAAE,GACtB,OAAO,CAAC,eAAe,CAAC,CAM1B"}
|
|
@@ -13,7 +13,15 @@ async function createSqliteDb() {
|
|
|
13
13
|
const { default: Database } = await import('better-sqlite3');
|
|
14
14
|
return new Database(':memory:');
|
|
15
15
|
}
|
|
16
|
-
function createKysely(sqliteDb) {
|
|
16
|
+
async function createKysely(sqliteDb) {
|
|
17
|
+
if (isBun) {
|
|
18
|
+
const { BunSqliteDialect } = await import('kysely-bun-sqlite');
|
|
19
|
+
return new Kysely({
|
|
20
|
+
dialect: new BunSqliteDialect({
|
|
21
|
+
database: sqliteDb,
|
|
22
|
+
}),
|
|
23
|
+
});
|
|
24
|
+
}
|
|
17
25
|
return new Kysely({
|
|
18
26
|
dialect: new SqliteDialect({
|
|
19
27
|
database: sqliteDb,
|
|
@@ -52,7 +60,7 @@ function getAllTables(sqliteDb) {
|
|
|
52
60
|
async function introspectAtVersion(migrations, targetVersion, filterTables) {
|
|
53
61
|
const sqliteDb = await createSqliteDb();
|
|
54
62
|
try {
|
|
55
|
-
const db = createKysely(sqliteDb);
|
|
63
|
+
const db = await createKysely(sqliteDb);
|
|
56
64
|
for (const migration of migrations.migrations) {
|
|
57
65
|
if (migration.version > targetVersion)
|
|
58
66
|
break;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"introspect-sqlite.js","sourceRoot":"","sources":["../src/introspect-sqlite.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAkB/C,MAAM,KAAK,GAAG,OAAO,UAAU,CAAC,GAAG,KAAK,WAAW,CAAC;AAEpD,KAAK,UAAU,cAAc,GAAsB;IACjD,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC;QAChD,OAAO,IAAI,QAAQ,CAAC,UAAU,CAAC,CAAC;IAClC,CAAC;IACD,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAC7D,OAAO,IAAI,QAAQ,CAAC,UAAU,CAAC,CAAC;AAAA,CACjC;AAED,
|
|
1
|
+
{"version":3,"file":"introspect-sqlite.js","sourceRoot":"","sources":["../src/introspect-sqlite.ts"],"names":[],"mappings":"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"}
|
package/dist/introspect.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @syncular/typegen - Schema introspection dispatcher
|
|
3
3
|
*/
|
|
4
|
-
import { introspectPostgresAllVersions, introspectPostgresCurrentSchema, } from './introspect-postgres';
|
|
5
|
-
import { introspectSqliteAllVersions, introspectSqliteCurrentSchema, } from './introspect-sqlite';
|
|
4
|
+
import { introspectPostgresAllVersions, introspectPostgresCurrentSchema, } from './introspect-postgres.js';
|
|
5
|
+
import { introspectSqliteAllVersions, introspectSqliteCurrentSchema, } from './introspect-sqlite.js';
|
|
6
6
|
export async function introspectAllVersions(migrations, dialect, filterTables) {
|
|
7
7
|
if (dialect === 'postgres') {
|
|
8
8
|
return introspectPostgresAllVersions(migrations, filterTables);
|
package/dist/map-types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map-types.d.ts","sourceRoot":"","sources":["../src/map-types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAkB,MAAM,SAAS,CAAC;AAEzE,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAChD;
|
|
1
|
+
{"version":3,"file":"map-types.d.ts","sourceRoot":"","sources":["../src/map-types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAkB,MAAM,SAAS,CAAC;AAEzE,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAChD;AA6ID;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,UAAU,EACf,YAAY,CAAC,EAAE,aAAa,GAC3B,YAAY,CAgCd"}
|
package/dist/map-types.js
CHANGED
|
@@ -40,10 +40,11 @@ function mapPostgresType(sqlType) {
|
|
|
40
40
|
if (lower === 'float4' ||
|
|
41
41
|
lower === 'float8' ||
|
|
42
42
|
lower === 'real' ||
|
|
43
|
-
lower === 'double precision'
|
|
44
|
-
lower === 'numeric' ||
|
|
45
|
-
lower === 'decimal')
|
|
43
|
+
lower === 'double precision')
|
|
46
44
|
return 'number';
|
|
45
|
+
// Exact numeric types are string by default to match common pg driver behavior.
|
|
46
|
+
if (lower === 'numeric' || lower === 'decimal')
|
|
47
|
+
return 'string';
|
|
47
48
|
// Boolean
|
|
48
49
|
if (lower === 'bool' || lower === 'boolean')
|
|
49
50
|
return 'boolean';
|
package/dist/map-types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map-types.js","sourceRoot":"","sources":["../src/map-types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,SAAS,aAAa,CAAC,OAAe,EAAU;IAC9C,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAEpC,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC3C,IACE,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;QACtB,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;QACvB,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAExB,OAAO,QAAQ,CAAC;IAClB,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,YAAY,CAAC;IAChD,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC5C,4BAA4B;IAC5B,OAAO,QAAQ,CAAC;AAAA,CACjB;AAED,SAAS,eAAe,CAAC,OAAe,EAAU;IAChD,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAEhE,6DAA2D;IAC3D,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACpD,OAAO,GAAG,OAAO,IAAI,CAAC;IACxB,CAAC;IAED,gBAAgB;IAChB,IACE,KAAK,KAAK,MAAM;QAChB,KAAK,KAAK,MAAM;QAChB,KAAK,KAAK,SAAS;QACnB,KAAK,KAAK,UAAU;QACpB,KAAK,KAAK,QAAQ;QAElB,OAAO,QAAQ,CAAC;IAElB,qCAAmC;IACnC,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,WAAW;QACjE,OAAO,QAAQ,CAAC;IAElB,2BAA2B;IAC3B,IACE,KAAK,KAAK,QAAQ;QAClB,KAAK,KAAK,QAAQ;QAClB,KAAK,KAAK,MAAM;QAChB,KAAK,KAAK,kBAAkB;
|
|
1
|
+
{"version":3,"file":"map-types.js","sourceRoot":"","sources":["../src/map-types.ts"],"names":[],"mappings":"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"}
|
package/dist/render.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAA6B,eAAe,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAA6B,eAAe,EAAE,MAAM,SAAS,CAAC;AAiD1E;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,oDAAoD;IACpD,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,qCAAqC;IACrC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,oCAAoC;IACpC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,qDAAqD;IACrD,aAAa,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACvD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CAgH1D"}
|
package/dist/render.js
CHANGED
|
@@ -14,9 +14,10 @@ function toPascalCase(str) {
|
|
|
14
14
|
* Render a single column definition.
|
|
15
15
|
*/
|
|
16
16
|
function renderColumn(column) {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
17
|
+
const tsType = column.hasDefault
|
|
18
|
+
? `Generated<${column.tsType}>`
|
|
19
|
+
: column.tsType;
|
|
20
|
+
return ` ${column.name}: ${tsType};`;
|
|
20
21
|
}
|
|
21
22
|
/**
|
|
22
23
|
* Render a table interface.
|
|
@@ -52,6 +53,11 @@ export function renderTypes(options) {
|
|
|
52
53
|
lines.push("import type { SyncClientDb } from '@syncular/client';");
|
|
53
54
|
lines.push('');
|
|
54
55
|
}
|
|
56
|
+
const usesGenerated = schemas.some((schema) => schema.tables.some((table) => table.columns.some((column) => column.hasDefault)));
|
|
57
|
+
if (usesGenerated) {
|
|
58
|
+
lines.push("import type { Generated } from 'kysely';");
|
|
59
|
+
lines.push('');
|
|
60
|
+
}
|
|
55
61
|
// Render custom imports from resolver
|
|
56
62
|
if (customImports && customImports.length > 0) {
|
|
57
63
|
// Group imports by source module
|
package/dist/render.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.js","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,SAAS,YAAY,CAAC,GAAW,EAAU;IACzC,OAAO,GAAG;SACP,KAAK,CAAC,MAAM,CAAC;SACb,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;SACzE,IAAI,CAAC,EAAE,CAAC,CAAC;AAAA,CACb;AAED;;GAEG;AACH,SAAS,YAAY,CAAC,MAAoB,EAAU;IAClD,
|
|
1
|
+
{"version":3,"file":"render.js","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@syncular/typegen",
|
|
3
|
-
"version": "0.0.1-
|
|
3
|
+
"version": "0.0.1-89",
|
|
4
4
|
"description": "TypeScript type generator for Syncular schemas",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Benjamin Kniffler",
|
|
@@ -46,6 +46,7 @@
|
|
|
46
46
|
"@electric-sql/pglite": "^0.3.15",
|
|
47
47
|
"@syncular/migrations": "0.0.1",
|
|
48
48
|
"better-sqlite3": "^12.6.2",
|
|
49
|
+
"kysely-bun-sqlite": "^0.4.0",
|
|
49
50
|
"kysely-pglite-dialect": "^1.2.0"
|
|
50
51
|
},
|
|
51
52
|
"peerDependencies": {
|
package/src/introspect-sqlite.ts
CHANGED
|
@@ -34,7 +34,16 @@ async function createSqliteDb(): Promise<SqliteDb> {
|
|
|
34
34
|
return new Database(':memory:');
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
-
function createKysely<DB>(sqliteDb: SqliteDb): Kysely<DB
|
|
37
|
+
async function createKysely<DB>(sqliteDb: SqliteDb): Promise<Kysely<DB>> {
|
|
38
|
+
if (isBun) {
|
|
39
|
+
const { BunSqliteDialect } = await import('kysely-bun-sqlite');
|
|
40
|
+
return new Kysely<DB>({
|
|
41
|
+
dialect: new BunSqliteDialect({
|
|
42
|
+
database: sqliteDb as never,
|
|
43
|
+
}),
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
|
|
38
47
|
return new Kysely<DB>({
|
|
39
48
|
dialect: new SqliteDialect({
|
|
40
49
|
database: sqliteDb as never,
|
|
@@ -85,7 +94,7 @@ async function introspectAtVersion<DB = unknown>(
|
|
|
85
94
|
const sqliteDb = await createSqliteDb();
|
|
86
95
|
|
|
87
96
|
try {
|
|
88
|
-
const db = createKysely<DB>(sqliteDb);
|
|
97
|
+
const db = await createKysely<DB>(sqliteDb);
|
|
89
98
|
|
|
90
99
|
for (const migration of migrations.migrations) {
|
|
91
100
|
if (migration.version > targetVersion) break;
|
package/src/map-types.ts
CHANGED
|
@@ -56,12 +56,13 @@ function mapPostgresType(sqlType: string): string {
|
|
|
56
56
|
lower === 'float4' ||
|
|
57
57
|
lower === 'float8' ||
|
|
58
58
|
lower === 'real' ||
|
|
59
|
-
lower === 'double precision'
|
|
60
|
-
lower === 'numeric' ||
|
|
61
|
-
lower === 'decimal'
|
|
59
|
+
lower === 'double precision'
|
|
62
60
|
)
|
|
63
61
|
return 'number';
|
|
64
62
|
|
|
63
|
+
// Exact numeric types are string by default to match common pg driver behavior.
|
|
64
|
+
if (lower === 'numeric' || lower === 'decimal') return 'string';
|
|
65
|
+
|
|
65
66
|
// Boolean
|
|
66
67
|
if (lower === 'bool' || lower === 'boolean') return 'boolean';
|
|
67
68
|
|
package/src/render.ts
CHANGED
|
@@ -18,9 +18,10 @@ function toPascalCase(str: string): string {
|
|
|
18
18
|
* Render a single column definition.
|
|
19
19
|
*/
|
|
20
20
|
function renderColumn(column: ColumnSchema): string {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
const tsType = column.hasDefault
|
|
22
|
+
? `Generated<${column.tsType}>`
|
|
23
|
+
: column.tsType;
|
|
24
|
+
return ` ${column.name}: ${tsType};`;
|
|
24
25
|
}
|
|
25
26
|
|
|
26
27
|
/**
|
|
@@ -85,6 +86,16 @@ export function renderTypes(options: RenderOptions): string {
|
|
|
85
86
|
lines.push('');
|
|
86
87
|
}
|
|
87
88
|
|
|
89
|
+
const usesGenerated = schemas.some((schema) =>
|
|
90
|
+
schema.tables.some((table) =>
|
|
91
|
+
table.columns.some((column) => column.hasDefault)
|
|
92
|
+
)
|
|
93
|
+
);
|
|
94
|
+
if (usesGenerated) {
|
|
95
|
+
lines.push("import type { Generated } from 'kysely';");
|
|
96
|
+
lines.push('');
|
|
97
|
+
}
|
|
98
|
+
|
|
88
99
|
// Render custom imports from resolver
|
|
89
100
|
if (customImports && customImports.length > 0) {
|
|
90
101
|
// Group imports by source module
|