namirasoft-node-sequelize 1.4.9 → 1.4.11

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.
@@ -4,7 +4,13 @@ exports.BasePostgreSQLDatabase = void 0;
4
4
  const BaseSequelizeDatabase_1 = require("./BaseSequelizeDatabase");
5
5
  class BasePostgreSQLDatabase extends BaseSequelizeDatabase_1.BaseSequelizeDatabase {
6
6
  constructor(host, port, name, user, pass, logging = false) {
7
- super('postgres', host, port, name, user, pass, logging);
7
+ let getConnectionString = () => {
8
+ let hosts = host.split(",");
9
+ if (hosts.length > 1)
10
+ return `postgres://${user}:${pass}@${host}:${port}/${name}`;
11
+ return "";
12
+ };
13
+ super('postgres', host, port, name, user, pass, logging, getConnectionString);
8
14
  }
9
15
  getType() {
10
16
  return "Postgres";
@@ -1 +1 @@
1
- {"version":3,"file":"BasePostgreSQLDatabase.js","sourceRoot":"","sources":["../src/BasePostgreSQLDatabase.ts"],"names":[],"mappings":";;;AAAA,mEAAgE;AAEhE,MAAsB,sBAAuB,SAAQ,6CAAqB;IAEtE,YAAY,IAAY,EAAE,IAAY,EAAE,IAAY,EAAE,IAAY,EAAE,IAAY,EAAE,UAAmB,KAAK;QAEtG,KAAK,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC7D,CAAC;IACQ,OAAO;QAEZ,OAAO,UAAU,CAAC;IACtB,CAAC;CACJ;AAVD,wDAUC"}
1
+ {"version":3,"file":"BasePostgreSQLDatabase.js","sourceRoot":"","sources":["../src/BasePostgreSQLDatabase.ts"],"names":[],"mappings":";;;AAAA,mEAAgE;AAEhE,MAAsB,sBAAuB,SAAQ,6CAAqB;IAEtE,YAAY,IAAY,EAAE,IAAY,EAAE,IAAY,EAAE,IAAY,EAAE,IAAY,EAAE,UAAmB,KAAK;QAEtG,IAAI,mBAAmB,GAAG,GAAG,EAAE;YAE3B,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAChB,OAAO,cAAc,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;YAChE,OAAO,EAAE,CAAC;QACd,CAAC,CAAC;QACF,KAAK,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,mBAAmB,CAAC,CAAC;IAClF,CAAC;IACQ,OAAO;QAEZ,OAAO,UAAU,CAAC;IACtB,CAAC;CACJ;AAjBD,wDAiBC"}
@@ -1,9 +1,7 @@
1
- import { Sequelize, Dialect, WhereOptions, Order } from "sequelize";
2
- import { BaseDatabase, BaseFilterItemBuilder_JoinTable } from "namirasoft-node";
3
1
  import { FilterItem, SortItem } from "namirasoft-core";
2
+ import { BaseApplication, BaseDatabase, BaseFilterItemBuilder_JoinTable } from "namirasoft-node";
3
+ import { Dialect, Order, Sequelize, Transaction, WhereOptions } from "sequelize";
4
4
  import { BaseSequelizeTable } from "./BaseSequelizeTable";
5
- import { BaseApplication } from "namirasoft-node";
6
- import { Transaction } from "sequelize";
7
5
  export interface BaseSequelizeDatabaseSeedable<Model> {
8
6
  getOrNull(id: string | number | undefined, trx: Transaction | null): Promise<Model | null>;
9
7
  create(product: Model, trx: Transaction | null): Promise<Model>;
@@ -13,11 +11,12 @@ export declare abstract class BaseSequelizeDatabase extends BaseDatabase {
13
11
  sequelize: Sequelize;
14
12
  private dialect;
15
13
  private name;
16
- constructor(dialect: Dialect, host: string, port: number, name: string, user: string, pass: string, logging?: boolean);
14
+ constructor(dialect: Dialect, host: string, port: number, name: string, user: string, pass: string, logging?: boolean, getConnectionString?: () => string);
17
15
  getName(): string;
18
16
  connect(): Promise<void>;
19
17
  sync(force: boolean): Promise<void>;
20
18
  isHealthy(): Promise<boolean>;
19
+ close(): Promise<void>;
21
20
  startTransaction<T>(handler: (trx: Transaction) => Promise<T>, trx: Transaction | null): Promise<T>;
22
21
  getFiltersConditions(table_main: BaseSequelizeTable<BaseSequelizeDatabase, any>, table_joins: {
23
22
  [table: string]: BaseFilterItemBuilder_JoinTable<WhereOptions>;
@@ -10,25 +10,36 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.BaseSequelizeDatabase = void 0;
13
+ const namirasoft_core_1 = require("namirasoft-core");
13
14
  const namirasoft_log_1 = require("namirasoft-log");
14
- const sequelize_1 = require("sequelize");
15
15
  const namirasoft_node_1 = require("namirasoft-node");
16
- const namirasoft_core_1 = require("namirasoft-core");
17
- const BaseFilterItemBuilderSequelize_1 = require("./BaseFilterItemBuilderSequelize");
18
16
  const namirasoft_schema_1 = require("namirasoft-schema");
17
+ const sequelize_1 = require("sequelize");
18
+ const BaseFilterItemBuilderSequelize_1 = require("./BaseFilterItemBuilderSequelize");
19
19
  class BaseSequelizeDatabase extends namirasoft_node_1.BaseDatabase {
20
- constructor(dialect, host, port, name, user, pass, logging = false) {
20
+ constructor(dialect, host, port, name, user, pass, logging = false, getConnectionString) {
21
21
  super();
22
- this.sequelize = new sequelize_1.Sequelize(name, user, pass, {
23
- dialect,
24
- host,
25
- port,
26
- logging,
27
- pool: {
28
- min: 2,
29
- max: 10,
30
- }
31
- });
22
+ let connectionString = getConnectionString === null || getConnectionString === void 0 ? void 0 : getConnectionString();
23
+ if (connectionString)
24
+ this.sequelize = new sequelize_1.Sequelize({
25
+ dialect,
26
+ dialectOptions: {
27
+ connectionString
28
+ },
29
+ logging,
30
+ pool: { min: 2, max: 10 }
31
+ });
32
+ else
33
+ this.sequelize = new sequelize_1.Sequelize(name, user, pass, {
34
+ dialect,
35
+ host,
36
+ port,
37
+ logging,
38
+ pool: {
39
+ min: 2,
40
+ max: 10,
41
+ }
42
+ });
32
43
  this.dialect = dialect;
33
44
  this.name = name;
34
45
  }
@@ -61,6 +72,12 @@ class BaseSequelizeDatabase extends namirasoft_node_1.BaseDatabase {
61
72
  return false;
62
73
  });
63
74
  }
75
+ close() {
76
+ return __awaiter(this, void 0, void 0, function* () {
77
+ var _a;
78
+ (_a = this.sequelize) === null || _a === void 0 ? void 0 : _a.close();
79
+ });
80
+ }
64
81
  startTransaction(handler, trx) {
65
82
  return __awaiter(this, void 0, void 0, function* () {
66
83
  if (trx)
@@ -1 +1 @@
1
- {"version":3,"file":"BaseSequelizeDatabase.js","sourceRoot":"","sources":["../src/BaseSequelizeDatabase.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BaseSequelizeDatabase.js","sourceRoot":"","sources":["../src/BaseSequelizeDatabase.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAAsF;AACtF,mDAAwC;AACxC,qDAAiG;AACjG,yDAAiD;AACjD,yCAAqF;AACrF,qFAAkF;AAUlF,MAAsB,qBAAsB,SAAQ,8BAAY;IAK5D,YAAY,OAAgB,EAAE,IAAY,EAAE,IAAY,EAAE,IAAY,EAAE,IAAY,EAAE,IAAY,EAAE,UAAmB,KAAK,EAAE,mBAAkC;QAE5J,KAAK,EAAE,CAAC;QACR,IAAI,gBAAgB,GAAG,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,EAAI,CAAC;QAC/C,IAAI,gBAAgB;YAChB,IAAI,CAAC,SAAS,GAAG,IAAI,qBAAS,CAAC;gBAC3B,OAAO;gBACP,cAAc,EAAE;oBACZ,gBAAgB;iBACnB;gBACD,OAAO;gBACP,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE;aAC5B,CAAC,CAAC;;YAEH,IAAI,CAAC,SAAS,GAAG,IAAI,qBAAS,CAC1B,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ;gBACI,OAAO;gBACP,IAAI;gBACJ,IAAI;gBACJ,OAAO;gBACP,IAAI,EAAE;oBACF,GAAG,EAAE,CAAC;oBACN,GAAG,EAAE,EAAE;iBACV;aACJ,CAAC,CAAC;QAEX,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IACQ,OAAO;QAEZ,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IACc,OAAO;;;YAElB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,EAChC,CAAC;gBACG,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;gBACpC,MAAA,uBAAM,CAAC,IAAI,0CAAE,OAAO,CAAC,YAAY,IAAI,CAAC,OAAO,qBAAqB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YACnF,CAAC;QACL,CAAC;KAAA;IACc,IAAI,CAAC,KAAc;;YAE9B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe;gBAC5B,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAC7C,CAAC;KAAA;IACc,SAAS;;YAEpB,IACA,CAAC;gBACG,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;gBAC9B,OAAO,IAAI,CAAC;YAChB,CAAC;YAAC,OAAO,KAAK,EACd,CAAC;YACD,CAAC;YACD,OAAO,KAAK,CAAC;QACjB,CAAC;KAAA;IACK,KAAK;;;YAEP,MAAA,IAAI,CAAC,SAAS,0CAAE,KAAK,EAAE,CAAC;QAC5B,CAAC;KAAA;IACK,gBAAgB,CAAI,OAAyC,EAAE,GAAuB;;YAExF,IAAI,GAAG;gBACH,OAAO,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;YAC9B,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;YACzC,IACA,CAAC;gBACG,IAAI,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;gBAChC,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC;gBACnB,OAAO,MAAM,CAAC;YAClB,CAAC;YACD,OAAO,KAAK,EACZ,CAAC;gBACG,MAAM,GAAG,CAAC,QAAQ,EAAE,CAAC;gBACrB,MAAM,KAAK,CAAC;YAChB,CAAC;QACL,CAAC;KAAA;IACK,oBAAoB,CAAC,UAA0D,EAAE,WAA+E,EAAE,OAAkC;;YAEtM,IAAI,OAAO,GAAG,IAAI,+DAA8B,CAAC,IAAI,CAAC,CAAC;YACvD,OAAO,MAAM,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;QACjE,CAAC;KAAA;IACD,2BAA2B,CAAC,OAAiB,EAAE,MAAc;QAEzD,IAAI,UAAU,GAAmB,EAAE,CAAC;QACpC,IAAI,MAAM;YACN,IAAI,MAAM,CAAC,KAAK,EAChB,CAAC;gBACG,IAAI,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC7B,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EACnB,CAAC;oBACG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EACpC,CAAC;wBACG,IAAI,IAAI,GAAG,EAAE,CAAC,cAAE,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,GAAG,EAAE,CAAC;wBACrD,IAAI,IAAI,CAAC;wBACT,IAAI,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAC1B,qBAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,qBAAS,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CACpD,CAAC;wBACF,IAAI,GAAG,qBAAS,CAAC,EAAE,CACf,QAAQ,EACR,GAAG,EAAE,CACR,CAAC;wBACF,IAAI,SAAS,GAAG,qBAAS,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;wBAC5C,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBAC/B,CAAC;gBACL,CAAC;YACL,CAAC;QACL,OAAO,UAAU,CAAC;IACtB,CAAC;IACQ,cAAc,CAAC,KAA8B;QAElD,IAAI,KAAK,GAAG,IAAI,+BAAa,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAC5C,IAAI,UAAU,GAAG,IAAI,0BAAQ,CAAC,KAAK,EAAE,IAAI,gCAAc,CAAC,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,gCAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;QAEhI,IAAI,GAAG,GAAU,EAAE,CAAC;QAEpB,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;YAC3B,KAAK,GAAG,CAAC,UAAU,CAAC,CAAC;QAEzB,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YAE/B,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;QAEH,OAAO,GAAG,CAAC;IACf,CAAC;IACY,IAAI,CAAwC,GAAyB,EAAE,SAAiB,EAAE,cAAoD,EAAE,UAAmC;;YAE5L,IAAI,CAAC,UAAU;gBACX,UAAU,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACxB,IAAI,KAAK,GAAG,GAAG,CAAC,IAAI,CAAU,SAAS,CAAC,CAAC;YACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EACrC,CAAC;gBACG,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBAClC,IAAI,OAAO,GAAG,MAAM,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;gBAC5D,IAAI,OAAO,KAAK,IAAI;oBAChB,MAAM,cAAc,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;;oBAExC,MAAM,cAAc,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAChD,CAAC;QACL,CAAC;KAAA;CACJ;AAtJD,sDAsJC"}
package/package.json CHANGED
@@ -8,7 +8,7 @@
8
8
  "framework": "npm",
9
9
  "application": "package",
10
10
  "private": false,
11
- "version": "1.4.9",
11
+ "version": "1.4.11",
12
12
  "author": "Amir Abolhasani",
13
13
  "license": "MIT",
14
14
  "main": "./dist/index.js",
@@ -17,9 +17,9 @@
17
17
  "build": ""
18
18
  },
19
19
  "dependencies": {
20
- "@types/node": "^24.3.0",
21
- "namirasoft-core": "^1.4.81",
22
- "namirasoft-node": "^1.4.114",
20
+ "@types/node": "^24.10.1",
21
+ "namirasoft-core": "^1.4.109",
22
+ "namirasoft-node": "^1.4.130",
23
23
  "sequelize": "^6.37.7"
24
24
  }
25
25
  }
@@ -4,7 +4,14 @@ export abstract class BasePostgreSQLDatabase extends BaseSequelizeDatabase
4
4
  {
5
5
  constructor(host: string, port: number, name: string, user: string, pass: string, logging: boolean = false)
6
6
  {
7
- super('postgres', host, port, name, user, pass, logging);
7
+ let getConnectionString = () =>
8
+ {
9
+ let hosts = host.split(",");
10
+ if (hosts.length > 1)
11
+ return `postgres://${user}:${pass}@${host}:${port}/${name}`;
12
+ return "";
13
+ };
14
+ super('postgres', host, port, name, user, pass, logging, getConnectionString);
8
15
  }
9
16
  override getType()
10
17
  {
@@ -1,12 +1,10 @@
1
- import { Logger } from "namirasoft-log";
2
- import { Sequelize, Dialect, Op, WhereOptions, Order } from "sequelize";
3
- import { BaseDatabase, BaseFilterItemBuilder_JoinTable } from "namirasoft-node";
4
1
  import { BaseMetaColumn, BaseMetaTable, FilterItem, SortItem } from "namirasoft-core";
5
- import { BaseSequelizeTable } from "./BaseSequelizeTable";
6
- import { BaseFilterItemBuilderSequelize } from "./BaseFilterItemBuilderSequelize";
2
+ import { Logger } from "namirasoft-log";
3
+ import { BaseApplication, BaseDatabase, BaseFilterItemBuilder_JoinTable } from "namirasoft-node";
7
4
  import { VariableType } from "namirasoft-schema";
8
- import { BaseApplication } from "namirasoft-node";
9
- import { Transaction } from "sequelize";
5
+ import { Dialect, Op, Order, Sequelize, Transaction, WhereOptions } from "sequelize";
6
+ import { BaseFilterItemBuilderSequelize } from "./BaseFilterItemBuilderSequelize";
7
+ import { BaseSequelizeTable } from "./BaseSequelizeTable";
10
8
 
11
9
  export interface BaseSequelizeDatabaseSeedable<Model>
12
10
  {
@@ -20,23 +18,34 @@ export abstract class BaseSequelizeDatabase extends BaseDatabase
20
18
  public sequelize: Sequelize;
21
19
  private dialect: string;
22
20
  private name: string;
23
- constructor(dialect: Dialect, host: string, port: number, name: string, user: string, pass: string, logging: boolean = false)
21
+ constructor(dialect: Dialect, host: string, port: number, name: string, user: string, pass: string, logging: boolean = false, getConnectionString?: () => string)
24
22
  {
25
23
  super();
26
- this.sequelize = new Sequelize(
27
- name,
28
- user,
29
- pass,
30
- {
24
+ let connectionString = getConnectionString?.();
25
+ if (connectionString)
26
+ this.sequelize = new Sequelize({
31
27
  dialect,
32
- host,
33
- port,
28
+ dialectOptions: {
29
+ connectionString
30
+ },
34
31
  logging,
35
- pool: {
36
- min: 2,
37
- max: 10,
38
- }
32
+ pool: { min: 2, max: 10 }
39
33
  });
34
+ else
35
+ this.sequelize = new Sequelize(
36
+ name,
37
+ user,
38
+ pass,
39
+ {
40
+ dialect,
41
+ host,
42
+ port,
43
+ logging,
44
+ pool: {
45
+ min: 2,
46
+ max: 10,
47
+ }
48
+ });
40
49
 
41
50
  this.dialect = dialect;
42
51
  this.name = name;
@@ -69,6 +78,10 @@ export abstract class BaseSequelizeDatabase extends BaseDatabase
69
78
  }
70
79
  return false;
71
80
  }
81
+ async close()
82
+ {
83
+ this.sequelize?.close();
84
+ }
72
85
  async startTransaction<T>(handler: (trx: Transaction) => Promise<T>, trx: Transaction | null): Promise<T>
73
86
  {
74
87
  if (trx)