@avytrix/nestjs-drizzle-crud 3.5.1 → 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 {
@@ -1,2 +1,4 @@
1
1
  import type { ParseCrudQueryOptions, ParsedCrudQuery } from "../interfaces/query.interface";
2
+ export declare const MAX_FILTER_DEPTH = 32;
3
+ export declare function assertFilterDepth(filters: unknown): void;
2
4
  export declare function parseCrudQuery(query: Record<string, unknown> | null | undefined, table: any, options?: ParseCrudQueryOptions): ParsedCrudQuery;
@@ -1,5 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MAX_FILTER_DEPTH = void 0;
4
+ exports.assertFilterDepth = assertFilterDepth;
3
5
  exports.parseCrudQuery = parseCrudQuery;
4
6
  const common_1 = require("@nestjs/common");
5
7
  const drizzle_orm_1 = require("drizzle-orm");
@@ -47,6 +49,25 @@ const OPERATORS = {
47
49
  jsonContains: "json",
48
50
  };
49
51
  const bad = (message) => new common_1.BadRequestException(message);
52
+ exports.MAX_FILTER_DEPTH = 32;
53
+ function assertFilterDepth(filters) {
54
+ const stack = [[filters, 0]];
55
+ while (stack.length > 0) {
56
+ const [node, depth] = stack.pop();
57
+ const children = Array.isArray(node)
58
+ ? node.map((item) => [item, depth])
59
+ : (0, merge_config_1.isPlainObject)(node)
60
+ ? Object.values(node).map((item) => [
61
+ item,
62
+ depth + 1,
63
+ ])
64
+ : [];
65
+ if (depth > exports.MAX_FILTER_DEPTH) {
66
+ throw bad(`Filter is nested too deeply (max ${exports.MAX_FILTER_DEPTH} levels)`);
67
+ }
68
+ stack.push(...children);
69
+ }
70
+ }
50
71
  function parseCrudQuery(query, table, options = {}) {
51
72
  const tree = normalizeQuery(query);
52
73
  for (const key of options.ignore ?? [])
@@ -135,6 +156,7 @@ function normalizeQuery(query) {
135
156
  return root;
136
157
  if (typeof query !== "object")
137
158
  throw bad("The query must be an object");
159
+ assertFilterDepth(query);
138
160
  for (const [key, value] of Object.entries(query)) {
139
161
  if (value === undefined)
140
162
  continue;
@@ -149,6 +171,9 @@ function splitKey(key) {
149
171
  const head = match[1].split(".");
150
172
  const brackets = Array.from(match[2].matchAll(/\[([^[\]]*)\]/g), (m) => m[1]);
151
173
  const path = [...head, ...brackets];
174
+ if (path.length > exports.MAX_FILTER_DEPTH) {
175
+ throw bad(`Filter is nested too deeply (max ${exports.MAX_FILTER_DEPTH} levels)`);
176
+ }
152
177
  for (const segment of path) {
153
178
  if (UNSAFE_KEYS.has(segment)) {
154
179
  throw bad(`Malformed query parameter: ${key}`);
@@ -382,8 +407,17 @@ function parseFilter(node, context, scope) {
382
407
  keys.every((name) => QUANTIFIERS.has(name) && !columnOf(relation.table, name))) {
383
408
  const quantified = {};
384
409
  for (const [quantifier, member] of Object.entries(raw)) {
385
- quantified[quantifier] =
386
- member === "" ? {} : parseFilter(member, context, inner);
410
+ if (member === "") {
411
+ const allowed = context.options.filterableColumns;
412
+ if (allowed &&
413
+ !allowed.some((entry) => entry === path || entry.startsWith(`${path}.`))) {
414
+ throw bad(`Filtering on "${path}" is not allowed`);
415
+ }
416
+ quantified[quantifier] = {};
417
+ }
418
+ else {
419
+ quantified[quantifier] = parseFilter(member, context, inner);
420
+ }
387
421
  }
388
422
  out[key] = quantified;
389
423
  }
@@ -1 +1 @@
1
- {"version":3,"file":"query-parser.js","sourceRoot":"","sources":["../../../src/core/utils/query-parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query-parser.js","sourceRoot":"","sources":["../../../src/core/utils/query-parser.ts"],"names":[],"mappings":"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"}
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":"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"}
@@ -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":"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"}
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.5.1",
4
- "description": "A complete CRUD abstraction layer for Drizzle ORM in NestJS applications",
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": {
@@ -34,18 +34,29 @@
34
34
  "drizzle",
35
35
  "drizzle-orm",
36
36
  "crud",
37
- "rest",
38
- "api",
37
+ "nestjs-crud",
38
+ "nestjs-drizzle",
39
+ "rest-api",
40
+ "pagination",
41
+ "cursor-pagination",
42
+ "filtering",
43
+ "soft-delete",
44
+ "multi-tenant",
45
+ "upsert",
46
+ "openapi",
47
+ "swagger",
39
48
  "postgresql",
40
49
  "mysql",
41
- "database",
42
- "orm",
50
+ "sqlite",
51
+ "libsql",
43
52
  "typescript",
44
53
  "mcp",
54
+ "rest",
55
+ "api",
56
+ "database",
57
+ "orm",
45
58
  "eager-loading",
46
59
  "n+1",
47
- "openapi",
48
- "swagger",
49
60
  "multi-tenancy"
50
61
  ],
51
62
  "author": "Suman Bonakurthi <sumanbonakurthi@gmail.com>",
@@ -68,6 +79,7 @@
68
79
  "@nestjs/core": ">=10.0.0",
69
80
  "@nestjs/swagger": ">=7.0.0",
70
81
  "drizzle-orm": ">=0.28.0 <1.0.0",
82
+ "mysql2": ">=3.0.0",
71
83
  "postgres": ">=3.0.0",
72
84
  "reflect-metadata": "^0.1.13 || ^0.2.0"
73
85
  },
@@ -75,6 +87,9 @@
75
87
  "@nestjs/swagger": {
76
88
  "optional": true
77
89
  },
90
+ "mysql2": {
91
+ "optional": true
92
+ },
78
93
  "postgres": {
79
94
  "optional": true
80
95
  }
@@ -82,6 +97,7 @@
82
97
  "devDependencies": {
83
98
  "@electric-sql/pglite": "^0.5.4",
84
99
  "@jest/globals": "^30.0.0",
100
+ "@libsql/client": "^0.18.0",
85
101
  "@nestjs/common": "^11.1.28",
86
102
  "@nestjs/core": "^11.1.28",
87
103
  "@nestjs/swagger": "^11.4.7",
@@ -92,6 +108,7 @@
92
108
  "@types/node": "^26.0.0",
93
109
  "drizzle-orm": "^0.45.2",
94
110
  "jest": "^30.4.2",
111
+ "mysql2": "^3.24.6",
95
112
  "postgres": "^3.4.9",
96
113
  "reflect-metadata": "^0.2.0",
97
114
  "typescript": "^7.0.0"