@typokit/db-raw 0.1.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.
@@ -0,0 +1,17 @@
1
+ import type { SchemaTypeMap, GeneratedOutput, MigrationDraft } from "@typokit/types";
2
+ import type { DatabaseAdapter, DatabaseState } from "@typokit/core";
3
+ export type RawSqlDialect = "postgresql" | "sqlite";
4
+ export interface RawSqlAdapterOptions {
5
+ dialect?: RawSqlDialect;
6
+ outputDir?: string;
7
+ }
8
+ /** Parse string union type like `"a" | "b" | "c"` into values */
9
+ export declare function parseUnionValues(typeStr: string): string[] | null;
10
+ export declare class RawSqlDatabaseAdapter implements DatabaseAdapter {
11
+ private readonly dialect;
12
+ private readonly outputDir;
13
+ constructor(options?: RawSqlAdapterOptions);
14
+ generate(types: SchemaTypeMap): GeneratedOutput[];
15
+ diff(types: SchemaTypeMap, currentState: DatabaseState): MigrationDraft;
16
+ }
17
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,aAAa,EAEb,eAAe,EACf,cAAc,EAEf,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEpE,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG,QAAQ,CAAC;AAEpD,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA4BD,iEAAiE;AACjE,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAYjE;AAyXD,qBAAa,qBAAsB,YAAW,eAAe;IAC3D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgB;IACxC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;gBAEvB,OAAO,CAAC,EAAE,oBAAoB;IAK1C,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,eAAe,EAAE;IAmBjD,IAAI,CAAC,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,GAAG,cAAc;CAgBxE"}
package/dist/index.js ADDED
@@ -0,0 +1,361 @@
1
+ // ─── Helpers ─────────────────────────────────────────────────
2
+ function toSnakeCase(str) {
3
+ return str
4
+ .replace(/([A-Z])/g, (_, letter, index) => index === 0 ? letter.toLowerCase() : `_${letter.toLowerCase()}`)
5
+ .replace(/__+/g, "_");
6
+ }
7
+ function pluralize(str) {
8
+ if (str.endsWith("s"))
9
+ return str;
10
+ if (str.endsWith("y") && !/[aeiou]y$/i.test(str))
11
+ return str.slice(0, -1) + "ies";
12
+ return str + "s";
13
+ }
14
+ function toTableName(typeName, jsdoc) {
15
+ if (jsdoc?.table)
16
+ return jsdoc.table;
17
+ return pluralize(toSnakeCase(typeName));
18
+ }
19
+ function toColumnName(propName) {
20
+ return toSnakeCase(propName);
21
+ }
22
+ /** Parse string union type like `"a" | "b" | "c"` into values */
23
+ export function parseUnionValues(typeStr) {
24
+ const trimmed = typeStr.trim();
25
+ if (!trimmed.includes("|"))
26
+ return null;
27
+ const parts = trimmed.split("|").map((p) => p.trim());
28
+ const values = [];
29
+ for (const part of parts) {
30
+ const match = /^"([^"]*)"$/.exec(part);
31
+ if (!match)
32
+ return null;
33
+ values.push(match[1]);
34
+ }
35
+ return values.length > 0 ? values : null;
36
+ }
37
+ function toEnumName(typeName, propName) {
38
+ return `${toSnakeCase(typeName)}_${toSnakeCase(propName)}`;
39
+ }
40
+ // ─── PostgreSQL Column Mapping ──────────────────────────────
41
+ function mapPgColumnType(prop) {
42
+ const jsdoc = prop.jsdoc ?? {};
43
+ if (prop.type === "string" &&
44
+ (jsdoc.id !== undefined || jsdoc.generated === "uuid")) {
45
+ return "UUID";
46
+ }
47
+ if (prop.type === "string" && jsdoc.maxLength) {
48
+ return `VARCHAR(${jsdoc.maxLength})`;
49
+ }
50
+ if (prop.type === "string" && jsdoc.format === "email") {
51
+ return "VARCHAR(255)";
52
+ }
53
+ if (prop.type === "string") {
54
+ return "TEXT";
55
+ }
56
+ if (prop.type === "number") {
57
+ return "INTEGER";
58
+ }
59
+ if (prop.type === "bigint") {
60
+ return "BIGINT";
61
+ }
62
+ if (prop.type === "boolean") {
63
+ return "BOOLEAN";
64
+ }
65
+ if (prop.type === "Date") {
66
+ return "TIMESTAMPTZ";
67
+ }
68
+ // object, Record, unknown → JSONB
69
+ return "JSONB";
70
+ }
71
+ function mapSqliteColumnType(prop) {
72
+ if (prop.type === "number" || prop.type === "bigint") {
73
+ return "INTEGER";
74
+ }
75
+ if (prop.type === "boolean") {
76
+ return "INTEGER";
77
+ }
78
+ // string, Date, object, Record, enum unions → TEXT
79
+ return "TEXT";
80
+ }
81
+ function generatePgDdl(typeName, meta) {
82
+ const tableName = toTableName(typeName, meta.jsdoc);
83
+ const enums = [];
84
+ const columns = [];
85
+ for (const [propName, prop] of Object.entries(meta.properties)) {
86
+ const col = toColumnName(propName);
87
+ const jsdoc = prop.jsdoc ?? {};
88
+ const parts = [col];
89
+ // Check for union → CREATE TYPE enum
90
+ const unionValues = parseUnionValues(prop.type);
91
+ if (unionValues) {
92
+ const enumName = toEnumName(typeName, propName);
93
+ enums.push({ name: enumName, values: unionValues });
94
+ parts.push(enumName);
95
+ }
96
+ else {
97
+ parts.push(mapPgColumnType(prop));
98
+ }
99
+ // NOT NULL
100
+ if (!prop.optional) {
101
+ parts.push("NOT NULL");
102
+ }
103
+ // PRIMARY KEY
104
+ if (jsdoc.id !== undefined) {
105
+ parts.push("PRIMARY KEY");
106
+ }
107
+ // UNIQUE
108
+ if (jsdoc.unique !== undefined) {
109
+ parts.push("UNIQUE");
110
+ }
111
+ // DEFAULT
112
+ if (jsdoc.generated === "uuid") {
113
+ parts.push("DEFAULT gen_random_uuid()");
114
+ }
115
+ else if (jsdoc.generated === "now" || jsdoc.onUpdate === "now") {
116
+ parts.push("DEFAULT now()");
117
+ }
118
+ else if (jsdoc.default !== undefined) {
119
+ const defaultVal = jsdoc.default.replace(/^["']|["']$/g, "");
120
+ if (/^\d+$/.test(defaultVal)) {
121
+ parts.push(`DEFAULT ${defaultVal}`);
122
+ }
123
+ else if (defaultVal === "true" || defaultVal === "false") {
124
+ parts.push(`DEFAULT ${defaultVal}`);
125
+ }
126
+ else {
127
+ parts.push(`DEFAULT '${defaultVal}'`);
128
+ }
129
+ }
130
+ columns.push(" " + parts.join(" "));
131
+ }
132
+ let ddl = "";
133
+ // Enum type definitions
134
+ for (const e of enums) {
135
+ ddl += `CREATE TYPE ${e.name} AS ENUM (${e.values.map((v) => `'${v}'`).join(", ")});\n\n`;
136
+ }
137
+ // Table definition
138
+ ddl += `CREATE TABLE ${tableName} (\n`;
139
+ ddl += columns.join(",\n") + "\n";
140
+ ddl += ");";
141
+ return { ddl, enums };
142
+ }
143
+ // ─── SQLite DDL Generation ──────────────────────────────────
144
+ function generateSqliteDdl(typeName, meta) {
145
+ const tableName = toTableName(typeName, meta.jsdoc);
146
+ const columns = [];
147
+ for (const [propName, prop] of Object.entries(meta.properties)) {
148
+ const col = toColumnName(propName);
149
+ const jsdoc = prop.jsdoc ?? {};
150
+ const parts = [col];
151
+ parts.push(mapSqliteColumnType(prop));
152
+ // NOT NULL
153
+ if (!prop.optional) {
154
+ parts.push("NOT NULL");
155
+ }
156
+ // PRIMARY KEY
157
+ if (jsdoc.id !== undefined) {
158
+ parts.push("PRIMARY KEY");
159
+ }
160
+ // UNIQUE
161
+ if (jsdoc.unique !== undefined) {
162
+ parts.push("UNIQUE");
163
+ }
164
+ // DEFAULT
165
+ if (jsdoc.default !== undefined) {
166
+ const defaultVal = jsdoc.default.replace(/^["']|["']$/g, "");
167
+ if (/^\d+$/.test(defaultVal)) {
168
+ parts.push(`DEFAULT ${defaultVal}`);
169
+ }
170
+ else if (defaultVal === "true" || defaultVal === "false") {
171
+ parts.push(`DEFAULT ${defaultVal === "true" ? "1" : "0"}`);
172
+ }
173
+ else {
174
+ parts.push(`DEFAULT '${defaultVal}'`);
175
+ }
176
+ }
177
+ columns.push(" " + parts.join(" "));
178
+ }
179
+ let ddl = `CREATE TABLE ${tableName} (\n`;
180
+ ddl += columns.join(",\n") + "\n";
181
+ ddl += ");";
182
+ return ddl;
183
+ }
184
+ // ─── TypeScript Interface Generation ────────────────────────
185
+ function tsTypeFromProp(prop) {
186
+ const unionValues = parseUnionValues(prop.type);
187
+ if (unionValues) {
188
+ return unionValues.map((v) => `"${v}"`).join(" | ");
189
+ }
190
+ return prop.type;
191
+ }
192
+ function generateTypeScriptInterface(typeName, meta) {
193
+ const lines = [];
194
+ lines.push(`export interface ${typeName} {`);
195
+ for (const [propName, prop] of Object.entries(meta.properties)) {
196
+ const tsType = tsTypeFromProp(prop);
197
+ const opt = prop.optional ? "?" : "";
198
+ lines.push(` ${propName}${opt}: ${tsType};`);
199
+ }
200
+ lines.push("}");
201
+ return lines.join("\n");
202
+ }
203
+ // ─── Full File Generation ───────────────────────────────────
204
+ function generatePgFile(typeName, meta) {
205
+ const tableName = toTableName(typeName, meta.jsdoc);
206
+ const { ddl } = generatePgDdl(typeName, meta);
207
+ let content = `-- AUTO-GENERATED by @typokit/db-raw from ${typeName} type\n`;
208
+ content += `-- Do not edit manually — modify the source type instead\n\n`;
209
+ content += ddl + "\n";
210
+ return {
211
+ filePath: `${tableName}.sql`,
212
+ content,
213
+ overwrite: true,
214
+ };
215
+ }
216
+ function generatePgTypesFile(types) {
217
+ let content = `// AUTO-GENERATED by @typokit/db-raw\n`;
218
+ content += `// Do not edit manually — modify the source types instead\n\n`;
219
+ const interfaces = [];
220
+ for (const [typeName, meta] of Object.entries(types)) {
221
+ interfaces.push(generateTypeScriptInterface(typeName, meta));
222
+ }
223
+ content += interfaces.join("\n\n") + "\n";
224
+ return {
225
+ filePath: "types.ts",
226
+ content,
227
+ overwrite: true,
228
+ };
229
+ }
230
+ function generateSqliteFile(typeName, meta) {
231
+ const tableName = toTableName(typeName, meta.jsdoc);
232
+ const ddl = generateSqliteDdl(typeName, meta);
233
+ let content = `-- AUTO-GENERATED by @typokit/db-raw from ${typeName} type\n`;
234
+ content += `-- Do not edit manually — modify the source type instead\n\n`;
235
+ content += ddl + "\n";
236
+ return {
237
+ filePath: `${tableName}.sql`,
238
+ content,
239
+ overwrite: true,
240
+ };
241
+ }
242
+ // ─── Diff Logic ─────────────────────────────────────────────
243
+ function diffTypes(types, currentState) {
244
+ const changes = [];
245
+ for (const [typeName, meta] of Object.entries(types)) {
246
+ const tableName = toTableName(typeName, meta.jsdoc);
247
+ const existing = currentState.tables[tableName];
248
+ if (!existing) {
249
+ changes.push({ type: "add", entity: tableName });
250
+ continue;
251
+ }
252
+ for (const [propName, prop] of Object.entries(meta.properties)) {
253
+ const colName = toColumnName(propName);
254
+ const existingCol = existing.columns[colName];
255
+ if (!existingCol) {
256
+ changes.push({
257
+ type: "add",
258
+ entity: tableName,
259
+ field: colName,
260
+ details: { tsType: prop.type },
261
+ });
262
+ }
263
+ else {
264
+ const nullable = prop.optional;
265
+ if (existingCol.nullable !== nullable) {
266
+ changes.push({
267
+ type: "modify",
268
+ entity: tableName,
269
+ field: colName,
270
+ details: {
271
+ nullableFrom: existingCol.nullable,
272
+ nullableTo: nullable,
273
+ },
274
+ });
275
+ }
276
+ }
277
+ }
278
+ // Detect removed columns
279
+ for (const colName of Object.keys(existing.columns)) {
280
+ const hasProp = Object.keys(meta.properties).some((p) => toColumnName(p) === colName);
281
+ if (!hasProp) {
282
+ changes.push({ type: "remove", entity: tableName, field: colName });
283
+ }
284
+ }
285
+ }
286
+ // Detect removed tables
287
+ for (const tableName of Object.keys(currentState.tables)) {
288
+ const hasType = Object.entries(types).some(([name, meta]) => toTableName(name, meta.jsdoc) === tableName);
289
+ if (!hasType) {
290
+ changes.push({ type: "remove", entity: tableName });
291
+ }
292
+ }
293
+ return changes;
294
+ }
295
+ function generateMigrationSql(changes, dialect) {
296
+ const lines = [];
297
+ for (const change of changes) {
298
+ if (change.type === "add" && !change.field) {
299
+ lines.push(`-- TODO: CREATE TABLE "${change.entity}" (define columns)`);
300
+ }
301
+ else if (change.type === "add" && change.field) {
302
+ lines.push(`ALTER TABLE "${change.entity}" ADD COLUMN "${change.field}" TEXT;`);
303
+ }
304
+ else if (change.type === "remove" && !change.field) {
305
+ lines.push(`-- DESTRUCTIVE: requires review`);
306
+ lines.push(`DROP TABLE IF EXISTS "${change.entity}";`);
307
+ }
308
+ else if (change.type === "remove" && change.field) {
309
+ lines.push(`-- DESTRUCTIVE: requires review`);
310
+ if (dialect === "postgresql") {
311
+ lines.push(`ALTER TABLE "${change.entity}" DROP COLUMN "${change.field}";`);
312
+ }
313
+ else {
314
+ lines.push(`-- SQLite: cannot DROP COLUMN "${change.field}" from "${change.entity}" — recreate table`);
315
+ }
316
+ }
317
+ else if (change.type === "modify") {
318
+ lines.push(`-- TODO: ALTER TABLE "${change.entity}" modify column "${change.field}"`);
319
+ }
320
+ }
321
+ return lines.join("\n");
322
+ }
323
+ // ─── Adapter ────────────────────────────────────────────────
324
+ export class RawSqlDatabaseAdapter {
325
+ dialect;
326
+ outputDir;
327
+ constructor(options) {
328
+ this.dialect = options?.dialect ?? "postgresql";
329
+ this.outputDir = options?.outputDir ?? "sql";
330
+ }
331
+ generate(types) {
332
+ const outputs = [];
333
+ const genFn = this.dialect === "postgresql" ? generatePgFile : generateSqliteFile;
334
+ for (const [typeName, meta] of Object.entries(types)) {
335
+ const output = genFn(typeName, meta);
336
+ output.filePath = `${this.outputDir}/${output.filePath}`;
337
+ outputs.push(output);
338
+ }
339
+ // Generate TypeScript interfaces file
340
+ const tsOutput = generatePgTypesFile(types);
341
+ tsOutput.filePath = `${this.outputDir}/${tsOutput.filePath}`;
342
+ outputs.push(tsOutput);
343
+ return outputs;
344
+ }
345
+ diff(types, currentState) {
346
+ const changes = diffTypes(types, currentState);
347
+ const destructive = changes.some((c) => c.type === "remove");
348
+ const sql = generateMigrationSql(changes, this.dialect);
349
+ const timestamp = new Date()
350
+ .toISOString()
351
+ .replace(/[-:T]/g, "")
352
+ .slice(0, 14);
353
+ return {
354
+ name: `${timestamp}_schema_update`,
355
+ sql,
356
+ destructive,
357
+ changes,
358
+ };
359
+ }
360
+ }
361
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,29 @@
1
+ {
2
+ "name": "@typokit/db-raw",
3
+ "exports": {
4
+ ".": {
5
+ "import": "./dist/index.js",
6
+ "types": "./dist/index.d.ts"
7
+ }
8
+ },
9
+ "version": "0.1.4",
10
+ "type": "module",
11
+ "files": [
12
+ "dist",
13
+ "src"
14
+ ],
15
+ "main": "./dist/index.js",
16
+ "types": "./dist/index.d.ts",
17
+ "dependencies": {
18
+ "@typokit/types": "0.1.4",
19
+ "@typokit/core": "0.1.4"
20
+ },
21
+ "repository": {
22
+ "type": "git",
23
+ "url": "https://github.com/KyleBastien/typokit",
24
+ "directory": "packages/db-raw"
25
+ },
26
+ "scripts": {
27
+ "test": "rstest run --passWithNoTests"
28
+ }
29
+ }