@goodie-ts/kysely 0.5.4 → 0.6.1

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,103 @@
1
+ var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
2
+ var useValue = arguments.length > 2;
3
+ for (var i = 0; i < initializers.length; i++) {
4
+ value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
5
+ }
6
+ return useValue ? value : void 0;
7
+ };
8
+ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
9
+ function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
10
+ var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
11
+ var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
12
+ var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
13
+ var _, done = false;
14
+ for (var i = decorators.length - 1; i >= 0; i--) {
15
+ var context = {};
16
+ for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
17
+ for (var p in contextIn.access) context.access[p] = contextIn.access[p];
18
+ context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
19
+ var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
20
+ if (kind === "accessor") {
21
+ if (result === void 0) continue;
22
+ if (result === null || typeof result !== "object") throw new TypeError("Object expected");
23
+ if (_ = accept(result.get)) descriptor.get = _;
24
+ if (_ = accept(result.set)) descriptor.set = _;
25
+ if (_ = accept(result.init)) initializers.unshift(_);
26
+ }
27
+ else if (_ = accept(result)) {
28
+ if (kind === "field") initializers.unshift(_);
29
+ else descriptor[key] = _;
30
+ }
31
+ }
32
+ if (target) Object.defineProperty(target, contextIn.name, descriptor);
33
+ done = true;
34
+ };
35
+ import { PostConstruct, PreDestroy, Singleton } from '@goodie-ts/core';
36
+ /**
37
+ * Library-provided Kysely database singleton.
38
+ *
39
+ * Creates and manages a `Kysely<DB>` instance based on `DatasourceConfig`.
40
+ * Automatically selects the correct dialect driver via dynamic import:
41
+ * - `postgres` → `pg` + `PostgresDialect`
42
+ * - `mysql` → `mysql2` + `MysqlDialect`
43
+ * - `sqlite` → `better-sqlite3` + `SqliteDialect`
44
+ *
45
+ * Non-generic (`Kysely<any>`) by design. Users bridge to their schema
46
+ * type via a `@Module` with `@Provides`:
47
+ * ```typescript
48
+ * @Module()
49
+ * class DatabaseModule {
50
+ * constructor(private db: KyselyDatabase) {}
51
+ *
52
+ * @Provides()
53
+ * typedKysely(): Kysely<DB> {
54
+ * return this.db.kysely as Kysely<DB>;
55
+ * }
56
+ * }
57
+ * ```
58
+ *
59
+ * Repositories then inject `Kysely<DB>` for fully typed access.
60
+ */
61
+ let KyselyDatabase = (() => {
62
+ let _classDecorators = [Singleton()];
63
+ let _classDescriptor;
64
+ let _classExtraInitializers = [];
65
+ let _classThis;
66
+ let _instanceExtraInitializers = [];
67
+ let _init_decorators;
68
+ let _destroy_decorators;
69
+ var KyselyDatabase = class {
70
+ static { _classThis = this; }
71
+ static {
72
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
73
+ _init_decorators = [PostConstruct()];
74
+ _destroy_decorators = [PreDestroy()];
75
+ __esDecorate(this, null, _init_decorators, { kind: "method", name: "init", static: false, private: false, access: { has: obj => "init" in obj, get: obj => obj.init }, metadata: _metadata }, null, _instanceExtraInitializers);
76
+ __esDecorate(this, null, _destroy_decorators, { kind: "method", name: "destroy", static: false, private: false, access: { has: obj => "destroy" in obj, get: obj => obj.destroy }, metadata: _metadata }, null, _instanceExtraInitializers);
77
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
78
+ KyselyDatabase = _classThis = _classDescriptor.value;
79
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
80
+ __runInitializers(_classThis, _classExtraInitializers);
81
+ }
82
+ config = __runInitializers(this, _instanceExtraInitializers);
83
+ kysely;
84
+ constructor(config) {
85
+ this.config = config;
86
+ }
87
+ get dialect() {
88
+ return this.config.dialect;
89
+ }
90
+ async init() {
91
+ const { default: createDialect } = await import('./dialect-factory.js');
92
+ const kyselyDialect = await createDialect(this.config);
93
+ const { Kysely } = await import('kysely');
94
+ this.kysely = new Kysely({ dialect: kyselyDialect });
95
+ }
96
+ async destroy() {
97
+ await this.kysely?.destroy();
98
+ }
99
+ };
100
+ return KyselyDatabase = _classThis;
101
+ })();
102
+ export { KyselyDatabase };
103
+ //# sourceMappingURL=kysely-database.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kysely-database.js","sourceRoot":"","sources":["../src/kysely-database.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAKvE;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;IAEU,cAAc;4BAD1B,SAAS,EAAE;;;;;;;;;;;gCAUT,aAAa,EAAE;mCAQf,UAAU,EAAE;YAPb,+JAAM,IAAI,6DAKT;YAGD,wKAAM,OAAO,6DAEZ;YApBH,6KAqBC;;;YArBY,uDAAc;;QAGI,MAAM,GAHxB,mDAAc;QACzB,MAAM,CAAe;QAErB,YAA6B,MAAwB;YAAxB,WAAM,GAAN,MAAM,CAAkB;QAAG,CAAC;QAEzD,IAAI,OAAO;YACT,OAAO,IAAI,CAAC,MAAM,CAAC,OAAkB,CAAC;QACxC,CAAC;QAGD,KAAK,CAAC,IAAI;YACR,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;YACxE,MAAM,aAAa,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACvD,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC1C,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC;QACvD,CAAC;QAGD,KAAK,CAAC,OAAO;YACX,MAAM,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;QAC/B,CAAC;;;;SApBU,cAAc"}
@@ -1,13 +1,6 @@
1
1
  import type { TransformerPlugin } from '@goodie-ts/transformer';
