@syncular/typegen 0.0.1-120 → 0.0.1-123
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.d.ts.map +1 -1
- package/dist/generate.js +2 -1
- package/dist/generate.js.map +1 -1
- package/dist/render.d.ts +3 -1
- package/dist/render.d.ts.map +1 -1
- package/dist/render.js +15 -2
- package/dist/render.js.map +1 -1
- package/dist/types.d.ts +11 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/generate.ts +2 -0
- package/src/render.ts +34 -4
- package/src/types.ts +15 -0
package/dist/generate.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,OAAO,KAAK,EACV,oBAAoB,EACpB,mBAAmB,EAIpB,MAAM,SAAS,CAAC;AA6CjB;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,aAAa,CAAC,EAAE,EACpC,OAAO,EAAE,oBAAoB,CAAC,EAAE,CAAC,GAChC,OAAO,CAAC,mBAAmB,CAAC,
|
|
1
|
+
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,OAAO,KAAK,EACV,oBAAoB,EACpB,mBAAmB,EAIpB,MAAM,SAAS,CAAC;AA6CjB;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,aAAa,CAAC,EAAE,EACpC,OAAO,EAAE,oBAAoB,CAAC,EAAE,CAAC,GAChC,OAAO,CAAC,mBAAmB,CAAC,CAmD9B"}
|
package/dist/generate.js
CHANGED
|
@@ -52,7 +52,7 @@ function applyTypeMappings(schemas, dialect, resolveType) {
|
|
|
52
52
|
* ```
|
|
53
53
|
*/
|
|
54
54
|
export async function generateTypes(options) {
|
|
55
|
-
const { migrations, output, extendsSyncClientDb, includeVersionHistory, tables, dialect = 'sqlite', resolveType, } = options;
|
|
55
|
+
const { migrations, output, extendsSyncClientDb, syncularImportType, includeVersionHistory, tables, dialect = 'sqlite', resolveType, } = options;
|
|
56
56
|
// Introspect schemas (raw SQL types, no TS mapping yet)
|
|
57
57
|
let rawSchemas;
|
|
58
58
|
if (includeVersionHistory) {
|
|
@@ -68,6 +68,7 @@ export async function generateTypes(options) {
|
|
|
68
68
|
const code = renderTypes({
|
|
69
69
|
schemas,
|
|
70
70
|
extendsSyncClientDb,
|
|
71
|
+
syncularImportType,
|
|
71
72
|
includeVersionHistory,
|
|
72
73
|
customImports,
|
|
73
74
|
});
|
package/dist/generate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"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"}
|
package/dist/render.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @syncular/typegen - TypeScript code generation
|
|
3
3
|
*/
|
|
4
|
-
import type { VersionedSchema } from './types';
|
|
4
|
+
import type { SyncularImportType, VersionedSchema } from './types';
|
|
5
5
|
/**
|
|
6
6
|
* Options for rendering types.
|
|
7
7
|
*/
|
|
@@ -10,6 +10,8 @@ export interface RenderOptions {
|
|
|
10
10
|
schemas: VersionedSchema[];
|
|
11
11
|
/** Whether to extend SyncClientDb */
|
|
12
12
|
extendsSyncClientDb?: boolean;
|
|
13
|
+
/** Controls package import style for SyncClientDb (default: 'scoped') */
|
|
14
|
+
syncularImportType?: SyncularImportType;
|
|
13
15
|
/** Generate versioned interfaces */
|
|
14
16
|
includeVersionHistory?: boolean;
|
|
15
17
|
/** Custom imports collected from resolver results */
|
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,
|
|
1
|
+
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAEV,kBAAkB,EAElB,eAAe,EAChB,MAAM,SAAS,CAAC;AAiDjB;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,oDAAoD;IACpD,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,qCAAqC;IACrC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,yEAAyE;IACzE,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,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;AAkBD;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CAuH1D"}
|
package/dist/render.js
CHANGED
|
@@ -36,11 +36,24 @@ function renderDbInterface(schema, interfaceName, extendsType) {
|
|
|
36
36
|
.join('\n');
|
|
37
37
|
return `export interface ${interfaceName}${extendsClause} {\n${tableEntries}\n}`;
|
|
38
38
|
}
|
|
39
|
+
function resolveSyncClientImportPath(importType) {
|
|
40
|
+
if (importType === 'umbrella') {
|
|
41
|
+
return 'syncular/client';
|
|
42
|
+
}
|
|
43
|
+
if (importType === 'scoped') {
|
|
44
|
+
return '@syncular/client';
|
|
45
|
+
}
|
|
46
|
+
const clientImportPath = importType.client.trim();
|
|
47
|
+
if (clientImportPath.length === 0) {
|
|
48
|
+
throw new Error('syncularImportType.client must be a non-empty package import path');
|
|
49
|
+
}
|
|
50
|
+
return clientImportPath;
|
|
51
|
+
}
|
|
39
52
|
/**
|
|
40
53
|
* Render complete TypeScript type definitions.
|
|
41
54
|
*/
|
|
42
55
|
export function renderTypes(options) {
|
|
43
|
-
const { schemas, extendsSyncClientDb, includeVersionHistory, customImports } = options;
|
|
56
|
+
const { schemas, extendsSyncClientDb, syncularImportType = 'scoped', includeVersionHistory, customImports, } = options;
|
|
44
57
|
const lines = [];
|
|
45
58
|
// Header
|
|
46
59
|
lines.push('/**');
|
|
@@ -50,7 +63,7 @@ export function renderTypes(options) {
|
|
|
50
63
|
lines.push('');
|
|
51
64
|
// Import SyncClientDb if extending
|
|
52
65
|
if (extendsSyncClientDb) {
|
|
53
|
-
lines.push(
|
|
66
|
+
lines.push(`import type { SyncClientDb } from '${resolveSyncClientImportPath(syncularImportType)}';`);
|
|
54
67
|
lines.push('');
|
|
55
68
|
}
|
|
56
69
|
const usesGenerated = schemas.some((schema) => schema.tables.some((table) => table.columns.some((column) => column.hasDefault)));
|
package/dist/render.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.js","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"render.js","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -3,6 +3,10 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import type { DefinedMigrations } from '@syncular/migrations';
|
|
5
5
|
export type TypegenDialect = 'sqlite' | 'postgres';
|
|
6
|
+
export type SyncularImportType = 'scoped' | 'umbrella' | {
|
|
7
|
+
client: string;
|
|
8
|
+
[packageName: string]: string;
|
|
9
|
+
};
|
|
6
10
|
/**
|
|
7
11
|
* Column information passed to the resolver function.
|
|
8
12
|
*/
|
|
@@ -66,6 +70,13 @@ export interface GenerateTypesOptions<DB = unknown> {
|
|
|
66
70
|
dialect?: TypegenDialect;
|
|
67
71
|
/** Whether to extend SyncClientDb interface (adds sync infrastructure types) */
|
|
68
72
|
extendsSyncClientDb?: boolean;
|
|
73
|
+
/**
|
|
74
|
+
* Controls how syncular package imports are rendered in generated output.
|
|
75
|
+
* - 'scoped' (default): '@syncular/client'
|
|
76
|
+
* - 'umbrella': 'syncular/client'
|
|
77
|
+
* - object: explicit package mapping (must include `client`)
|
|
78
|
+
*/
|
|
79
|
+
syncularImportType?: SyncularImportType;
|
|
69
80
|
/** Generate versioned interfaces (ClientDbV1, ClientDbV2, etc.) */
|
|
70
81
|
includeVersionHistory?: boolean;
|
|
71
82
|
/** Only generate types for these tables (default: all tables) */
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,cAAc,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,MAAM,YAAY,GACpB,MAAM,GACN;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC;AAE9D;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE,UAAU,KAAK,YAAY,GAAG,SAAS,CAAC;AAE1E;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,YAAY,EAAE,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,WAAW,EAAE,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB,CAAC,EAAE,GAAG,OAAO;IAChD,iDAAiD;IACjD,UAAU,EAAE,iBAAiB,CAAC,EAAE,CAAC,CAAC;IAClC,2CAA2C;IAC3C,MAAM,EAAE,MAAM,CAAC;IACf,oEAAoE;IACpE,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,gFAAgF;IAChF,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,mEAAmE;IACnE,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,+DAA+D;IAC/D,WAAW,CAAC,EAAE,aAAa,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,iCAAiC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,6BAA6B;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,iCAAiC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAC;CACd"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEnD,MAAM,MAAM,kBAAkB,GAC1B,QAAQ,GACR,UAAU,GACV;IACE,MAAM,EAAE,MAAM,CAAC;IACf,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC;CAC/B,CAAC;AAEN;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,cAAc,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,MAAM,YAAY,GACpB,MAAM,GACN;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC;AAE9D;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE,UAAU,KAAK,YAAY,GAAG,SAAS,CAAC;AAE1E;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,YAAY,EAAE,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,WAAW,EAAE,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB,CAAC,EAAE,GAAG,OAAO;IAChD,iDAAiD;IACjD,UAAU,EAAE,iBAAiB,CAAC,EAAE,CAAC,CAAC;IAClC,2CAA2C;IAC3C,MAAM,EAAE,MAAM,CAAC;IACf,oEAAoE;IACpE,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,gFAAgF;IAChF,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,mEAAmE;IACnE,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,+DAA+D;IAC/D,WAAW,CAAC,EAAE,aAAa,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,iCAAiC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,6BAA6B;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,iCAAiC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAC;CACd"}
|
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-123",
|
|
4
4
|
"description": "TypeScript type generator for Syncular schemas",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Benjamin Kniffler",
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
},
|
|
45
45
|
"dependencies": {
|
|
46
46
|
"@electric-sql/pglite": "^0.3.15",
|
|
47
|
-
"@syncular/migrations": "0.0.1-
|
|
47
|
+
"@syncular/migrations": "0.0.1-123",
|
|
48
48
|
"better-sqlite3": "^12.6.2",
|
|
49
49
|
"kysely-bun-sqlite": "^0.4.0",
|
|
50
50
|
"kysely-pglite-dialect": "^1.2.0"
|
package/src/generate.ts
CHANGED
|
@@ -80,6 +80,7 @@ export async function generateTypes<DB>(
|
|
|
80
80
|
migrations,
|
|
81
81
|
output,
|
|
82
82
|
extendsSyncClientDb,
|
|
83
|
+
syncularImportType,
|
|
83
84
|
includeVersionHistory,
|
|
84
85
|
tables,
|
|
85
86
|
dialect = 'sqlite',
|
|
@@ -106,6 +107,7 @@ export async function generateTypes<DB>(
|
|
|
106
107
|
const code = renderTypes({
|
|
107
108
|
schemas,
|
|
108
109
|
extendsSyncClientDb,
|
|
110
|
+
syncularImportType,
|
|
109
111
|
includeVersionHistory,
|
|
110
112
|
customImports,
|
|
111
113
|
});
|
package/src/render.ts
CHANGED
|
@@ -2,7 +2,12 @@
|
|
|
2
2
|
* @syncular/typegen - TypeScript code generation
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
-
import type {
|
|
5
|
+
import type {
|
|
6
|
+
ColumnSchema,
|
|
7
|
+
SyncularImportType,
|
|
8
|
+
TableSchema,
|
|
9
|
+
VersionedSchema,
|
|
10
|
+
} from './types';
|
|
6
11
|
|
|
7
12
|
/**
|
|
8
13
|
* Convert a snake_case table/column name to PascalCase.
|
|
@@ -59,18 +64,41 @@ export interface RenderOptions {
|
|
|
59
64
|
schemas: VersionedSchema[];
|
|
60
65
|
/** Whether to extend SyncClientDb */
|
|
61
66
|
extendsSyncClientDb?: boolean;
|
|
67
|
+
/** Controls package import style for SyncClientDb (default: 'scoped') */
|
|
68
|
+
syncularImportType?: SyncularImportType;
|
|
62
69
|
/** Generate versioned interfaces */
|
|
63
70
|
includeVersionHistory?: boolean;
|
|
64
71
|
/** Custom imports collected from resolver results */
|
|
65
72
|
customImports?: Array<{ name: string; from: string }>;
|
|
66
73
|
}
|
|
67
74
|
|
|
75
|
+
function resolveSyncClientImportPath(importType: SyncularImportType): string {
|
|
76
|
+
if (importType === 'umbrella') {
|
|
77
|
+
return 'syncular/client';
|
|
78
|
+
}
|
|
79
|
+
if (importType === 'scoped') {
|
|
80
|
+
return '@syncular/client';
|
|
81
|
+
}
|
|
82
|
+
const clientImportPath = importType.client.trim();
|
|
83
|
+
if (clientImportPath.length === 0) {
|
|
84
|
+
throw new Error(
|
|
85
|
+
'syncularImportType.client must be a non-empty package import path'
|
|
86
|
+
);
|
|
87
|
+
}
|
|
88
|
+
return clientImportPath;
|
|
89
|
+
}
|
|
90
|
+
|
|
68
91
|
/**
|
|
69
92
|
* Render complete TypeScript type definitions.
|
|
70
93
|
*/
|
|
71
94
|
export function renderTypes(options: RenderOptions): string {
|
|
72
|
-
const {
|
|
73
|
-
|
|
95
|
+
const {
|
|
96
|
+
schemas,
|
|
97
|
+
extendsSyncClientDb,
|
|
98
|
+
syncularImportType = 'scoped',
|
|
99
|
+
includeVersionHistory,
|
|
100
|
+
customImports,
|
|
101
|
+
} = options;
|
|
74
102
|
const lines: string[] = [];
|
|
75
103
|
|
|
76
104
|
// Header
|
|
@@ -82,7 +110,9 @@ export function renderTypes(options: RenderOptions): string {
|
|
|
82
110
|
|
|
83
111
|
// Import SyncClientDb if extending
|
|
84
112
|
if (extendsSyncClientDb) {
|
|
85
|
-
lines.push(
|
|
113
|
+
lines.push(
|
|
114
|
+
`import type { SyncClientDb } from '${resolveSyncClientImportPath(syncularImportType)}';`
|
|
115
|
+
);
|
|
86
116
|
lines.push('');
|
|
87
117
|
}
|
|
88
118
|
|
package/src/types.ts
CHANGED
|
@@ -6,6 +6,14 @@ import type { DefinedMigrations } from '@syncular/migrations';
|
|
|
6
6
|
|
|
7
7
|
export type TypegenDialect = 'sqlite' | 'postgres';
|
|
8
8
|
|
|
9
|
+
export type SyncularImportType =
|
|
10
|
+
| 'scoped'
|
|
11
|
+
| 'umbrella'
|
|
12
|
+
| {
|
|
13
|
+
client: string;
|
|
14
|
+
[packageName: string]: string;
|
|
15
|
+
};
|
|
16
|
+
|
|
9
17
|
/**
|
|
10
18
|
* Column information passed to the resolver function.
|
|
11
19
|
*/
|
|
@@ -71,6 +79,13 @@ export interface GenerateTypesOptions<DB = unknown> {
|
|
|
71
79
|
dialect?: TypegenDialect;
|
|
72
80
|
/** Whether to extend SyncClientDb interface (adds sync infrastructure types) */
|
|
73
81
|
extendsSyncClientDb?: boolean;
|
|
82
|
+
/**
|
|
83
|
+
* Controls how syncular package imports are rendered in generated output.
|
|
84
|
+
* - 'scoped' (default): '@syncular/client'
|
|
85
|
+
* - 'umbrella': 'syncular/client'
|
|
86
|
+
* - object: explicit package mapping (must include `client`)
|
|
87
|
+
*/
|
|
88
|
+
syncularImportType?: SyncularImportType;
|
|
74
89
|
/** Generate versioned interfaces (ClientDbV1, ClientDbV2, etc.) */
|
|
75
90
|
includeVersionHistory?: boolean;
|
|
76
91
|
/** Only generate types for these tables (default: all tables) */
|