@kattebak/typespec-drizzle-orm-generator 3.0.1 → 3.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.
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # typespec-drizzle-orm-generator
2
2
 
3
- Generate a complete [Drizzle ORM](https://orm.drizzle.team/) package from TypeSpec models. You define your domain in TypeSpec, the emitter gives you table schemas, relations, and typed query functions for PostgreSQL.
3
+ Generate a complete [Drizzle ORM](https://orm.drizzle.team/) package from TypeSpec models. You define your domain in TypeSpec, the emitter gives you table schemas, relations, and typed query functions. Supports PostgreSQL (default) and SQLite dialects.
4
4
 
5
5
  ## Install
6
6
 
@@ -60,6 +60,7 @@ options:
60
60
  "@kattebak/typespec-drizzle-orm-generator":
61
61
  "package-name": "@myorg/bookstore-db"
62
62
  "package-version": "1.0.0"
63
+ dialect: pg # "pg" (default) or "sqlite"
63
64
  ```
64
65
 
65
66
  Then compile:
@@ -70,9 +71,9 @@ npx tsp compile .
70
71
 
71
72
  The emitter produces 6 files as a ready-to-use npm package:
72
73
 
73
- | File | What's in it |
74
- | -------------- | -------------------------------------------------------------------- |
75
- | `schema.ts` | `pgTable()` definitions, `pgEnum()`, constraints |
74
+ | File | What's in it |
75
+ | -------------- | ---------------------------------------------------------------------- |
76
+ | `schema.ts` | Table definitions (`pgTable`/`sqliteTable`), enums, constraints |
76
77
  | `relations.ts` | `defineRelations()` with `through()` for many-to-many |
77
78
  | `describe.ts` | One typed query function per entity (fetch by PK with all relations) |
78
79
  | `types.ts` | `base36Uuid` custom type, `DrizzleClient` type alias |
@@ -284,7 +285,27 @@ export type EditionDescription = typeof schema.editions.$inferSelect & {
284
285
  };
285
286
  ```
286
287
 
287
- ## Type mapping
288
+ ## Dialect option
289
+
290
+ Set `dialect` in your `tspconfig.yaml` to control the target database. Defaults to `pg`.
291
+
292
+ | Value | Table function | Import source | Enum support |
293
+ | -------- | --------------- | ------------------------- | ------------ |
294
+ | `pg` | `pgTable` | `drizzle-orm/pg-core` | `pgEnum()` |
295
+ | `sqlite` | `sqliteTable` | `drizzle-orm/sqlite-core` | mapped to `text()` |
296
+
297
+ When using `sqlite`, types that don't exist natively in SQLite are mapped to compatible alternatives:
298
+
299
+ | TypeSpec type | PostgreSQL | SQLite |
300
+ | ------------- | ----------------------------------- | --------------------------------------- |
301
+ | `boolean` | `boolean()` | `integer({ mode: "boolean" })` |
302
+ | `utcDateTime` | `timestamp({ withTimezone: true })` | `integer({ mode: "timestamp" })` |
303
+ | `float64` | `doublePrecision()` | `real()` |
304
+ | `int64` | `bigint({ mode: "number" })` | `integer({ mode: "number" })` |
305
+ | `string` (with length) | `varchar({ length })` | `text({ length })` |
306
+ | TypeSpec `enum` | `pgEnum()` | `text()` (no native enums in SQLite) |
307
+
308
+ ## Type mapping (PostgreSQL)
288
309
 
289
310
  | TypeSpec | Drizzle | PostgreSQL |
290
311
  | ---------------------- | ----------------------------------- | ------------------------- |
@@ -307,7 +328,7 @@ See [test/fixtures/bookstore.tsp](test/fixtures/bookstore.tsp) for a complete 9-
307
328
 
308
329
  ```bash
309
330
  npm install
310
- npm test # type-check + 230 tests
331
+ npm test # type-check + 298 tests
311
332
  npm run lint:fix # auto-fix with Biome
312
333
  ```
313
334
 
@@ -1,7 +1,9 @@
1
+ import type { Dialect } from "./generators/dialect.js";
1
2
  import type { EnumDef, TableDef } from "./ir/types.js";
2
3
  export interface EmitterConfig {
3
4
  packageName: string;
4
5
  packageVersion: string;
6
+ dialect: Dialect;
5
7
  }
6
8
  /**
7
9
  * Assembles the complete output package from IR.
@@ -1 +1 @@
1
- {"version":3,"file":"assembler.d.ts","sourceRoot":"","sources":["../src/assembler.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEvD,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,QAAQ,EAAE,EAClB,KAAK,EAAE,OAAO,EAAE,EAChB,MAAM,EAAE,aAAa,GACpB,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAWrB"}
1
+ {"version":3,"file":"assembler.d.ts","sourceRoot":"","sources":["../src/assembler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAOvD,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEvD,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,QAAQ,EAAE,EAClB,KAAK,EAAE,OAAO,EAAE,EAChB,MAAM,EAAE,aAAa,GACpB,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAYrB"}
package/dist/assembler.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import { generateDescribe } from "./generators/describe-generator.js";
2
+ import { resolveDialect } from "./generators/dialect.js";
2
3
  import { generateIndex } from "./generators/index-generator.js";
3
4
  import { generateRelations } from "./generators/relations-generator.js";
4
5
  import { generateSchema } from "./generators/schema-generator.js";
@@ -12,10 +13,11 @@ import { buildRelationGraph } from "./ir/relation-graph.js";
12
13
  */
13
14
  export function assemblePackage(tables, enums, config) {
14
15
  const graph = buildRelationGraph(tables);
16
+ const dialect = resolveDialect(config.dialect);
15
17
  return new Map([
16
18
  ["package.json", generatePackageJson(config)],
17
- ["types.ts", generateTypes()],
18
- ["schema.ts", generateSchema(tables, enums)],
19
+ ["types.ts", generateTypes(dialect)],
20
+ ["schema.ts", generateSchema(tables, enums, dialect)],
19
21
  ["relations.ts", generateRelations(tables, graph)],
20
22
  ["describe.ts", generateDescribe(tables, graph)],
21
23
  ["index.ts", generateIndex()],
@@ -1 +1 @@
1
- {"version":3,"file":"assembler.js","sourceRoot":"","sources":["../src/assembler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAQ5D;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAC7B,MAAkB,EAClB,KAAgB,EAChB,MAAqB,EACA;IACrB,MAAM,KAAK,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAEzC,OAAO,IAAI,GAAG,CAAC;QACb,CAAC,cAAc,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAC7C,CAAC,UAAU,EAAE,aAAa,EAAE,CAAC;QAC7B,CAAC,WAAW,EAAE,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC5C,CAAC,cAAc,EAAE,iBAAiB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAClD,CAAC,aAAa,EAAE,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAChD,CAAC,UAAU,EAAE,aAAa,EAAE,CAAC;KAC9B,CAAC,CAAC;AAAA,CACJ;AAED,SAAS,mBAAmB,CAAC,MAAqB,EAAU;IAC1D,MAAM,GAAG,GAAG;QACV,IAAI,EAAE,MAAM,CAAC,WAAW;QACxB,OAAO,EAAE,MAAM,CAAC,cAAc;QAC9B,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,YAAY;QACnB,OAAO,EAAE;YACP,GAAG,EAAE;gBACH,KAAK,EAAE,cAAc;gBACrB,MAAM,EAAE,YAAY;aACrB;SACF;QACD,YAAY,EAAE;YACZ,aAAa,EAAE,QAAQ;YACvB,YAAY,EAAE,QAAQ;SACvB;KACF,CAAC;IAEF,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;AAAA,CAC5C"}
1
+ {"version":3,"file":"assembler.js","sourceRoot":"","sources":["../src/assembler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAEtE,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAS5D;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAC7B,MAAkB,EAClB,KAAgB,EAChB,MAAqB,EACA;IACrB,MAAM,KAAK,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAE/C,OAAO,IAAI,GAAG,CAAC;QACb,CAAC,cAAc,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAC7C,CAAC,UAAU,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;QACpC,CAAC,WAAW,EAAE,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QACrD,CAAC,cAAc,EAAE,iBAAiB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAClD,CAAC,aAAa,EAAE,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAChD,CAAC,UAAU,EAAE,aAAa,EAAE,CAAC;KAC9B,CAAC,CAAC;AAAA,CACJ;AAED,SAAS,mBAAmB,CAAC,MAAqB,EAAU;IAC1D,MAAM,GAAG,GAAG;QACV,IAAI,EAAE,MAAM,CAAC,WAAW;QACxB,OAAO,EAAE,MAAM,CAAC,cAAc;QAC9B,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,YAAY;QACnB,OAAO,EAAE;YACP,GAAG,EAAE;gBACH,KAAK,EAAE,cAAc;gBACrB,MAAM,EAAE,YAAY;aACrB;SACF;QACD,YAAY,EAAE;YACZ,aAAa,EAAE,QAAQ;YACvB,YAAY,EAAE,QAAQ;SACvB;KACF,CAAC;IAEF,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;AAAA,CAC5C"}
@@ -1,3 +1,4 @@
1
1
  import type { FieldDef, TableDef } from "../ir/types.js";
2
- export declare function mapFieldToColumn(field: FieldDef, table: TableDef): string;
2
+ import type { DialectConfig } from "./dialect.js";
3
+ export declare function mapFieldToColumn(field: FieldDef, table: TableDef, dialect: DialectConfig): string;
3
4
  //# sourceMappingURL=column-mapper.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"column-mapper.d.ts","sourceRoot":"","sources":["../../src/generators/column-mapper.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAGzD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,GAAG,MAAM,CAkCzE"}
1
+ {"version":3,"file":"column-mapper.d.ts","sourceRoot":"","sources":["../../src/generators/column-mapper.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAGlD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,GAAG,MAAM,CAkCjG"}
@@ -1,6 +1,6 @@
1
- import { chainCall, fnCall, objectLiteral, quoted } from "../codegen/index.js";
1
+ import { chainCall, quoted } from "../codegen/index.js";
2
2
  import { toTableVariableName } from "./naming.js";
3
- export function mapFieldToColumn(field, table) {
3
+ export function mapFieldToColumn(field, table, dialect) {
4
4
  const calls = [];
5
5
  if (isPrimaryKey(field, table)) {
6
6
  calls.push({ method: "primaryKey" });
@@ -17,7 +17,7 @@ export function mapFieldToColumn(field, table) {
17
17
  calls.push({ method: "references", args: [`() => ${targetVar}.${targetField}`] });
18
18
  }
19
19
  if (field.createdAt || field.updatedAt) {
20
- calls.push({ method: "defaultNow" });
20
+ calls.push({ method: dialect.mapTimestampDefault() });
21
21
  }
22
22
  if (field.constraints?.unique) {
23
23
  calls.push({ method: "unique" });
@@ -25,44 +25,7 @@ export function mapFieldToColumn(field, table) {
25
25
  if (field.defaultValue !== undefined && !field.createdAt && !field.updatedAt) {
26
26
  calls.push({ method: "default", args: [mapDefault(field.defaultValue)] });
27
27
  }
28
- return chainCall(mapBaseType(field), calls);
29
- }
30
- function mapBaseType(field) {
31
- const col = quoted(field.columnName);
32
- if (field.uuid) {
33
- return fnCall("base36Uuid", [col]);
34
- }
35
- switch (field.type.kind) {
36
- case "text":
37
- return fnCall("text", [col]);
38
- case "varchar":
39
- return fnCall("varchar", [
40
- col,
41
- objectLiteral([["length", String(field.type.length)]], { concise: true }),
42
- ]);
43
- case "integer":
44
- return fnCall("integer", [col]);
45
- case "bigint":
46
- return fnCall("bigint", [
47
- col,
48
- objectLiteral([["mode", quoted("number")]], { concise: true }),
49
- ]);
50
- case "real":
51
- return fnCall("real", [col]);
52
- case "doublePrecision":
53
- return fnCall("doublePrecision", [col]);
54
- case "boolean":
55
- return fnCall("boolean", [col]);
56
- case "timestamp":
57
- return fnCall("timestamp", [
58
- col,
59
- objectLiteral([["withTimezone", "true"]], { concise: true }),
60
- ]);
61
- case "uuid":
62
- return fnCall("base36Uuid", [col]);
63
- case "enum":
64
- return fnCall(field.type.enumName, [col]);
65
- }
28
+ return chainCall(dialect.mapFieldType(field), calls);
66
29
  }
67
30
  function isPrimaryKey(field, table) {
68
31
  return !table.primaryKey.isComposite && table.primaryKey.columns.includes(field.name);
@@ -1 +1 @@
1
- {"version":3,"file":"column-mapper.js","sourceRoot":"","sources":["../../src/generators/column-mapper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"column-mapper.js","sourceRoot":"","sources":["../../src/generators/column-mapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,SAAS,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAG1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD,MAAM,UAAU,gBAAgB,CAAC,KAAe,EAAE,KAAe,EAAE,OAAsB,EAAU;IACjG,MAAM,KAAK,GAAkB,EAAE,CAAC;IAEhC,IAAI,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,EAAE,YAAY,EAAE,CAAC;QAC7B,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC;QACnD,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;IACpC,CAAC;IAED,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QACrB,MAAM,SAAS,GAAG,mBAAmB,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAClE,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC;QAC/C,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,SAAS,SAAS,IAAI,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC;IACpF,CAAC;IAED,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;QACvC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,IAAI,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;IACnC,CAAC;IAED,IAAI,KAAK,CAAC,YAAY,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;QAC7E,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED,OAAO,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;AAAA,CACtD;AAED,SAAS,YAAY,CAAC,KAAe,EAAE,KAAe,EAAW;IAC/D,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAAA,CACvF;AAED,SAAS,UAAU,CAAC,KAAc,EAAU;IAC1C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AAAA,CACtB"}
@@ -0,0 +1,13 @@
1
+ import type { FieldDef } from "../ir/types.js";
2
+ export type Dialect = "pg" | "sqlite";
3
+ export interface DialectConfig {
4
+ dialect: Dialect;
5
+ coreModule: string;
6
+ tableFn: string;
7
+ enumFn: string | null;
8
+ uuidDataType: string;
9
+ mapFieldType(field: FieldDef): string;
10
+ mapTimestampDefault(): string;
11
+ }
12
+ export declare function resolveDialect(dialect: Dialect): DialectConfig;
13
+ //# sourceMappingURL=dialect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialect.d.ts","sourceRoot":"","sources":["../../src/generators/dialect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,MAAM,MAAM,OAAO,GAAG,IAAI,GAAG,QAAQ,CAAC;AAEtC,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAAC;IACtC,mBAAmB,IAAI,MAAM,CAAC;CAC/B;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,aAAa,CAO9D"}
@@ -0,0 +1,101 @@
1
+ import { fnCall, objectLiteral, quoted } from "../codegen/index.js";
2
+ export function resolveDialect(dialect) {
3
+ switch (dialect) {
4
+ case "pg":
5
+ return pgDialect();
6
+ case "sqlite":
7
+ return sqliteDialect();
8
+ }
9
+ }
10
+ function pgDialect() {
11
+ return {
12
+ dialect: "pg",
13
+ coreModule: "drizzle-orm/pg-core",
14
+ tableFn: "pgTable",
15
+ enumFn: "pgEnum",
16
+ uuidDataType: "uuid",
17
+ mapTimestampDefault: () => "defaultNow",
18
+ mapFieldType(field) {
19
+ const col = quoted(field.columnName);
20
+ switch (field.type.kind) {
21
+ case "text":
22
+ return fnCall("text", [col]);
23
+ case "varchar":
24
+ return fnCall("varchar", [
25
+ col,
26
+ objectLiteral([["length", String(field.type.length)]], { concise: true }),
27
+ ]);
28
+ case "integer":
29
+ return fnCall("integer", [col]);
30
+ case "bigint":
31
+ return fnCall("bigint", [
32
+ col,
33
+ objectLiteral([["mode", quoted("number")]], { concise: true }),
34
+ ]);
35
+ case "real":
36
+ return fnCall("real", [col]);
37
+ case "doublePrecision":
38
+ return fnCall("doublePrecision", [col]);
39
+ case "boolean":
40
+ return fnCall("boolean", [col]);
41
+ case "timestamp":
42
+ return fnCall("timestamp", [
43
+ col,
44
+ objectLiteral([["withTimezone", "true"]], { concise: true }),
45
+ ]);
46
+ case "uuid":
47
+ return fnCall("base36Uuid", [col]);
48
+ case "enum":
49
+ return fnCall(field.type.enumName, [col]);
50
+ }
51
+ },
52
+ };
53
+ }
54
+ function sqliteDialect() {
55
+ return {
56
+ dialect: "sqlite",
57
+ coreModule: "drizzle-orm/sqlite-core",
58
+ tableFn: "sqliteTable",
59
+ enumFn: null,
60
+ uuidDataType: "text",
61
+ mapTimestampDefault: () => "defaultNow",
62
+ mapFieldType(field) {
63
+ const col = quoted(field.columnName);
64
+ switch (field.type.kind) {
65
+ case "text":
66
+ return fnCall("text", [col]);
67
+ case "varchar":
68
+ return fnCall("text", [
69
+ col,
70
+ objectLiteral([["length", String(field.type.length)]], { concise: true }),
71
+ ]);
72
+ case "integer":
73
+ return fnCall("integer", [col]);
74
+ case "bigint":
75
+ return fnCall("integer", [
76
+ col,
77
+ objectLiteral([["mode", quoted("number")]], { concise: true }),
78
+ ]);
79
+ case "real":
80
+ return fnCall("real", [col]);
81
+ case "doublePrecision":
82
+ return fnCall("real", [col]);
83
+ case "boolean":
84
+ return fnCall("integer", [
85
+ col,
86
+ objectLiteral([["mode", quoted("boolean")]], { concise: true }),
87
+ ]);
88
+ case "timestamp":
89
+ return fnCall("integer", [
90
+ col,
91
+ objectLiteral([["mode", quoted("timestamp")]], { concise: true }),
92
+ ]);
93
+ case "uuid":
94
+ return fnCall("base36Uuid", [col]);
95
+ case "enum":
96
+ return fnCall("text", [col]);
97
+ }
98
+ },
99
+ };
100
+ }
101
+ //# sourceMappingURL=dialect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialect.js","sourceRoot":"","sources":["../../src/generators/dialect.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
1
  import type { EnumDef, TableDef } from "../ir/types.js";
2
- export declare function generateSchema(tables: TableDef[], enums: EnumDef[]): string;
2
+ import type { DialectConfig } from "./dialect.js";
3
+ export declare function generateSchema(tables: TableDef[], enums: EnumDef[], dialect: DialectConfig): string;
3
4
  //# sourceMappingURL=schema-generator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema-generator.d.ts","sourceRoot":"","sources":["../../src/generators/schema-generator.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,OAAO,EAAY,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAIlE,wBAAgB,cAAc,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,CAc3E"}
1
+ {"version":3,"file":"schema-generator.d.ts","sourceRoot":"","sources":["../../src/generators/schema-generator.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,OAAO,EAAY,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAElE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAGlD,wBAAgB,cAAc,CAC5B,MAAM,EAAE,QAAQ,EAAE,EAClB,KAAK,EAAE,OAAO,EAAE,EAChB,OAAO,EAAE,aAAa,GACrB,MAAM,CAgBR"}
@@ -1,21 +1,23 @@
1
1
  import { arrayLiteral, arrowFn, exportConst, fnCall, formatCode, importDecl, objectLiteral, quoted, } from "../codegen/index.js";
2
2
  import { mapFieldToColumn } from "./column-mapper.js";
3
3
  import { toTableVariableName } from "./naming.js";
4
- export function generateSchema(tables, enums) {
4
+ export function generateSchema(tables, enums, dialect) {
5
5
  const sections = [];
6
- sections.push(generateImports(tables, enums));
7
- for (const enumDef of enums) {
8
- sections.push(generateEnumDeclaration(enumDef));
6
+ sections.push(generateImports(tables, enums, dialect));
7
+ if (dialect.enumFn) {
8
+ for (const enumDef of enums) {
9
+ sections.push(generateEnumDeclaration(enumDef, dialect.enumFn));
10
+ }
9
11
  }
10
12
  for (const table of tables) {
11
- sections.push(generateTableDeclaration(table));
13
+ sections.push(generateTableDeclaration(table, dialect));
12
14
  }
13
15
  return `${sections.join("\n\n")}\n`;
14
16
  }
15
- function generateImports(tables, enums) {
16
- const pgCoreImports = collectPgCoreImports(tables, enums);
17
+ function generateImports(tables, enums, dialect) {
18
+ const coreImports = collectCoreImports(tables, enums, dialect);
17
19
  const lines = [];
18
- lines.push(formatCode(importDecl(pgCoreImports, "drizzle-orm/pg-core")));
20
+ lines.push(formatCode(importDecl(coreImports, dialect.coreModule)));
19
21
  if (needsSqlImport(tables)) {
20
22
  lines.push(importDecl(["sql"], "drizzle-orm"));
21
23
  }
@@ -29,9 +31,9 @@ function needsSqlImport(tables) {
29
31
  f.constraints?.maxValue !== undefined ||
30
32
  f.constraints?.check !== undefined));
31
33
  }
32
- function collectPgCoreImports(tables, enums) {
34
+ function collectCoreImports(tables, enums, dialect) {
33
35
  const imports = new Set();
34
- imports.add("pgTable");
36
+ imports.add(dialect.tableFn);
35
37
  for (const table of tables) {
36
38
  if (table.primaryKey.isComposite) {
37
39
  imports.add("primaryKey");
@@ -56,42 +58,57 @@ function collectPgCoreImports(tables, enums) {
56
58
  for (const field of table.fields) {
57
59
  if (field.uuid)
58
60
  continue;
59
- switch (field.type.kind) {
60
- case "text":
61
- imports.add("text");
62
- break;
63
- case "varchar":
64
- imports.add("varchar");
65
- break;
66
- case "integer":
67
- imports.add("integer");
68
- break;
69
- case "bigint":
70
- imports.add("bigint");
71
- break;
72
- case "real":
73
- imports.add("real");
74
- break;
75
- case "doublePrecision":
76
- imports.add("doublePrecision");
77
- break;
78
- case "boolean":
79
- imports.add("boolean");
80
- break;
81
- case "timestamp":
82
- imports.add("timestamp");
83
- break;
84
- case "uuid":
85
- case "enum":
86
- break;
61
+ for (const imp of collectFieldImports(field, dialect)) {
62
+ imports.add(imp);
87
63
  }
88
64
  }
89
65
  }
90
- if (enums.length > 0) {
91
- imports.add("pgEnum");
66
+ if (enums.length > 0 && dialect.enumFn) {
67
+ imports.add(dialect.enumFn);
92
68
  }
93
69
  return [...imports].sort();
94
70
  }
71
+ function collectFieldImports(field, dialect) {
72
+ if (dialect.dialect === "sqlite") {
73
+ switch (field.type.kind) {
74
+ case "text":
75
+ case "varchar":
76
+ case "enum":
77
+ return ["text"];
78
+ case "integer":
79
+ case "bigint":
80
+ case "boolean":
81
+ case "timestamp":
82
+ return ["integer"];
83
+ case "real":
84
+ case "doublePrecision":
85
+ return ["real"];
86
+ case "uuid":
87
+ return [];
88
+ }
89
+ }
90
+ switch (field.type.kind) {
91
+ case "text":
92
+ return ["text"];
93
+ case "varchar":
94
+ return ["varchar"];
95
+ case "integer":
96
+ return ["integer"];
97
+ case "bigint":
98
+ return ["bigint"];
99
+ case "real":
100
+ return ["real"];
101
+ case "doublePrecision":
102
+ return ["doublePrecision"];
103
+ case "boolean":
104
+ return ["boolean"];
105
+ case "timestamp":
106
+ return ["timestamp"];
107
+ case "uuid":
108
+ case "enum":
109
+ return [];
110
+ }
111
+ }
95
112
  function hasCheckConstraints(table) {
96
113
  return table.fields.some((f) => f.constraints?.minValue !== undefined ||
97
114
  f.constraints?.maxValue !== undefined ||
@@ -100,22 +117,22 @@ function hasCheckConstraints(table) {
100
117
  function hasUuidFields(tables) {
101
118
  return tables.some((t) => t.fields.some((f) => f.uuid));
102
119
  }
103
- function generateEnumDeclaration(enumDef) {
120
+ function generateEnumDeclaration(enumDef, enumFn) {
104
121
  const values = enumDef.values.map((v) => ` ${quoted(v)},`).join("\n");
105
- return exportConst(enumDef.name, `${fnCall("pgEnum", [quoted(enumDef.sqlName), `[\n${values}\n]`])}`);
122
+ return exportConst(enumDef.name, `${fnCall(enumFn, [quoted(enumDef.sqlName), `[\n${values}\n]`])}`);
106
123
  }
107
- function generateTableDeclaration(table) {
124
+ function generateTableDeclaration(table, dialect) {
108
125
  const varName = toTableVariableName(table.name);
109
- const columns = generateColumns(table);
126
+ const columns = generateColumns(table, dialect);
110
127
  const extras = generateTableExtras(table);
111
128
  if (extras.length > 0) {
112
- return generateTableWithExtras(table, varName, columns, extras);
129
+ return generateTableWithExtras(table, varName, columns, extras, dialect);
113
130
  }
114
- return exportConst(varName, fnCall("pgTable", [quoted(table.tableName), columns]));
131
+ return exportConst(varName, fnCall(dialect.tableFn, [quoted(table.tableName), columns]));
115
132
  }
116
- function generateTableWithExtras(table, varName, columns, extras) {
133
+ function generateTableWithExtras(table, varName, columns, extras, dialect) {
117
134
  return [
118
- `export const ${varName} = pgTable(`,
135
+ `export const ${varName} = ${dialect.tableFn}(`,
119
136
  ` ${quoted(table.tableName)},`,
120
137
  `${columns
121
138
  .split("\n")
@@ -125,8 +142,8 @@ function generateTableWithExtras(table, varName, columns, extras) {
125
142
  `);`,
126
143
  ].join("\n");
127
144
  }
128
- function generateColumns(table) {
129
- const lines = table.fields.map((field) => ` ${field.name}: ${mapFieldToColumn(field, table)},`);
145
+ function generateColumns(table, dialect) {
146
+ const lines = table.fields.map((field) => ` ${field.name}: ${mapFieldToColumn(field, table, dialect)},`);
130
147
  return `{\n${lines.join("\n")}\n}`;
131
148
  }
132
149
  function generateTableExtras(table) {
@@ -1 +1 @@
1
- {"version":3,"file":"schema-generator.js","sourceRoot":"","sources":["../../src/generators/schema-generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema-generator.js","sourceRoot":"","sources":["../../src/generators/schema-generator.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,3 @@
1
- export declare function generateTypes(): string;
1
+ import type { DialectConfig } from "./dialect.js";
2
+ export declare function generateTypes(dialect: DialectConfig): string;
2
3
  //# sourceMappingURL=types-generator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types-generator.d.ts","sourceRoot":"","sources":["../../src/generators/types-generator.ts"],"names":[],"mappings":"AAEA,wBAAgB,aAAa,IAAI,MAAM,CA4BtC"}
1
+ {"version":3,"file":"types-generator.d.ts","sourceRoot":"","sources":["../../src/generators/types-generator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD,wBAAgB,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CAgC5D"}
@@ -1,17 +1,20 @@
1
1
  import { exportConst, fnCall, importDecl, quoted } from "../codegen/index.js";
2
- export function generateTypes() {
2
+ export function generateTypes(dialect) {
3
3
  const sections = [];
4
- sections.push(importDecl(["customType"], "drizzle-orm/pg-core"));
4
+ sections.push(importDecl(["customType"], dialect.coreModule));
5
5
  sections.push(`import short from ${quoted("short-uuid")};`);
6
6
  sections.push(importDecl(["relations"], "./relations.js", { type: true }));
7
7
  sections.push("");
8
8
  sections.push(`const translator = ${fnCall("short", ["short.constants.uuid25Base36"])};`);
9
9
  sections.push("");
10
- sections.push("/** UUID column that stores as native pg uuid, reads/writes as base36 */");
10
+ const comment = dialect.dialect === "sqlite"
11
+ ? "/** UUID column stored as text, reads/writes as base36 */"
12
+ : "/** UUID column that stores as native pg uuid, reads/writes as base36 */";
13
+ sections.push(comment);
11
14
  const typeParam = "<{\n data: string;\n driverData: string;\n}>";
12
15
  const configObj = [
13
16
  "{",
14
- ' dataType: () => "uuid",',
17
+ ` dataType: () => ${quoted(dialect.uuidDataType)},`,
15
18
  " toDriver: (value: string): string => translator.toUUID(value),",
16
19
  " fromDriver: (value: string): string => translator.fromUUID(value),",
17
20
  "}",
@@ -1 +1 @@
1
- {"version":3,"file":"types-generator.js","sourceRoot":"","sources":["../../src/generators/types-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE9E,MAAM,UAAU,aAAa,GAAW;IACtC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC;IACjE,QAAQ,CAAC,IAAI,CAAC,qBAAqB,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IAC5D,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,EAAE,gBAAgB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC3E,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAElB,QAAQ,CAAC,IAAI,CAAC,sBAAsB,MAAM,CAAC,OAAO,EAAE,CAAC,8BAA8B,CAAC,CAAC,GAAG,CAAC,CAAC;IAC1F,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAElB,QAAQ,CAAC,IAAI,CAAC,0EAA0E,CAAC,CAAC;IAC1F,MAAM,SAAS,GAAG,gDAAgD,CAAC;IACnE,MAAM,SAAS,GAAG;QAChB,GAAG;QACH,2BAA2B;QAC3B,kEAAkE;QAClE,sEAAsE;QACtE,GAAG;KACJ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACb,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,aAAa,SAAS,IAAI,SAAS,GAAG,CAAC,CAAC,CAAC;IACjF,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAElB,QAAQ,CAAC,IAAI,CAAC,oEAAoE,CAAC,CAAC;IACpF,QAAQ,CAAC,IAAI,CAAC,sEAAsE,CAAC,CAAC;IACtF,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAElB,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAAA,CAC5B"}
1
+ {"version":3,"file":"types-generator.js","sourceRoot":"","sources":["../../src/generators/types-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAG9E,MAAM,UAAU,aAAa,CAAC,OAAsB,EAAU;IAC5D,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;IAC9D,QAAQ,CAAC,IAAI,CAAC,qBAAqB,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IAC5D,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,EAAE,gBAAgB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC3E,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAElB,QAAQ,CAAC,IAAI,CAAC,sBAAsB,MAAM,CAAC,OAAO,EAAE,CAAC,8BAA8B,CAAC,CAAC,GAAG,CAAC,CAAC;IAC1F,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAElB,MAAM,OAAO,GACX,OAAO,CAAC,OAAO,KAAK,QAAQ;QAC1B,CAAC,CAAC,2DAA2D;QAC7D,CAAC,CAAC,0EAA0E,CAAC;IACjF,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvB,MAAM,SAAS,GAAG,gDAAgD,CAAC;IACnE,MAAM,SAAS,GAAG;QAChB,GAAG;QACH,qBAAqB,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG;QACpD,kEAAkE;QAClE,sEAAsE;QACtE,GAAG;KACJ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACb,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,aAAa,SAAS,IAAI,SAAS,GAAG,CAAC,CAAC,CAAC;IACjF,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAElB,QAAQ,CAAC,IAAI,CAAC,oEAAoE,CAAC,CAAC;IACpF,QAAQ,CAAC,IAAI,CAAC,sEAAsE,CAAC,CAAC;IACtF,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAElB,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAAA,CAC5B"}
package/dist/index.d.ts CHANGED
@@ -1,9 +1,11 @@
1
1
  import type { EmitContext } from "@typespec/compiler";
2
+ import type { Dialect } from "./generators/dialect.js";
2
3
  export { $check, $columnVisibility, $compositeUnique, $createdAt, $foreignKeyDef, $indexDef, $junction, $maxValue, $minValue, $pk, $primaryKey, $references, $table, $unique, $updatedAt, $uuid, } from "./decorators.js";
3
4
  export { $lib } from "./lib.js";
4
5
  export interface EmitterOptions {
5
6
  "package-name"?: string;
6
7
  "package-version"?: string;
8
+ dialect?: Dialect;
7
9
  }
8
10
  export declare function $onEmit(context: EmitContext<EmitterOptions>): Promise<void>;
9
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAKtD,OAAO,EACL,MAAM,EACN,iBAAiB,EACjB,gBAAgB,EAChB,UAAU,EACV,cAAc,EACd,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,GAAG,EACH,WAAW,EACX,WAAW,EACX,MAAM,EACN,OAAO,EACP,UAAU,EACV,KAAK,GACN,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhC,MAAM,WAAW,cAAc;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,wBAAsB,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAkBjF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAGvD,OAAO,EACL,MAAM,EACN,iBAAiB,EACjB,gBAAgB,EAChB,UAAU,EACV,cAAc,EACd,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,GAAG,EACH,WAAW,EACX,WAAW,EACX,MAAM,EACN,OAAO,EACP,UAAU,EACV,KAAK,GACN,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhC,MAAM,WAAW,cAAc;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAsB,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBjF"}
package/dist/index.js CHANGED
@@ -10,6 +10,7 @@ export async function $onEmit(context) {
10
10
  const config = {
11
11
  packageName: context.options["package-name"] ?? "drizzle-schema",
12
12
  packageVersion: context.options["package-version"] ?? "0.0.1",
13
+ dialect: context.options.dialect ?? "pg",
13
14
  };
14
15
  const files = assemblePackage(tables, enums, config);
15
16
  for (const [filename, content] of files) {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,OAAO,EACL,MAAM,EACN,iBAAiB,EACjB,gBAAgB,EAChB,UAAU,EACV,cAAc,EACd,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,GAAG,EACH,WAAW,EACX,WAAW,EACX,MAAM,EACN,OAAO,EACP,UAAU,EACV,KAAK,GACN,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAOhC,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,OAAoC,EAAiB;IACjF,IAAI,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,MAAM;QAAE,OAAO;IAEnD,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAEnD,MAAM,MAAM,GAAG;QACb,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,gBAAgB;QAChE,cAAc,EAAE,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,OAAO;KAC9D,CAAC;IAEF,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAErD,KAAK,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,KAAK,EAAE,CAAC;QACxC,MAAM,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE;YAC9B,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,gBAAgB,EAAE,QAAQ,CAAC;YACrD,OAAO;SACR,CAAC,CAAC;IACL,CAAC;AAAA,CACF"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,OAAO,EACL,MAAM,EACN,iBAAiB,EACjB,gBAAgB,EAChB,UAAU,EACV,cAAc,EACd,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,GAAG,EACH,WAAW,EACX,WAAW,EACX,MAAM,EACN,OAAO,EACP,UAAU,EACV,KAAK,GACN,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAQhC,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,OAAoC,EAAiB;IACjF,IAAI,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,MAAM;QAAE,OAAO;IAEnD,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAEnD,MAAM,MAAM,GAAG;QACb,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,gBAAgB;QAChE,cAAc,EAAE,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,OAAO;QAC7D,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI;KACzC,CAAC;IAEF,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAErD,KAAK,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,KAAK,EAAE,CAAC;QACxC,MAAM,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE;YAC9B,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,gBAAgB,EAAE,QAAQ,CAAC;YACrD,OAAO;SACR,CAAC,CAAC;IACL,CAAC;AAAA,CACF"}
package/package.json CHANGED
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "name": "@kattebak/typespec-drizzle-orm-generator",
3
- "version": "3.0.1",
3
+ "version": "3.1.0",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "exports": {
8
8
  ".": {
9
- "typespec": "./tsp/main.tsp",
10
9
  "types": "./dist/index.d.ts",
11
- "import": "./dist/index.js"
10
+ "default": "./dist/index.js",
11
+ "typespec": "./tsp/main.tsp"
12
12
  }
13
13
  },
14
14
  "files": [
package/tsp/main.tsp CHANGED
@@ -2,8 +2,6 @@ import "../dist/index.js";
2
2
 
3
3
  using TypeSpec.Reflection;
4
4
 
5
- namespace DrizzleEmitter;
6
-
7
5
  extern dec table(target: Model, name: valueof string, service: valueof string);
8
6
  extern dec primaryKey(target: Model, tableName: valueof string);
9
7
  extern dec pk(target: ModelProperty);