2
2
  /** Options for the Kysely transformer plugin. */
3
- export interface KyselyPluginOptions {
4
- /**
5
- * Explicit class name of the bean that provides a `Kysely<...>` property.
6
- * Overrides auto-detection. Use this to disambiguate when multiple classes
7
- * expose a `Kysely` property.
8
- */
9
- database?: string;
10
- }
3
+ export type KyselyPluginOptions = Record<string, never>;
11
4
  /**
12
5
  * Create the Kysely transformer plugin.
13
6
  *
@@ -17,16 +10,14 @@ export interface KyselyPluginOptions {
17
10
  * Scans @Migration decorated classes and wires a MigrationRunner that
18
11
  * executes all migrations at startup via @PostConstruct.
19
12
  *
20
- * **Auto-detection:** The plugin scans decorated classes for properties typed
21
- * as `Kysely<...>` and auto-wires the owning class as a TransactionManager
22
- * and/or MigrationRunner constructor dependency. Use `options.database` to
23
- * override when multiple classes expose a `Kysely` property.
13
+ * Wires TransactionManager and MigrationRunner using `KyselyDatabase` from
14
+ * library beans no manual `database` option needed.
24
15
  *
25
16
  * **Limitation:** Propagation is detected via AST text matching
26
17
  * (`text.includes('REQUIRES_NEW')`). Only string literal values in the
27
18
  * decorator argument are supported — const references or computed values
28
19
  * will fall back to `'REQUIRED'` silently.
29
20
  */
30
- export declare function createKyselyPlugin(options?: KyselyPluginOptions): TransformerPlugin;
21
+ export declare function createKyselyPlugin(_options?: KyselyPluginOptions): TransformerPlugin;
31
22
  export default createKyselyPlugin;
