@avytrix/nestjs-drizzle-crud 3.6.0 → 3.7.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.
@@ -5,6 +5,7 @@ export interface DrizzleCrudConfig {
5
5
  dialect: SqlDialect;
6
6
  db?: any;
7
7
  connectionString?: string;
8
+ connection?: DrizzleConnectionOptions;
8
9
  schema?: Record<string, unknown>;
9
10
  defaults?: {
10
11
  softDelete?: boolean;
@@ -26,6 +27,21 @@ export interface DrizzleCrudConfig {
26
27
  subscribers?: CrudSubscriber[];
27
28
  };
28
29
  }
30
+ export interface DrizzleConnectionOptions {
31
+ poolSize?: number;
32
+ idleTimeout?: number;
33
+ ssl?: boolean | "require" | "allow" | "prefer" | "verify-full" | Record<string, unknown>;
34
+ }
35
+ export interface DrizzleCrudOptionsFactory {
36
+ createDrizzleCrudOptions(): Promise<DrizzleCrudConfig> | DrizzleCrudConfig;
37
+ }
38
+ export interface DrizzleCrudAsyncOptions {
39
+ imports?: any[];
40
+ useFactory?: (...args: any[]) => Promise<DrizzleCrudConfig> | DrizzleCrudConfig;
41
+ inject?: any[];
42
+ useClass?: new (...args: any[]) => DrizzleCrudOptionsFactory;
43
+ useExisting?: new (...args: any[]) => DrizzleCrudOptionsFactory;
44
+ }
29
45
  export type CrudFeatureConfig = Partial<Omit<SqlCrudConfig, "softDelete" | "timestamps" | "pagination" | "sql">> & {
30
46
  softDelete?: Partial<NonNullable<SqlCrudConfig["softDelete"]>>;
31
47
  timestamps?: Partial<NonNullable<SqlCrudConfig["timestamps"]>>;
@@ -28,7 +28,12 @@ export interface SelectTree {
28
28
  }
29
29
  export type RelationsConfig = Record<string, RelationConfig>;
30
30
  export type SqlSearchMode = "ilike" | "fullText";
31
- export interface SqlSearchOptions {
31
+ export type FullTextQueryMode = "plain" | "websearch";
32
+ export interface FullTextOptions {
33
+ language?: string;
34
+ queryMode?: FullTextQueryMode;
35
+ }
36
+ export interface SqlSearchOptions extends FullTextOptions {
32
37
  term: string;
33
38
  columns: string[];
34
39
  mode?: SqlSearchMode;
@@ -85,3 +90,6 @@ export interface SqlOperationOptions {
85
90
  expectedVersion?: number;
86
91
  expectedVersions?: Record<string, number>;
87
92
  }
93
+ export interface FullTextSearchOptions<FilterDto = any> extends SqlOperationOptions, FullTextOptions {
94
+ filters?: FilterDto;
95
+ }
@@ -1,4 +1,4 @@
1
- export type SqlDialect = "postgresql" | "mysql";
1
+ export type SqlDialect = "postgresql" | "mysql" | "sqlite";
2
2
  export type PrimaryKeyType = "serial" | "bigserial" | "int" | "bigint" | "uuid";
3
3
  export type SortOrder = "asc" | "desc";
4
4
  export interface SortColumn {
package/dist/index.d.ts CHANGED
@@ -5,11 +5,11 @@ export { SqlBaseCrudService } from "./core/abstract/sql-base-crud.service";
5
5
  export { CrudContext } from "./core/context/crud-context";
6
6
  export { CrudEventBus } from "./core/events/crud-event-bus";
7
7
  export type { BulkOperationResult, ICrudService, OperationOptions, PaginationOptions, } from "./core/interfaces/crud-service.interface";
8
- export type { CrudFeature, CrudFeatureConfig, DrizzleCrudConfig, } from "./core/interfaces/drizzle-crud-config.interface";
8
+ export type { CrudFeature, CrudFeatureConfig, DrizzleConnectionOptions, DrizzleCrudAsyncOptions, DrizzleCrudConfig, DrizzleCrudOptionsFactory, } from "./core/interfaces/drizzle-crud-config.interface";
9
9
  export type { CrudEvent, CrudEventPhase, CrudSubscriber, CrudWriteOperation, } from "./core/interfaces/events.interface";
10
10
  export type { BulkMode, CollectionFilter, CollectionQuantifier, ColumnFilter, CountByRow, CrudAllowlists, CrudFilter, CrudPage, CursorPage, CursorPaginationOptions, FilterGroup, FilterOperator, FilterOperators, FilterScalar, ParseCrudQueryOptions, ParsedCrudQuery, RelationCounts, SortInput, UncountedCrudPage, UpsertOptions, } from "./core/interfaces/query.interface";
11
11
  export type { CrudContextValue, CrudScope, CrudScopeValues, } from "./core/interfaces/scope.interface";
12
- export type { RelationConfig, RelationNode, RelationsConfig, RelationType, SelectTree, SqlCrudConfig, SqlOperationOptions, SqlSearchMode, SqlSearchOptions, } from "./core/interfaces/sql-crud-config.interface";
12
+ export type { FullTextOptions, FullTextQueryMode, FullTextSearchOptions, RelationConfig, RelationNode, RelationsConfig, RelationType, SelectTree, SqlCrudConfig, SqlOperationOptions, SqlSearchMode, SqlSearchOptions, } from "./core/interfaces/sql-crud-config.interface";
13
13
  export { parseCrudQuery } from "./core/utils/query-parser";
14
14
  export type { PrimaryKeyType, SortColumn, SortOrder, SqlDialect, } from "./core/types/sql.types";
15
15
  export { CrudService } from "./decorators/crud-service.decorator";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAMA,2CAoBqB;AAnBpB,kGAAA,GAAG,OAAA;AACH,kGAAA,GAAG,OAAA;AACH,sGAAA,OAAO,OAAA;AACP,mGAAA,IAAI,OAAA;AACJ,iGAAA,EAAE,OAAA;AACF,iGAAA,EAAE,OAAA;AACF,kGAAA,GAAG,OAAA;AACH,oGAAA,KAAK,OAAA;AACL,sGAAA,OAAO,OAAA;AACP,wGAAA,SAAS,OAAA;AACT,qGAAA,MAAM,OAAA;AACN,mGAAA,IAAI,OAAA;AACJ,iGAAA,EAAE,OAAA;AACF,kGAAA,GAAG,OAAA;AACH,iGAAA,EAAE,OAAA;AACF,kGAAA,GAAG,OAAA;AACH,yGAAA,UAAU,OAAA;AACV,iGAAA,EAAE,OAAA;AACF,kGAAA,GAAG,OAAA;AASJ,gFAA4E;AAAnE,+HAAA,oBAAoB,OAAA;AAE7B,+EAA2E;AAAlE,2HAAA,kBAAkB,OAAA;AAE3B,4DAA0D;AAAjD,2GAAA,WAAW,OAAA;AAEpB,+DAA4D;AAAnD,8GAAA,YAAY,OAAA;AA2DrB,0DAA2D;AAAlD,8GAAA,cAAc,OAAA;AASvB,8EAAkE;AAAzD,qHAAA,WAAW,OAAA;AAGpB,gEAWsC;AAVrC,yHAAA,sBAAsB,OAAA;AACtB,8HAAA,2BAA2B,OAAA;AAC3B,2HAAA,wBAAwB,OAAA;AACxB,uHAAA,oBAAoB,OAAA;AACpB,0HAAA,uBAAuB,OAAA;AACvB,+HAAA,4BAA4B,OAAA;AAC5B,wHAAA,qBAAqB,OAAA;AACrB,wHAAA,qBAAqB,OAAA;AACrB,uHAAA,oBAAoB,OAAA;AACpB,4HAAA,yBAAyB,OAAA;AAG1B,qEAAkE;AAAzD,wHAAA,iBAAiB,OAAA;AAC1B,mEAKsC;AAJrC,wHAAA,kBAAkB,OAAA;AAClB,yHAAA,mBAAmB,OAAA;AACnB,gHAAA,UAAU,OAAA;AACV,uHAAA,iBAAiB,OAAA;AAOlB,qEAA0E;AAAjE,kHAAA,WAAW,OAAA;AAAE,mHAAA,YAAY,OAAA;AAElC,4EAAwE;AAA/D,2HAAA,kBAAkB,OAAA;AAC3B,0DAA4D;AAAnD,+GAAA,eAAe,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAMA,2CAoBqB;AAnBpB,kGAAA,GAAG,OAAA;AACH,kGAAA,GAAG,OAAA;AACH,sGAAA,OAAO,OAAA;AACP,mGAAA,IAAI,OAAA;AACJ,iGAAA,EAAE,OAAA;AACF,iGAAA,EAAE,OAAA;AACF,kGAAA,GAAG,OAAA;AACH,oGAAA,KAAK,OAAA;AACL,sGAAA,OAAO,OAAA;AACP,wGAAA,SAAS,OAAA;AACT,qGAAA,MAAM,OAAA;AACN,mGAAA,IAAI,OAAA;AACJ,iGAAA,EAAE,OAAA;AACF,kGAAA,GAAG,OAAA;AACH,iGAAA,EAAE,OAAA;AACF,kGAAA,GAAG,OAAA;AACH,yGAAA,UAAU,OAAA;AACV,iGAAA,EAAE,OAAA;AACF,kGAAA,GAAG,OAAA;AASJ,gFAA4E;AAAnE,+HAAA,oBAAoB,OAAA;AAE7B,+EAA2E;AAAlE,2HAAA,kBAAkB,OAAA;AAE3B,4DAA0D;AAAjD,2GAAA,WAAW,OAAA;AAEpB,+DAA4D;AAAnD,8GAAA,YAAY,OAAA;AAiErB,0DAA2D;AAAlD,8GAAA,cAAc,OAAA;AASvB,8EAAkE;AAAzD,qHAAA,WAAW,OAAA;AAGpB,gEAWsC;AAVrC,yHAAA,sBAAsB,OAAA;AACtB,8HAAA,2BAA2B,OAAA;AAC3B,2HAAA,wBAAwB,OAAA;AACxB,uHAAA,oBAAoB,OAAA;AACpB,0HAAA,uBAAuB,OAAA;AACvB,+HAAA,4BAA4B,OAAA;AAC5B,wHAAA,qBAAqB,OAAA;AACrB,wHAAA,qBAAqB,OAAA;AACrB,uHAAA,oBAAoB,OAAA;AACpB,4HAAA,yBAAyB,OAAA;AAG1B,qEAAkE;AAAzD,wHAAA,iBAAiB,OAAA;AAC1B,mEAKsC;AAJrC,wHAAA,kBAAkB,OAAA;AAClB,yHAAA,mBAAmB,OAAA;AACnB,gHAAA,UAAU,OAAA;AACV,uHAAA,iBAAiB,OAAA;AAOlB,qEAA0E;AAAjE,kHAAA,WAAW,OAAA;AAAE,mHAAA,YAAY,OAAA;AAElC,4EAAwE;AAA/D,2HAAA,kBAAkB,OAAA;AAC3B,0DAA4D;AAAnD,+GAAA,eAAe,OAAA"}
@@ -1,5 +1,5 @@
1
1
  import type { OnModuleDestroy } from "@nestjs/common";
2
- import type { DrizzleCrudConfig } from "../core/interfaces/drizzle-crud-config.interface";
2
+ import type { DrizzleConnectionOptions, DrizzleCrudConfig } from "../core/interfaces/drizzle-crud-config.interface";
3
3
  export declare const DRIZZLE_DB = "DRIZZLE_DB";
4
4
  export declare const DRIZZLE_CRUD_CONFIG = "DRIZZLE_CRUD_CONFIG";
5
5
  export declare const DRIZZLE_CONNECTION = "DRIZZLE_CONNECTION";
@@ -10,3 +10,5 @@ export declare class DrizzleConnection implements OnModuleDestroy {
10
10
  init(config: DrizzleCrudConfig): Promise<void>;
11
11
  onModuleDestroy(): Promise<void>;
12
12
  }
13
+ export declare function postgresOptions(options?: DrizzleConnectionOptions): Record<string, unknown>;
14
+ export declare function mysqlOptions(options?: DrizzleConnectionOptions): Record<string, unknown>;
@@ -34,6 +34,8 @@ var __importStar = (this && this.__importStar) || (function () {
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.DrizzleConnection = exports.DRIZZLE_CONNECTION = exports.DRIZZLE_CRUD_CONFIG = exports.DRIZZLE_DB = void 0;
37
+ exports.postgresOptions = postgresOptions;
38
+ exports.mysqlOptions = mysqlOptions;
37
39
  exports.DRIZZLE_DB = "DRIZZLE_DB";
38
40
  exports.DRIZZLE_CRUD_CONFIG = "DRIZZLE_CRUD_CONFIG";
39
41
  exports.DRIZZLE_CONNECTION = "DRIZZLE_CONNECTION";
@@ -52,7 +54,10 @@ class DrizzleConnection {
52
54
  if (config.dialect === "postgresql") {
53
55
  const postgres = (await Promise.resolve().then(() => __importStar(require("postgres")))).default;
54
56
  const { drizzle } = await Promise.resolve().then(() => __importStar(require("drizzle-orm/postgres-js")));
55
- const client = postgres(config.connectionString, { prepare: false });
57
+ const client = postgres(config.connectionString, {
58
+ prepare: false,
59
+ ...postgresOptions(config.connection),
60
+ });
56
61
  this.client = client;
57
62
  this.ownsConnection = true;
58
63
  this.db = config.schema
@@ -60,7 +65,21 @@ class DrizzleConnection {
60
65
  : drizzle(client);
61
66
  return;
62
67
  }
63
- throw new Error(`DrizzleCrudModule: building a connection from \`connectionString\` is only supported for the "postgresql" dialect. ` +
68
+ if (config.dialect === "mysql") {
69
+ const mysql = await Promise.resolve().then(() => __importStar(require("mysql2/promise")));
70
+ const { drizzle } = await Promise.resolve().then(() => __importStar(require("drizzle-orm/mysql2")));
71
+ const pool = mysql.createPool({
72
+ uri: config.connectionString,
73
+ ...mysqlOptions(config.connection),
74
+ });
75
+ this.client = pool;
76
+ this.ownsConnection = true;
77
+ this.db = config.schema
78
+ ? drizzle(pool, { schema: config.schema, mode: "default" })
79
+ : drizzle(pool);
80
+ return;
81
+ }
82
+ throw new Error(`DrizzleCrudModule: building a connection from \`connectionString\` is only supported for the "postgresql" and "mysql" dialects. ` +
64
83
  `For "${config.dialect}", construct the Drizzle instance yourself and pass it as \`db\`.`);
65
84
  }
66
85
  async onModuleDestroy() {
@@ -70,4 +89,32 @@ class DrizzleConnection {
70
89
  }
71
90
  }
72
91
  exports.DrizzleConnection = DrizzleConnection;
92
+ function postgresOptions(options = {}) {
93
+ const out = {};
94
+ if (options.poolSize !== undefined)
95
+ out.max = options.poolSize;
96
+ if (options.idleTimeout !== undefined) {
97
+ out.idle_timeout = options.idleTimeout;
98
+ }
99
+ if (options.ssl !== undefined)
100
+ out.ssl = options.ssl;
101
+ return out;
102
+ }
103
+ function mysqlOptions(options = {}) {
104
+ const out = {};
105
+ if (options.poolSize !== undefined)
106
+ out.connectionLimit = options.poolSize;
107
+ if (options.idleTimeout !== undefined) {
108
+ out.idleTimeout = options.idleTimeout * 1000;
109
+ }
110
+ const ssl = options.ssl;
111
+ if (ssl === true)
112
+ out.ssl = {};
113
+ else if (typeof ssl === "string") {
114
+ throw new Error(`DrizzleCrudModule: connection.ssl "${ssl}" is a postgres-js mode; for mysql pass true or a TLS options object.`);
115
+ }
116
+ else if (ssl && typeof ssl === "object")
117
+ out.ssl = ssl;
118
+ return out;
119
+ }
73
120
  //# sourceMappingURL=drizzle-connection.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"drizzle-connection.js","sourceRoot":"","sources":["../../src/modules/drizzle-connection.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGa,QAAA,UAAU,GAAG,YAAY,CAAC;AAC1B,QAAA,mBAAmB,GAAG,qBAAqB,CAAC;AAC5C,QAAA,kBAAkB,GAAG,oBAAoB,CAAC;AASvD;IACC,EAAE,CAAM;IACA,MAAM,CAAiC;IACvC,cAAc,GAAG,KAAK,CAAC;IAE/B,KAAK,CAAC,IAAI,CAAC,MAAyB;QACnC,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;YACpB,OAAO;QACR,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CACd,oFAAoF,CACpF,CAAC;QACH,CAAC;QAED,IAAI,MAAM,CAAC,OAAO,KAAK,YAAY,EAAE,CAAC;YACrC,MAAM,QAAQ,GAAG,CAAC,wDAAa,UAAU,GAAC,CAAC,CAAC,OAAO,CAAC;YACpD,MAAM,EAAE,OAAO,EAAE,GAAG,wDAAa,yBAAyB,GAAC,CAAC;YAC5D,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,gBAAgB,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;YACrE,IAAI,CAAC,MAAM,GAAG,MAAiD,CAAC;YAChE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM;gBACtB,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;gBAC5C,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACnB,OAAO;QACR,CAAC;QAED,MAAM,IAAI,KAAK,CACd,qHAAqH;YACpH,QAAQ,MAAM,CAAC,OAAO,mEAAmE,CAC1F,CAAC;IACH,CAAC;IAED,KAAK,CAAC,eAAe;QACpB,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC;YAC7C,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;QACzB,CAAC;IACF,CAAC;CACD"}
1
+ {"version":3,"file":"drizzle-connection.js","sourceRoot":"","sources":["../../src/modules/drizzle-connection.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMa,QAAA,UAAU,GAAG,YAAY,CAAC;AAC1B,QAAA,mBAAmB,GAAG,qBAAqB,CAAC;AAC5C,QAAA,kBAAkB,GAAG,oBAAoB,CAAC;AASvD;IACC,EAAE,CAAM;IACA,MAAM,CAAiC;IACvC,cAAc,GAAG,KAAK,CAAC;IAE/B,KAAK,CAAC,IAAI,CAAC,MAAyB;QACnC,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;YACpB,OAAO;QACR,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CACd,oFAAoF,CACpF,CAAC;QACH,CAAC;QAED,IAAI,MAAM,CAAC,OAAO,KAAK,YAAY,EAAE,CAAC;YACrC,MAAM,QAAQ,GAAG,CAAC,wDAAa,UAAU,GAAC,CAAC,CAAC,OAAO,CAAC;YACpD,MAAM,EAAE,OAAO,EAAE,GAAG,wDAAa,yBAAyB,GAAC,CAAC;YAC5D,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,gBAAgB,EAAE;gBAChD,OAAO,EAAE,KAAK;gBACd,GAAG,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC;aACrC,CAAC,CAAC;YACH,IAAI,CAAC,MAAM,GAAG,MAAiD,CAAC;YAChE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM;gBACtB,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;gBAC5C,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACnB,OAAO;QACR,CAAC;QAED,IAAI,MAAM,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;YAChC,MAAM,KAAK,GAAG,wDAAa,gBAAgB,GAAC,CAAC;YAC7C,MAAM,EAAE,OAAO,EAAE,GAAG,wDAAa,oBAAoB,GAAC,CAAC;YACvD,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC;gBAC7B,GAAG,EAAE,MAAM,CAAC,gBAAgB;gBAC5B,GAAG,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC;aAClC,CAAC,CAAC;YACH,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM;gBACtB,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;gBAC3D,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACjB,OAAO;QACR,CAAC;QAED,MAAM,IAAI,KAAK,CACd,kIAAkI;YACjI,QAAQ,MAAM,CAAC,OAAO,mEAAmE,CAC1F,CAAC;IACH,CAAC;IAED,KAAK,CAAC,eAAe;QACpB,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC;YAC7C,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;QACzB,CAAC;IACF,CAAC;CACD;;AAID,yBACC,OAAO,GAA6B,EAAE;IAEtC,MAAM,GAAG,GAA4B,EAAE,CAAC;IACxC,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS;QAAE,GAAG,CAAC,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC;IAC/D,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACvC,GAAG,CAAC,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC;IACxC,CAAC;IACD,IAAI,OAAO,CAAC,GAAG,KAAK,SAAS;QAAE,GAAG,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IACrD,OAAO,GAAG,CAAC;AACZ,CAAC;AAKD,sBACC,OAAO,GAA6B,EAAE;IAEtC,MAAM,GAAG,GAA4B,EAAE,CAAC;IACxC,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS;QAAE,GAAG,CAAC,eAAe,GAAG,OAAO,CAAC,QAAQ,CAAC;IAC3E,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACvC,GAAG,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAC9C,CAAC;IACD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IACxB,IAAI,GAAG,KAAK,IAAI;QAAE,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC;SAC1B,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CACd,sCAAsC,GAAG,uEAAuE,CAChH,CAAC;IACH,CAAC;SAAM,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC;IACzD,OAAO,GAAG,CAAC;AACZ,CAAC"}
@@ -1,11 +1,7 @@
1
1
  import { type DynamicModule } from "@nestjs/common";
2
- import type { CrudFeature, DrizzleCrudConfig } from "../core/interfaces/drizzle-crud-config.interface";
2
+ import type { CrudFeature, DrizzleCrudAsyncOptions, DrizzleCrudConfig } from "../core/interfaces/drizzle-crud-config.interface";
3
3
  export declare class DrizzleCrudModule {
4
4
  static forRoot(config: DrizzleCrudConfig): DynamicModule;
5
- static forRootAsync(options: {
6
- imports?: any[];
7
- useFactory: (...args: any[]) => Promise<DrizzleCrudConfig> | DrizzleCrudConfig;
8
- inject?: any[];
9
- }): DynamicModule;
5
+ static forRootAsync(options: DrizzleCrudAsyncOptions): DynamicModule;
10
6
  static forFeature(entities: CrudFeature[]): DynamicModule;
11
7
  }
@@ -28,7 +28,7 @@ function normalizeConfig(config) {
28
28
  },
29
29
  sql: {
30
30
  caseSensitive: false,
31
- useReturning: config.dialect === "postgresql",
31
+ useReturning: config.dialect !== "mysql",
32
32
  jsonSupport: true,
33
33
  enableFullTextSearch: false,
34
34
  ...config.sql,
@@ -110,6 +110,29 @@ function connectionProviders(rawConfigProvider) {
110
110
  },
111
111
  ];
112
112
  }
113
+ function asyncConfigProvider(options) {
114
+ if (options.useFactory) {
115
+ return {
116
+ provide: DRIZZLE_RAW_CONFIG,
117
+ useFactory: options.useFactory,
118
+ inject: options.inject || [],
119
+ };
120
+ }
121
+ const factory = options.useClass ?? options.useExisting;
122
+ if (!factory) {
123
+ throw new Error("DrizzleCrudModule.forRootAsync: provide useFactory, useClass or useExisting.");
124
+ }
125
+ return {
126
+ provide: DRIZZLE_RAW_CONFIG,
127
+ useFactory: (instance) => instance.createDrizzleCrudOptions(),
128
+ inject: [factory],
129
+ };
130
+ }
131
+ function asyncFactoryProviders(options) {
132
+ if (options.useFactory || !options.useClass)
133
+ return [];
134
+ return [{ provide: options.useClass, useClass: options.useClass }];
135
+ }
113
136
  const EXPORTED_TOKENS = [
114
137
  drizzle_connection_1.DRIZZLE_CRUD_CONFIG,
115
138
  drizzle_connection_1.DRIZZLE_DB,
@@ -132,11 +155,10 @@ let DrizzleCrudModule = DrizzleCrudModule_1 = class DrizzleCrudModule {
132
155
  return {
133
156
  module: DrizzleCrudModule_1,
134
157
  imports: options.imports || [],
135
- providers: connectionProviders({
136
- provide: DRIZZLE_RAW_CONFIG,
137
- useFactory: options.useFactory,
138
- inject: options.inject || [],
139
- }),
158
+ providers: [
159
+ ...asyncFactoryProviders(options),
160
+ ...connectionProviders(asyncConfigProvider(options)),
161
+ ],
140
162
  exports: EXPORTED_TOKENS,
141
163
  global: true,
142
164
  };
@@ -1 +1 @@
1
- {"version":3,"file":"drizzle-crud.module.js","sourceRoot":"","sources":["../../src/modules/drizzle-crud.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAA2E;AAM3E,kEAA6D;AAC7D,6DAA6D;AAC7D,6DAK8B;AAE9B,MAAM,kBAAkB,GAAG,oBAAoB,CAAC;AAGhD,SAAS,eAAe,CAAC,MAAyB;IACjD,OAAO;QACN,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,QAAQ,EAAE;YACT,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,IAAI;YAChB,GAAG,MAAM,CAAC,QAAQ;YAElB,UAAU,EAAE;gBACX,YAAY,EAAE,EAAE;gBAChB,QAAQ,EAAE,GAAG;gBACb,GAAG,MAAM,CAAC,QAAQ,EAAE,UAAU;aAC9B;SACD;QACD,GAAG,EAAE;YACJ,aAAa,EAAE,KAAK;YACpB,YAAY,EAAE,MAAM,CAAC,OAAO,KAAK,YAAY;YAC7C,WAAW,EAAE,IAAI;YACjB,oBAAoB,EAAE,KAAK;YAC3B,GAAG,MAAM,CAAC,GAAG;SACb;QACD,KAAK,EAAE;YACN,iBAAiB,EAAE,MAAM,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI;SAC3D;KACD,CAAC;AACH,CAAC;AAID,SAAS,iBAAiB,CACzB,OAAY,EACZ,KAAU,EACV,YAAmC,EACnC,EAAO,EACP,YAAiB,EACjB,MAAqB;IAErB,MAAM,eAAe,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,aAAa,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;IAG5E,MAAM,SAAS,GAAwB,IAAA,8BAAe,EACrD,eAAe,EACf,YAAY,CACZ,CAAC;IACF,MAAM,EAAE,GAAG,YAAY,EAAE,QAAQ,IAAI,EAAE,CAAC;IAExC,MAAM,aAAa,GAAQ;QAC1B,OAAO,EAAE,YAAY,EAAE,OAAO;QAC9B,EAAE;QACF,UAAU,EAAE,IAAI;QAChB,cAAc,EAAE,QAAQ;QACxB,UAAU,EACT,EAAE,CAAC,UAAU,KAAK,KAAK;YACtB,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE;YAC1C,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE;QAG3C,UAAU,EACT,EAAE,CAAC,UAAU,KAAK,KAAK;YACtB,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE;KACxD,CAAC;IACF,IAAI,EAAE,CAAC,UAAU;QAAE,aAAa,CAAC,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC;IAE5D,IAAI,YAAY,EAAE,KAAK,EAAE,iBAAiB,IAAI,MAAM,EAAE,CAAC;QACtD,aAAa,CAAC,MAAM,GAAG,MAAM,CAAC;IAC/B,CAAC;IACD,IAAI,YAAY,EAAE,GAAG;QAAE,aAAa,CAAC,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC;IAG5D,MAAM,WAAW,GAAQ,IAAA,8BAAe,EAAC,aAAa,EAAE,SAAS,CAAC,CAAC;IACnE,WAAW,CAAC,KAAK,GAAG,KAAK,IAAI,SAAS,CAAC,KAAK,CAAC;IAI7C,IACC,CAAC,WAAW,CAAC,WAAW;QACxB,EAAE,CAAC,SAAS;QACZ,WAAW,CAAC,UAAU,EAAE,SAAS,EAChC,CAAC;QACF,WAAW,CAAC,WAAW,GAAG;YACzB,EAAE,MAAM,EAAE,WAAW,CAAC,UAAU,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC,SAAS,EAAE;SACjE,CAAC;IACH,CAAC;IAED,OAAO,WAA4B,CAAC;AACrC,CAAC;AAID,SAAS,mBAAmB,CAAC,iBAA2B;IACvD,OAAO;QACN,iBAAiB;QACjB;YACC,OAAO,EAAE,wCAAmB;YAC5B,MAAM,EAAE,CAAC,kBAAkB,CAAC;YAC5B,UAAU,EAAE,CAAC,GAAsB,EAAE,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC;SAC5D;QACD;YACC,OAAO,EAAE,uCAAkB;YAC3B,MAAM,EAAE,CAAC,kBAAkB,CAAC;YAC5B,UAAU,EAAE,KAAK,EAChB,GAAsB,EACO,EAAE;gBAC/B,MAAM,UAAU,GAAG,IAAI,sCAAiB,EAAE,CAAC;gBAC3C,MAAM,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC3B,OAAO,UAAU,CAAC;YACnB,CAAC;SACD;QACD;YACC,OAAO,EAAE,+BAAU;YACnB,MAAM,EAAE,CAAC,uCAAkB,CAAC;YAC5B,UAAU,EAAE,CAAC,UAA6B,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE;SAC5D;QACD;YACC,OAAO,EAAE,6BAAY;YACrB,MAAM,EAAE,CAAC,kBAAkB,CAAC;YAC5B,UAAU,EAAE,CAAC,GAAsB,EAAE,EAAE;gBACtC,MAAM,GAAG,GAAG,IAAI,6BAAY,EAAE,CAAC;gBAC/B,KAAK,MAAM,UAAU,IAAI,GAAG,CAAC,KAAK,EAAE,WAAW,IAAI,EAAE,EAAE,CAAC;oBACvD,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;gBAC3B,CAAC;gBACD,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,iBAAiB,EAAE,CAAC;oBACnD,OAAO,CAAC,IAAI,CACX,4GAA4G,CAC5G,CAAC;gBACH,CAAC;gBACD,OAAO,GAAG,CAAC;YACZ,CAAC;SACD;KACD,CAAC;AACH,CAAC;AAED,MAAM,eAAe,GAAG;IACvB,wCAAmB;IACnB,+BAAU;IACV,uCAAkB;IAClB,6BAAY;CACZ,CAAC;AAGK,IAAM,iBAAiB,yBAAvB,MAAM,iBAAiB;IACtB,AAAP,MAAM,CAAC,OAAO,CAAC,MAAyB;QACvC,OAAO;YACN,MAAM,qBAAmB;YACzB,SAAS,EAAE,mBAAmB,CAAC;gBAC9B,OAAO,EAAE,kBAAkB;gBAC3B,QAAQ,EAAE,MAAM;aAChB,CAAC;YACF,OAAO,EAAE,eAAe;YACxB,MAAM,EAAE,IAAI;SACZ,CAAC;IACH,CAAC;IAEM,AAAP,MAAM,CAAC,YAAY,CAAC,OAMnB;QACA,OAAO;YACN,MAAM,qBAAmB;YACzB,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE;YAC9B,SAAS,EAAE,mBAAmB,CAAC;gBAC9B,OAAO,EAAE,kBAAkB;gBAC3B,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE;aAC5B,CAAC;YACF,OAAO,EAAE,eAAe;YACxB,MAAM,EAAE,IAAI;SACZ,CAAC;IACH,CAAC;IAEM,AAAP,MAAM,CAAC,UAAU,CAAC,QAAuB;QACxC,MAAM,SAAS,GAAe,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YACvD,OAAO,EAAE,MAAM,CAAC,OAAO;YAGvB,MAAM,EAAE;gBACP,+BAAU;gBACV,wCAAmB;gBACnB,EAAE,KAAK,EAAE,6BAAY,EAAE,QAAQ,EAAE,IAAI,EAAE;aACvC;YACD,UAAU,EAAE,CAAC,EAAO,EAAE,YAAiB,EAAE,MAAqB,EAAE,EAAE,CACjE,IAAI,MAAM,CAAC,OAAO,CACjB,iBAAiB,CAChB,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,MAAM,EACb,EAAE,EACF,YAAY,EACZ,MAAM,CACN,CACD;SACF,CAAC,CAAC,CAAC;QAEJ,OAAO;YACN,MAAM,qBAAmB;YACzB,SAAS;YACT,OAAO,EAAE,SAAS;SAClB,CAAC;IACH,CAAC;CACD,CAAA;;4BA9DY,iBAAiB;IAD7B,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,iBAAiB,CA8D7B"}
1
+ {"version":3,"file":"drizzle-crud.module.js","sourceRoot":"","sources":["../../src/modules/drizzle-crud.module.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@avytrix/nestjs-drizzle-crud",
3
- "version": "3.6.0",
4
- "description": "NestJS + Drizzle ORM CRUD: type-safe services with filtering, pagination, cursor pagination, relations, soft delete, upsert, multi-tenancy and OpenAPI for PostgreSQL and MySQL.",
3
+ "version": "3.7.0",
4
+ "description": "NestJS + Drizzle ORM CRUD: type-safe services with filtering, pagination, cursor pagination, relations, soft delete, upsert, multi-tenancy and OpenAPI for PostgreSQL, MySQL and SQLite.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "bin": {
@@ -47,6 +47,8 @@
47
47
  "swagger",
48
48
  "postgresql",
49
49
  "mysql",
50
+ "sqlite",
51
+ "libsql",
50
52
  "typescript",
51
53
  "mcp",
52
54
  "rest",
@@ -77,6 +79,7 @@
77
79
  "@nestjs/core": ">=10.0.0",
78
80
  "@nestjs/swagger": ">=7.0.0",
79
81
  "drizzle-orm": ">=0.28.0 <1.0.0",
82
+ "mysql2": ">=3.0.0",
80
83
  "postgres": ">=3.0.0",
81
84
  "reflect-metadata": "^0.1.13 || ^0.2.0"
82
85
  },
@@ -84,6 +87,9 @@
84
87
  "@nestjs/swagger": {
85
88
  "optional": true
86
89
  },
90
+ "mysql2": {
91
+ "optional": true
92
+ },
87
93
  "postgres": {
88
94
  "optional": true
89
95
  }
@@ -91,6 +97,7 @@
91
97
  "devDependencies": {
92
98
  "@electric-sql/pglite": "^0.5.4",
93
99
  "@jest/globals": "^30.0.0",
100
+ "@libsql/client": "^0.18.0",
94
101
  "@nestjs/common": "^11.1.28",
95
102
  "@nestjs/core": "^11.1.28",
96
103
  "@nestjs/swagger": "^11.4.7",
@@ -101,6 +108,7 @@
101
108
  "@types/node": "^26.0.0",
102
109
  "drizzle-orm": "^0.45.2",
103
110
  "jest": "^30.4.2",
111
+ "mysql2": "^3.24.6",
104
112
  "postgres": "^3.4.9",
105
113
  "reflect-metadata": "^0.2.0",
106
114
  "typescript": "^7.0.0"