32
23
  //# sourceMappingURL=kysely-transformer-plugin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"kysely-transformer-plugin.d.ts","sourceRoot":"","sources":["../src/kysely-transformer-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAKV,iBAAiB,EAClB,MAAM,wBAAwB,CAAC;AAEhC,iDAAiD;AACjD,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAeD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,CAAC,EAAE,mBAAmB,GAC5B,iBAAiB,CAqSnB;AAmED,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"kysely-transformer-plugin.d.ts","sourceRoot":"","sources":["../src/kysely-transformer-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAKV,iBAAiB,EAClB,MAAM,wBAAwB,CAAC;AAEhC,iDAAiD;AACjD,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAexD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,CAAC,EAAE,mBAAmB,GAC7B,iBAAiB,CAwSnB;AAED,eAAe,kBAAkB,CAAC"}
@@ -7,38 +7,21 @@
7
7
  * Scans @Migration decorated classes and wires a MigrationRunner that
8
8
  * executes all migrations at startup via @PostConstruct.
9
9
  *
10
- * **Auto-detection:** The plugin scans decorated classes for properties typed
11
- * as `Kysely<...>` and auto-wires the owning class as a TransactionManager
12
- * and/or MigrationRunner constructor dependency. Use `options.database` to
13
- * override when multiple classes expose a `Kysely` property.
10
+ * Wires TransactionManager and MigrationRunner using `KyselyDatabase` from
11
+ * library beans no manual `database` option needed.
14
12
  *
15
13
  * **Limitation:** Propagation is detected via AST text matching
16
14
  * (`text.includes('REQUIRES_NEW')`). Only string literal values in the
17
15
  * decorator argument are supported — const references or computed values
18
16
  * will fall back to `'REQUIRED'` silently.
19
17
  */
20
- export function createKyselyPlugin(options) {
18
+ export function createKyselyPlugin(_options) {
21
19
  const classTransactionalInfo = new Map();
22
- /** Classes discovered with a `Kysely<...>` property. Keyed by filePath:className. */
23
- const kyselyProviders = [];
24
20
  /** @Migration decorated classes discovered during visitClass. */
25
21
  const migrationClasses = [];
26
22
  return {
27
23
  name: 'kysely',
28
24
  visitClass(ctx) {
29
- // Detect Kysely<...> properties for auto-wiring
30
- for (const prop of ctx.classDeclaration.getProperties()) {
31
- // Check the type annotation text (AST-level), not the resolved type.
32
- // This avoids requiring the 'kysely' package to be resolvable at transform time.
33
- const typeAnnotation = prop.getTypeNode()?.getText();
34
- if (typeAnnotation?.startsWith('Kysely<')) {
35
- kyselyProviders.push({
36
- className: ctx.className,
37
- filePath: ctx.filePath,
38
- });
39
- break; // one match per class is enough
40
- }
41
- }
42
25
  // Detect @Migration('name') class decorator
43
26
  for (const decorator of ctx.classDeclaration.getDecorators()) {
44
27
  if (decorator.getName() !== 'Migration')
@@ -110,9 +93,28 @@ export function createKyselyPlugin(options) {
110
93
  const hasMigrations = migrationClasses.length > 0;
111
94
  if (!needsInterceptor && !hasMigrations)
112
95
  return beans;
113
- // Resolve the database bean for auto-wiring.
114
- // Priority: explicit `database` option > auto-detected Kysely provider.
115
- const kyselyProviderDep = resolveKyselyProvider(beans, options?.database, kyselyProviders);
96
+ // Find KyselyDatabase from library beans for auto-wiring.
97
+ const kyselyDatabaseBean = beans.find((b) => b.tokenRef.kind === 'class' &&
98
+ b.tokenRef.className === 'KyselyDatabase' &&
99
+ b.tokenRef.importPath === '@goodie-ts/kysely');
100
+ const kyselyProviderDep = kyselyDatabaseBean && kyselyDatabaseBean.tokenRef.kind === 'class'
101
+ ? [
102
+ {
103
+ tokenRef: {
104
+ kind: 'class',
105
+ className: 'KyselyDatabase',
106
+ importPath: '@goodie-ts/kysely',
107
+ },
108
+ optional: false,
109
+ collection: false,
110
+ sourceLocation: {
111
+ filePath: '@goodie-ts/kysely',
112
+ line: 0,
113
+ column: 0,
114
+ },
115
+ },
116
+ ]
117
+ : [];
116
118
  // --- Transactional synthetic beans ---
117
119
  if (needsInterceptor) {
118
120
  syntheticBeans.push({
@@ -259,57 +261,5 @@ export function createKyselyPlugin(options) {
259
261
  },
260
262
  };
261
263
  }
262
- /**
263
- * Resolve which bean provides the Kysely instance for TransactionManager auto-wiring.
264
- *
265
- * Priority:
266
- * 1. Explicit `database` option (string class name)
267
- * 2. Auto-detected class with a `Kysely<...>` property (single match)
268
- * 3. No wiring (zero matches, or multiple matches without explicit option)
269
- */
270
- function resolveKyselyProvider(beans, explicitDatabase, autoDetected) {
271
- // Determine target class name
272
- let targetClassName;
273
- if (explicitDatabase) {
274
- targetClassName = explicitDatabase;
275
- }
276
- else if (autoDetected.length === 1) {
277
- targetClassName = autoDetected[0].className;
278
- }
279
- else if (autoDetected.length > 1) {
280
- const names = autoDetected.map((p) => p.className).join(', ');
281
- console.warn(`[@goodie-ts/kysely] Multiple Kysely providers detected: ${names}. ` +
282
- "Use createKyselyPlugin({ database: 'ClassName' }) to disambiguate. " +
283
- 'TransactionManager will require manual configure().');
284
- return [];
285
- }
286
- else {
287
- // Zero providers — no auto-wiring
288
- return [];
289
- }
290
- // Find the bean matching the target class name
291
- const databaseBean = beans.find((b) => b.tokenRef.kind === 'class' && b.tokenRef.className === targetClassName);
292
- if (databaseBean && databaseBean.tokenRef.kind === 'class') {
293
- return [
294
- {
295
- tokenRef: {
296
- kind: 'class',
297
- className: databaseBean.tokenRef.className,
298
- importPath: databaseBean.tokenRef.importPath,
299
- },
300
- optional: false,
301
- collection: false,
302
- sourceLocation: {
303
- filePath: '@goodie-ts/kysely',
304
- line: 0,
305
- column: 0,
306
- },
307
- },
308
- ];
309
- }
310
- console.warn(`[@goodie-ts/kysely] Database class '${targetClassName}' not found in beans. ` +
311
- 'TransactionManager will require manual configure().');
312
- return [];
313
- }
314
264
  export default createKyselyPlugin;
315
265
  //# sourceMappingURL=kysely-transformer-plugin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"kysely-transformer-plugin.js","sourceRoot":"","sources":["../src/kysely-transformer-plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kysely-transformer-plugin.js","sourceRoot":"","sources":["../src/kysely-transformer-plugin.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,12 @@
1
1
  import type { Kysely, Transaction } from 'kysely';
2
+ import type { Dialect } from './dialect.js';
2
3
  /**
3
- * An object that exposes a `.kysely` property — e.g. a Database wrapper class.
4
+ * An object that exposes a `.kysely` property — e.g. KyselyDatabase or a custom wrapper.
4
5
  * Used for duck-type detection in the TransactionManager constructor.
5
6
  */
6
7
  export interface KyselyProvider {
7
8
  kysely: Kysely<any>;
9
+ dialect?: Dialect;
8
10
  }
9
11
  /**
10
12
  * Manages database transactions using AsyncLocalStorage.
@@ -12,20 +14,21 @@ export interface KyselyProvider {
12
14
  * Provides transaction propagation across async call chains without
13
15
  * explicitly threading a transaction object through every method.
14
16
  *
15
- * When auto-wired via `createKyselyPlugin({ database: 'Database' })`,
16
- * the constructor receives the Database bean and reads its `.kysely` property.
17
+ * When auto-wired via `createKyselyPlugin()`, the constructor receives
18
+ * the KyselyDatabase bean and reads its `.kysely` property.
17
19
  * Manual `configure()` is still supported for backward compatibility.
18
20
  */
19
21
  export declare class TransactionManager {
20
22
  private readonly storage;
21
23
  private kyselyRef?;
22
24
  private testTransactionActive;
23
- constructor(kyselyOrProvider?: Kysely<any> | KyselyProvider);
25
+ private _supportsReturning?;
26
+ constructor(kyselyOrProvider?: Kysely<any> | KyselyProvider, dialect?: Dialect);
24
27
  /**
25
28
  * Configure the Kysely instance used for transactions.
26
- * Unnecessary when auto-wired via `createKyselyPlugin({ database: '...' })`.
29
+ * Called by KyselyDatabase after creating the Kysely instance in @PostConstruct.
27
30
  */
28
- configure(kysely: Kysely<any>): void;
31
+ configure(kysely: Kysely<any>, dialect: Dialect): void;
29
32
  private get kysely();
30
33
  /**
31
34
  * Run a function inside a transaction.
@@ -41,6 +44,11 @@ export declare class TransactionManager {
41
44
  * Returns the active transaction if inside one, otherwise the raw Kysely instance.
42
45
  */
43
46
  getConnection(): Kysely<any>;
47
+ /**
48
+ * Whether the underlying dialect supports RETURNING clauses.
49
+ * Eagerly derived at construction / configure time.
50
+ */
51
+ get supportsReturning(): boolean;
44
52
  /**
45
53
  * Start a test-scoped transaction that ALL queries will use.
46
54
  *
@@ -1 +1 @@
1
- {"version":3,"file":"transaction-manager.d.ts","sourceRoot":"","sources":["../src/transaction-manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAElD;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;CACrB;AAED;;;;;;;;;GASG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6C;IACrE,OAAO,CAAC,SAAS,CAAC,CAAc;IAChC,OAAO,CAAC,qBAAqB,CAAS;gBAE1B,gBAAgB,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,cAAc;IAoB3D;;;OAGG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI;IAIpC,OAAO,KAAK,MAAM,GAOjB;IAED;;;;;OAKG;IACG,gBAAgB,CAAC,CAAC,EACtB,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,WAAW,UAAQ,GAClB,OAAO,CAAC,CAAC,CAAC;IAiBb,+DAA+D;IAC/D,kBAAkB,IAAI,WAAW,CAAC,GAAG,CAAC,GAAG,SAAS;IAIlD;;;OAGG;IACH,aAAa,IAAI,MAAM,CAAC,GAAG,CAAC;IAI5B;;;;;;;;;;;;OAYG;IACG,oBAAoB,IAAI,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAmC3D"}
1
+ {"version":3,"file":"transaction-manager.d.ts","sourceRoot":"","sources":["../src/transaction-manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAG5C;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;;;;GASG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6C;IACrE,OAAO,CAAC,SAAS,CAAC,CAAc;IAChC,OAAO,CAAC,qBAAqB,CAAS;IACtC,OAAO,CAAC,kBAAkB,CAAC,CAAU;gBAGnC,gBAAgB,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,cAAc,EAC/C,OAAO,CAAC,EAAE,OAAO;IAkCnB;;;OAGG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAKtD,OAAO,KAAK,MAAM,GAOjB;IAED;;;;;OAKG;IACG,gBAAgB,CAAC,CAAC,EACtB,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,WAAW,UAAQ,GAClB,OAAO,CAAC,CAAC,CAAC;IAiBb,+DAA+D;IAC/D,kBAAkB,IAAI,WAAW,CAAC,GAAG,CAAC,GAAG,SAAS;IAIlD;;;OAGG;IACH,aAAa,IAAI,MAAM,CAAC,GAAG,CAAC;IAI5B;;;OAGG;IACH,IAAI,iBAAiB,IAAI,OAAO,CAO/B;IAED;;;;;;;;;;;;OAYG;IACG,oBAAoB,IAAI,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAmC3D"}
@@ -1,44 +1,59 @@
1
1
  import { AsyncLocalStorage } from 'node:async_hooks';
2
+ import { supportsReturning as dialectSupportsReturning } from './dialect.js';
2
3
  /**
3
4
  * Manages database transactions using AsyncLocalStorage.
4
5
  *
5
6
  * Provides transaction propagation across async call chains without
6
7
  * explicitly threading a transaction object through every method.
7
8
  *
8
- * When auto-wired via `createKyselyPlugin({ database: 'Database' })`,
9
- * the constructor receives the Database bean and reads its `.kysely` property.
9
+ * When auto-wired via `createKyselyPlugin()`, the constructor receives
10
+ * the KyselyDatabase bean and reads its `.kysely` property.
10
11
  * Manual `configure()` is still supported for backward compatibility.
11
12
  */
12
13
  export class TransactionManager {
13
14
  storage = new AsyncLocalStorage();
14
15
  kyselyRef;
15
16
  testTransactionActive = false;
16
- constructor(kyselyOrProvider) {
17
+ _supportsReturning;
18
+ constructor(kyselyOrProvider, dialect) {
17
19
  if (kyselyOrProvider) {
18
20
  if ('kysely' in kyselyOrProvider) {
21
+ // Capture the current value (may already be set if @PostConstruct ran)
19
22
  this.kyselyRef = kyselyOrProvider.kysely;
20
23
  // Make the provider's .kysely property transaction-aware.
21
24
  // Any code accessing provider.kysely (e.g. database.kysely) will
22
25
  // automatically use the active transaction when inside one.
26
+ // The setter ensures @PostConstruct can still assign the value.
23
27
  const tm = this;
24
28
  Object.defineProperty(kyselyOrProvider, 'kysely', {
25
29
  get() {
26
30
  return tm.getConnection();
27
31
  },
32
+ set(value) {
33
+ tm.kyselyRef = value;
34
+ },
28
35
  configurable: true,
29
36
  });
30
37
  }
31
38
  else {
32
39
  this.kyselyRef = kyselyOrProvider;
33
40
  }
41
+ const resolvedDialect = dialect ??
42
+ ('dialect' in kyselyOrProvider
43
+ ? kyselyOrProvider.dialect
44
+ : undefined);
45
+ if (resolvedDialect) {
46
+ this._supportsReturning = dialectSupportsReturning(resolvedDialect);
47
+ }
34
48
  }
35
49
  }
36
50
  /**
37
51
  * Configure the Kysely instance used for transactions.
38
- * Unnecessary when auto-wired via `createKyselyPlugin({ database: '...' })`.
52
+ * Called by KyselyDatabase after creating the Kysely instance in @PostConstruct.
39
53
  */
40
- configure(kysely) {
54
+ configure(kysely, dialect) {
41
55
  this.kyselyRef = kysely;
56
+ this._supportsReturning = dialectSupportsReturning(dialect);
42
57
  }
43
58
  get kysely() {
44
59
  if (!this.kyselyRef) {
@@ -77,6 +92,16 @@ export class TransactionManager {
77
92
  getConnection() {
78
93
  return this.currentTransaction() ?? this.kysely;
79
94
  }
95
+ /**
96
+ * Whether the underlying dialect supports RETURNING clauses.
97
+ * Eagerly derived at construction / configure time.
98
+ */
99
+ get supportsReturning() {
100
+ if (this._supportsReturning === undefined) {
101
+ throw new Error('TransactionManager not configured. Call configure(kysely) or pass a Kysely instance to the constructor.');
102
+ }
103
+ return this._supportsReturning;
104
+ }
80
105
  /**
81
106
  * Start a test-scoped transaction that ALL queries will use.
82
107
  *
@@ -1 +1 @@
1
- {"version":3,"file":"transaction-manager.js","sourceRoot":"","sources":["../src/transaction-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transaction-manager.js","sourceRoot":"","sources":["../src/transaction-manager.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@goodie-ts/kysely",
3
- "version": "0.5.4",
4
- "description": "Kysely integration for goodie-ts — @Transactional decorator, TransactionManager, CrudRepository",
3
+ "version": "0.6.1",
4
+ "description": "Kysely integration for goodie-ts — @Transactional decorator, TransactionManager, KyselyDatabase",
5
5
  "license": "MIT",
6
6
  "type": "module",
7
7
  "repository": {
@@ -13,6 +13,7 @@
13
13
  "access": "public"
14
14
  },
15
15
  "goodie": {
16
+ "beans": "dist/beans.json",
16
17
  "plugin": "./dist/kysely-transformer-plugin.js"
17
18
  },
18
19
  "main": "dist/index.js",
@@ -24,22 +25,42 @@
24
25
  }
25
26
  },
26
27
  "dependencies": {
27
- "@goodie-ts/core": "^0.8.0"
28
+ "@goodie-ts/core": "^0.9.0"
28
29
  },
29
30
  "peerDependencies": {
30
- "kysely": ">=0.27.0"
31
+ "kysely": ">=0.27.0",
32
+ "pg": ">=8.0.0",
33
+ "mysql2": ">=3.0.0",
34
+ "better-sqlite3": ">=9.0.0"
35
+ },
36
+ "peerDependenciesMeta": {
37
+ "pg": {
38
+ "optional": true
39
+ },
40
+ "mysql2": {
41
+ "optional": true
42
+ },
43
+ "better-sqlite3": {
44
+ "optional": true
45
+ }
31
46
  },
32
47
  "devDependencies": {
48
+ "@types/better-sqlite3": "^7.0.0",
33
49
  "@types/node": "^22.0.0",
50
+ "@types/pg": "^8.0.0",
51
+ "better-sqlite3": "^9.0.0",
34
52
  "kysely": "^0.27.0",
53
+ "mysql2": "^3.0.0",
54
+ "pg": "^8.0.0",
35
55
  "ts-morph": "^24.0.0",
36
- "@goodie-ts/transformer": "0.9.0"
56
+ "@goodie-ts/cli": "0.6.5",
57
+ "@goodie-ts/transformer": "0.11.0"
37
58
  },
38
59
  "files": [
39
60
  "dist"
40
61
  ],
41
62
  "scripts": {
42
- "build": "tsc",
63
+ "build": "tsc && goodie generate --mode library",
43
64
  "clean": "rm -rf dist *.tsbuildinfo"
44
65
  }
45
66
  }
@@ -1,40 +0,0 @@
1
- import type { Kysely } from 'kysely';
2
- import type { TransactionManager } from './transaction-manager.js';
3
- /**
4
- * Abstract base class for CRUD repositories backed by Kysely.
5
- *
6
- * **PostgreSQL-only:** Uses `RETURNING` clauses in `save()` and `deleteById()`.
7
- * MySQL and SQLite do not support `RETURNING`. For other dialects, override
8
- * these methods in your subclass.
9
- *
10
- * Provides standard `findAll`, `findById`, `save`, and `deleteById` operations.
11
- * All queries use `TransactionManager.getConnection()` to be transaction-aware.
12
- *
13
- * The `db` getter returns `Kysely<any>` — typed table access is intentionally
14
- * erased because the transformer cannot generate clean tokens for `Kysely<DB>`
15
- * generic types. Subclasses can cast as needed for custom queries.
16
- *
17
- * @typeParam T - The entity/row type returned by queries.
18
- *
19
- * @example
20
- * ```typescript
21
- * class TodoRepository extends CrudRepository<Todo> {
22
- * constructor(transactionManager: TransactionManager) {
23
- * super('todos', transactionManager);
24
- * }
25
- * }
26
- * ```
27
- */
28
- export declare abstract class CrudRepository<T extends Record<string, unknown>> {
29
- protected readonly tableName: string;
30
- protected readonly transactionManager: TransactionManager;
31
- protected readonly idColumn: string;
32
- constructor(tableName: string, transactionManager: TransactionManager, idColumn?: string);
33
- /** Get the current transaction-aware Kysely connection. */
34
- protected get db(): Kysely<any>;
35
- findAll(): Promise<T[]>;
36
- findById(id: unknown): Promise<T | undefined>;
37
- save(entity: Record<string, unknown>): Promise<T>;
38
- deleteById(id: unknown): Promise<T | undefined>;
39
- }
40
- //# sourceMappingURL=crud-repository.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"crud-repository.d.ts","sourceRoot":"","sources":["../src/crud-repository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEnE;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,8BAAsB,cAAc,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAElE,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM;IACpC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB;IACzD,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM;gBAFhB,SAAS,EAAE,MAAM,EACjB,kBAAkB,EAAE,kBAAkB,EACtC,QAAQ,GAAE,MAAa;IAG5C,2DAA2D;IAC3D,SAAS,KAAK,EAAE,IAAI,MAAM,CAAC,GAAG,CAAC,CAE9B;IAEK,OAAO,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC;IAMvB,QAAQ,CAAC,EAAE,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAQ7C,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAQjD,UAAU,CAAC,EAAE,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;CAOtD"}
@@ -1,64 +0,0 @@
1
- /**
2
- * Abstract base class for CRUD repositories backed by Kysely.
3
- *
4
- * **PostgreSQL-only:** Uses `RETURNING` clauses in `save()` and `deleteById()`.
5
- * MySQL and SQLite do not support `RETURNING`. For other dialects, override
6
- * these methods in your subclass.
7
- *
8
- * Provides standard `findAll`, `findById`, `save`, and `deleteById` operations.
9
- * All queries use `TransactionManager.getConnection()` to be transaction-aware.
10
- *
11
- * The `db` getter returns `Kysely<any>` — typed table access is intentionally
12
- * erased because the transformer cannot generate clean tokens for `Kysely<DB>`
13
- * generic types. Subclasses can cast as needed for custom queries.
14
- *
15
- * @typeParam T - The entity/row type returned by queries.
16
- *
17
- * @example
18
- * ```typescript
19
- * class TodoRepository extends CrudRepository<Todo> {
20
- * constructor(transactionManager: TransactionManager) {
21
- * super('todos', transactionManager);
22
- * }
23
- * }
24
- * ```
25
- */
26
- export class CrudRepository {
27
- tableName;
28
- transactionManager;
29
- idColumn;
30
- constructor(tableName, transactionManager, idColumn = 'id') {
31
- this.tableName = tableName;
32
- this.transactionManager = transactionManager;
33
- this.idColumn = idColumn;
34
- }
35
- /** Get the current transaction-aware Kysely connection. */
36
- get db() {
37
- return this.transactionManager.getConnection();
38
- }
39
- async findAll() {
40
- return this.db.selectFrom(this.tableName).selectAll().execute();
41
- }
42
- async findById(id) {
43
- return this.db
44
- .selectFrom(this.tableName)
45
- .selectAll()
46
- .where(this.idColumn, '=', id)
47
- .executeTakeFirst();
48
- }
49
- async save(entity) {
50
- return this.db
51
- .insertInto(this.tableName)
52
- .values(entity)
53
- .returningAll()
54
- .executeTakeFirstOrThrow();
55
- }
56
- async deleteById(id) {
57
- return this.db
58
- .deleteFrom(this.tableName)
59
- .where(this.idColumn, '=', id)
60
- .returningAll()
61
- .executeTakeFirst();
62
- }
63
- }
64
- //# sourceMappingURL=crud-repository.js.map