@furystack/sequelize-store 1.1.1 → 2.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.
@@ -14,6 +14,7 @@ class SequelizeStore {
14
14
  this.initLock = new semaphore_async_await_1.default(1);
15
15
  this.primaryKey = options.primaryKey;
16
16
  this.model = options.model;
17
+ this.sequelizeModel = options.sequelizeModel;
17
18
  }
18
19
  async getModel() {
19
20
  if (this.initializedModel) {
@@ -29,8 +30,8 @@ class SequelizeStore {
29
30
  await this.options.initModel(client);
30
31
  await client.sync();
31
32
  }
32
- const model = client.model(this.options.model.name);
33
- this.initializedModel = model;
33
+ const model = client.model(this.options.sequelizeModel.name);
34
+ this.initializedModel = this.sequelizeModel;
34
35
  return model;
35
36
  }
36
37
  finally {
@@ -1 +1 @@
1
- {"version":3,"file":"sequelize-store.js","sourceRoot":"","sources":["../src/sequelize-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sequelize-store.js","sourceRoot":"","sources":["../src/sequelize-store.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const core_1 = require("@furystack/core");
4
+ const core_2 = require("@furystack/core");
4
5
  const store_manager_helpers_1 = require("./store-manager-helpers");
5
6
  const sequelize_1 = require("sequelize");
6
7
  const utils_1 = require("@furystack/utils");
@@ -15,13 +16,14 @@ jest.mock('uuid', () => {
15
16
  class TestSequelizeClass extends sequelize_1.Model {
16
17
  }
17
18
  describe('Sequelize Store', () => {
18
- (0, core_1.createStoreTest)({
19
+ (0, core_2.createStoreTest)({
19
20
  typeName: 'sequelize-store',
20
21
  skipRegexTests: true,
21
22
  createStore: (i) => {
22
23
  (0, store_manager_helpers_1.useSequelize)({
23
24
  injector: i,
24
- model: TestSequelizeClass,
25
+ model: core_1.TestClass,
26
+ sequelizeModel: TestSequelizeClass,
25
27
  primaryKey: 'id',
26
28
  options: {
27
29
  dialect: 'sqlite',
@@ -56,7 +58,7 @@ describe('Sequelize Store', () => {
56
58
  }, { sequelize, timestamps: false });
57
59
  },
58
60
  });
59
- const store = i.getInstance(core_1.StoreManager).getStoreFor(TestSequelizeClass, 'id');
61
+ const store = i.getInstance(core_2.StoreManager).getStoreFor(core_1.TestClass, 'id');
60
62
  return store;
61
63
  },
62
64
  });
@@ -77,7 +79,8 @@ describe('Sequelize Store', () => {
77
79
  await (0, utils_1.usingAsync)(new inject_1.Injector(), async (i) => {
78
80
  (0, store_manager_helpers_1.useSequelize)({
79
81
  injector: i,
80
- model: TestSequelizeClass,
82
+ model: core_1.TestClass,
83
+ sequelizeModel: TestSequelizeClass,
81
84
  primaryKey: 'id',
82
85
  options: {
83
86
  dialect: 'sqlite',
@@ -114,8 +117,8 @@ describe('Sequelize Store', () => {
114
117
  },
115
118
  });
116
119
  const store = i
117
- .getInstance(core_1.StoreManager)
118
- .getStoreFor(TestSequelizeClass, 'id');
120
+ .getInstance(core_2.StoreManager)
121
+ .getStoreFor(core_1.TestClass, 'id');
119
122
  const model1Promise = store.getModel();
120
123
  const model2 = await store.getModel();
121
124
  const model1 = await model1Promise;
@@ -128,7 +131,8 @@ describe('Sequelize Store', () => {
128
131
  await (0, utils_1.usingAsync)(new inject_1.Injector(), async (i) => {
129
132
  (0, store_manager_helpers_1.useSequelize)({
130
133
  injector: i,
131
- model: TestSequelizeClass,
134
+ model: core_1.TestClass,
135
+ sequelizeModel: TestSequelizeClass,
132
136
  primaryKey: 'id',
133
137
  options: {
134
138
  dialect: 'sqlite',
@@ -140,8 +144,8 @@ describe('Sequelize Store', () => {
140
144
  },
141
145
  });
142
146
  const store = i
143
- .getInstance(core_1.StoreManager)
144
- .getStoreFor(TestSequelizeClass, 'id');
147
+ .getInstance(core_2.StoreManager)
148
+ .getStoreFor(core_1.TestClass, 'id');
145
149
  expect.assertions(1);
146
150
  try {
147
151
  await store.getModel();
@@ -1 +1 @@
1
- {"version":3,"file":"sequelize-store.spec.js","sourceRoot":"","sources":["../src/sequelize-store.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sequelize-store.spec.js","sourceRoot":"","sources":["../src/sequelize-store.spec.ts"],"names":[],"mappings":";;AAAA,0CAA2C;AAC3C,0CAA+D;AAC/D,mEAAsD;AACtD,yCAA4C;AAC5C,4CAAyD;AACzD,8CAA4C;AAC5C,yEAAmE;AAGnE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE;IACrB,OAAO;QACL,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC;QACzB,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC;KAC1B,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,MAAM,kBAAmB,SAAQ,iBAA2B;CAQ3D;AAED,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,IAAA,sBAAe,EAAC;QACd,QAAQ,EAAE,iBAAiB;QAC3B,cAAc,EAAE,IAAI;QACpB,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE;YACjB,IAAA,oCAAY,EAAC;gBACX,QAAQ,EAAE,CAAC;gBACX,KAAK,EAAE,gBAAS;gBAChB,cAAc,EAAE,kBAAkB;gBAClC,UAAU,EAAE,IAAI;gBAChB,OAAO,EAAE;oBACP,OAAO,EAAE,QAAQ;oBACjB,OAAO,EAAE,UAAU;oBACnB,OAAO,EAAE,KAAK;iBACf;gBACD,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE;oBAC7B,kBAAkB,CAAC,IAAI,CACrB;wBACE,EAAE,EAAE;4BACF,IAAI,EAAE,qBAAS,CAAC,OAAO;4BACvB,aAAa,EAAE,IAAI;4BACnB,UAAU,EAAE,IAAI;yBACjB;wBACD,YAAY,EAAE;4BACZ,IAAI,EAAE,qBAAS,CAAC,MAAM;yBACvB;wBACD,YAAY,EAAE;4BACZ,IAAI,EAAE,qBAAS,CAAC,MAAM;yBACvB;wBACD,YAAY,EAAE;4BACZ,IAAI,EAAE,qBAAS,CAAC,OAAO;yBACxB;wBACD,YAAY,EAAE;4BACZ,IAAI,EAAE,qBAAS,CAAC,OAAO;yBACxB;wBACD,YAAY,EAAE;4BACZ,IAAI,EAAE,qBAAS,CAAC,OAAO;yBACxB;wBACD,SAAS,EAAE;4BACT,IAAI,EAAE,qBAAS,CAAC,IAAI;yBACrB;qBACF,EACD,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,CACjC,CAAA;gBACH,CAAC;aACF,CAAC,CAAA;YACF,MAAM,KAAK,GAAG,CAAC,CAAC,WAAW,CAAC,mBAAY,CAAC,CAAC,WAAW,CAAC,gBAAS,EAAE,IAAI,CAAC,CAAA;YACtE,OAAO,KAAK,CAAA;QACd,CAAC;KACF,CAAC,CAAA;IAEF,EAAE,CAAC,qEAAqE,EAAE,KAAK,IAAI,EAAE;QACnF,MAAM,IAAA,kBAAU,EAAC,IAAI,iBAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;YAC3C,MAAM,OAAO,GAAG,CAAC,CAAC,WAAW,CAAC,iDAAsB,CAAC,CAAA;YACrD,MAAM,QAAQ,GAAG;gBACf,OAAO,EAAE,QAAQ;gBACjB,OAAO,EAAE,UAAU;gBACnB,OAAO,EAAE,KAAK;aACN,CAAA;YACV,MAAM,OAAO,GAAG,OAAO,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAA;YACpD,MAAM,OAAO,GAAG,OAAO,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAA;YACpD,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC/B,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;QACnE,MAAM,IAAA,kBAAU,EAAC,IAAI,iBAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;YAC3C,IAAA,oCAAY,EAAC;gBACX,QAAQ,EAAE,CAAC;gBACX,KAAK,EAAE,gBAAS;gBAChB,cAAc,EAAE,kBAAkB;gBAClC,UAAU,EAAE,IAAI;gBAChB,OAAO,EAAE;oBACP,OAAO,EAAE,QAAQ;oBACjB,OAAO,EAAE,UAAU;oBACnB,OAAO,EAAE,KAAK;iBACf;gBACD,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE;oBAC7B,MAAM,IAAA,kBAAU,EAAC,GAAG,CAAC,CAAA;oBACrB,kBAAkB,CAAC,IAAI,CACrB;wBACE,EAAE,EAAE;4BACF,IAAI,EAAE,qBAAS,CAAC,OAAO;4BACvB,aAAa,EAAE,IAAI;4BACnB,UAAU,EAAE,IAAI;yBACjB;wBACD,YAAY,EAAE;4BACZ,IAAI,EAAE,qBAAS,CAAC,MAAM;yBACvB;wBACD,YAAY,EAAE;4BACZ,IAAI,EAAE,qBAAS,CAAC,MAAM;yBACvB;wBACD,YAAY,EAAE;4BACZ,IAAI,EAAE,qBAAS,CAAC,OAAO;yBACxB;wBACD,YAAY,EAAE;4BACZ,IAAI,EAAE,qBAAS,CAAC,OAAO;yBACxB;wBACD,YAAY,EAAE;4BACZ,IAAI,EAAE,qBAAS,CAAC,OAAO;yBACxB;wBACD,SAAS,EAAE;4BACT,IAAI,EAAE,qBAAS,CAAC,IAAI;yBACrB;qBACF,EACD,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,CACjC,CAAA;gBACH,CAAC;aACF,CAAC,CAAA;YACF,MAAM,KAAK,GAAwD,CAAC;iBACjE,WAAW,CAAC,mBAAY,CAAC;iBACzB,WAAW,CAAC,gBAAS,EAAE,IAAI,CAAC,CAAA;YAE/B,MAAM,aAAa,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAA;YACtC,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAA;YAErC,MAAM,MAAM,GAAG,MAAM,aAAa,CAAA;YAElC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YAC3B,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAA;YACrC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC7B,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;QACtE,MAAM,IAAA,kBAAU,EAAC,IAAI,iBAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;YAC3C,IAAA,oCAAY,EAAC;gBACX,QAAQ,EAAE,CAAC;gBACX,KAAK,EAAE,gBAAS;gBAChB,cAAc,EAAE,kBAAkB;gBAClC,UAAU,EAAE,IAAI;gBAChB,OAAO,EAAE;oBACP,OAAO,EAAE,QAAQ;oBACjB,OAAO,EAAE,UAAU;oBACnB,OAAO,EAAE,KAAK;iBACf;gBACD,SAAS,EAAE,KAAK,IAAI,EAAE;oBACpB,4BAA4B;gBAC9B,CAAC;aACF,CAAC,CAAA;YACF,MAAM,KAAK,GAAwD,CAAC;iBACjE,WAAW,CAAC,mBAAY,CAAC;iBACzB,WAAW,CAAC,gBAAS,EAAE,IAAI,CAAC,CAAA;YAE/B,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;YACpB,IAAI;gBACF,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAA;aACvB;YAAC,OAAO,KAAK,EAAE;gBACd,MAAM,CAAE,KAAe,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAA,CAAC,8BAA8B;aAChH;QACH,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -4,13 +4,14 @@ exports.useSequelize = void 0;
4
4
  const core_1 = require("@furystack/core");
5
5
  const sequelize_client_factory_1 = require("./sequelize-client-factory");
6
6
  const sequelize_store_1 = require("./sequelize-store");
7
- const useSequelize = function ({ injector, model, primaryKey, options, initModel, }) {
7
+ const useSequelize = function ({ injector, model, sequelizeModel, primaryKey, options, initModel, }) {
8
8
  const clientFactory = injector.getInstance(sequelize_client_factory_1.SequelizeClientFactory);
9
9
  const store = new sequelize_store_1.SequelizeStore({
10
10
  model,
11
11
  primaryKey,
12
12
  getSequelizeClient: () => clientFactory.getSequelizeClient(options),
13
13
  initModel,
14
+ sequelizeModel,
14
15
  });
15
16
  (0, core_1.addStore)(injector, store);
16
17
  };
@@ -1 +1 @@
1
- {"version":3,"file":"store-manager-helpers.js","sourceRoot":"","sources":["../src/store-manager-helpers.ts"],"names":[],"mappings":";;;AAAA,0CAA0C;AAG1C,yEAAmE;AACnE,uDAAkD;AAE3C,MAAM,YAAY,GAAG,UAA2B,EACrD,QAAQ,EACR,KAAK,EACL,UAAU,EACV,OAAO,EACP,SAAS,GAoBV;IACC,MAAM,aAAa,GAAG,QAAQ,CAAC,WAAW,CAAC,iDAAsB,CAAC,CAAA;IAClE,MAAM,KAAK,GAAG,IAAI,gCAAc,CAAC;QAC/B,KAAK;QACL,UAAU;QACV,kBAAkB,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,kBAAkB,CAAC,OAAO,CAAC;QACnE,SAAS;KACV,CAAC,CAAA;IACF,IAAA,eAAQ,EAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;AAC3B,CAAC,CAAA;AAlCY,QAAA,YAAY,gBAkCxB"}
1
+ {"version":3,"file":"store-manager-helpers.js","sourceRoot":"","sources":["../src/store-manager-helpers.ts"],"names":[],"mappings":";;;AAAA,0CAA0C;AAG1C,yEAAmE;AACnE,uDAAkD;AAE3C,MAAM,YAAY,GAAG,UAAkF,EAC5G,QAAQ,EACR,KAAK,EACL,cAAc,EACd,UAAU,EACV,OAAO,EACP,SAAS,GA0BV;IACC,MAAM,aAAa,GAAG,QAAQ,CAAC,WAAW,CAAC,iDAAsB,CAAC,CAAA;IAClE,MAAM,KAAK,GAAG,IAAI,gCAAc,CAAC;QAC/B,KAAK;QACL,UAAU;QACV,kBAAkB,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,kBAAkB,CAAC,OAAO,CAAC;QACnE,SAAS;QACT,cAAc;KACf,CAAC,CAAA;IACF,IAAA,eAAQ,EAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;AAC3B,CAAC,CAAA;AA1CY,QAAA,YAAY,gBA0CxB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@furystack/sequelize-store",
3
- "version": "1.1.1",
3
+ "version": "2.1.0",
4
4
  "description": "Sequelize-based Store implementation for FuryStack",
5
5
  "main": "dist/index.js",
6
6
  "files": [
@@ -27,15 +27,15 @@
27
27
  },
28
28
  "homepage": "https://github.com/furystack/furystack",
29
29
  "dependencies": {
30
- "@furystack/core": "^11.1.1",
31
- "@furystack/inject": "^7.1.1",
32
- "@furystack/logging": "^3.1.1",
33
- "@furystack/utils": "^3.1.1",
30
+ "@furystack/core": "^11.2.0",
31
+ "@furystack/inject": "^7.1.2",
32
+ "@furystack/logging": "^3.1.2",
33
+ "@furystack/utils": "^3.1.2",
34
34
  "semaphore-async-await": "^1.5.1",
35
- "sequelize": "^6.25.3"
35
+ "sequelize": "^6.25.4"
36
36
  },
37
37
  "devDependencies": {
38
- "@types/jest": "^29.2.1",
38
+ "@types/jest": "^29.2.2",
39
39
  "@types/node": "^18.11.9",
40
40
  "sqlite3": "5.1.2",
41
41
  "uuid": "^8.3.2"
@@ -1,4 +1,4 @@
1
- import type { TestClass } from '@furystack/core'
1
+ import { TestClass } from '@furystack/core'
2
2
  import { StoreManager, createStoreTest } from '@furystack/core'
3
3
  import { useSequelize } from './store-manager-helpers'
4
4
  import { DataTypes, Model } from 'sequelize'
@@ -14,7 +14,7 @@ jest.mock('uuid', () => {
14
14
  }
15
15
  })
16
16
 
17
- class TestSequelizeClass extends Model implements TestClass {
17
+ class TestSequelizeClass extends Model<TestClass, TestClass> implements TestClass {
18
18
  id!: number
19
19
  stringValue1!: string
20
20
  stringValue2!: string
@@ -31,7 +31,8 @@ describe('Sequelize Store', () => {
31
31
  createStore: (i) => {
32
32
  useSequelize({
33
33
  injector: i,
34
- model: TestSequelizeClass,
34
+ model: TestClass,
35
+ sequelizeModel: TestSequelizeClass,
35
36
  primaryKey: 'id',
36
37
  options: {
37
38
  dialect: 'sqlite',
@@ -69,7 +70,7 @@ describe('Sequelize Store', () => {
69
70
  )
70
71
  },
71
72
  })
72
- const store = i.getInstance(StoreManager).getStoreFor(TestSequelizeClass, 'id')
73
+ const store = i.getInstance(StoreManager).getStoreFor(TestClass, 'id')
73
74
  return store
74
75
  },
75
76
  })
@@ -92,7 +93,8 @@ describe('Sequelize Store', () => {
92
93
  await usingAsync(new Injector(), async (i) => {
93
94
  useSequelize({
94
95
  injector: i,
95
- model: TestSequelizeClass,
96
+ model: TestClass,
97
+ sequelizeModel: TestSequelizeClass,
96
98
  primaryKey: 'id',
97
99
  options: {
98
100
  dialect: 'sqlite',
@@ -131,9 +133,9 @@ describe('Sequelize Store', () => {
131
133
  )
132
134
  },
133
135
  })
134
- const store: SequelizeStore<TestSequelizeClass, 'id'> = i
136
+ const store: SequelizeStore<TestClass, TestSequelizeClass, 'id'> = i
135
137
  .getInstance(StoreManager)
136
- .getStoreFor(TestSequelizeClass, 'id')
138
+ .getStoreFor(TestClass, 'id')
137
139
 
138
140
  const model1Promise = store.getModel()
139
141
  const model2 = await store.getModel()
@@ -150,7 +152,8 @@ describe('Sequelize Store', () => {
150
152
  await usingAsync(new Injector(), async (i) => {
151
153
  useSequelize({
152
154
  injector: i,
153
- model: TestSequelizeClass,
155
+ model: TestClass,
156
+ sequelizeModel: TestSequelizeClass,
154
157
  primaryKey: 'id',
155
158
  options: {
156
159
  dialect: 'sqlite',
@@ -161,9 +164,9 @@ describe('Sequelize Store', () => {
161
164
  // won't init the model here
162
165
  },
163
166
  })
164
- const store: SequelizeStore<TestSequelizeClass, 'id'> = i
167
+ const store: SequelizeStore<TestClass, TestSequelizeClass, 'id'> = i
165
168
  .getInstance(StoreManager)
166
- .getStoreFor(TestSequelizeClass, 'id')
169
+ .getStoreFor(TestClass, 'id')
167
170
 
168
171
  expect.assertions(1)
169
172
  try {
@@ -10,11 +10,16 @@ import type { Constructable } from '@furystack/inject'
10
10
  import type { Sequelize, ModelStatic, Model, WhereOptions, Attributes } from 'sequelize'
11
11
  import Semaphore from 'semaphore-async-await'
12
12
 
13
- export interface SequelizeStoreSettings<T extends Model, TPrimaryKey extends keyof T> {
13
+ export interface SequelizeStoreSettings<T extends object, M extends Model<T>, TPrimaryKey extends keyof T> {
14
+ /**
15
+ * The Model to use
16
+ */
17
+ model: Constructable<T>
18
+
14
19
  /**
15
20
  * The Sequelize Model class
16
21
  */
17
- model: ModelStatic<T> & Constructable<T>
22
+ sequelizeModel: ModelStatic<M>
18
23
  /**
19
24
  * The Primary key field
20
25
  */
@@ -32,16 +37,20 @@ export interface SequelizeStoreSettings<T extends Model, TPrimaryKey extends key
32
37
  /**
33
38
  * TypeORM Store implementation for FuryStack
34
39
  */
35
- export class SequelizeStore<T extends Model, TPrimaryKey extends keyof T> implements PhysicalStore<T, TPrimaryKey> {
40
+ export class SequelizeStore<T extends object, M extends Model<T>, TPrimaryKey extends keyof T>
41
+ implements PhysicalStore<T, TPrimaryKey>
42
+ {
36
43
  public readonly primaryKey: TPrimaryKey
37
44
 
38
- public readonly model: ModelStatic<T> & Constructable<T>
45
+ public readonly model: Constructable<T>
46
+
47
+ public readonly sequelizeModel: ModelStatic<M>
39
48
 
40
49
  private initLock = new Semaphore(1)
41
50
 
42
- private initializedModel?: ModelStatic<T>
51
+ private initializedModel?: ModelStatic<M>
43
52
 
44
- public async getModel(): Promise<ModelStatic<T>> {
53
+ public async getModel(): Promise<ModelStatic<M>> {
45
54
  if (this.initializedModel) {
46
55
  return this.initializedModel
47
56
  }
@@ -57,18 +66,19 @@ export class SequelizeStore<T extends Model, TPrimaryKey extends keyof T> implem
57
66
  await client.sync()
58
67
  }
59
68
 
60
- const model = client.model(this.options.model.name) as ModelStatic<T>
69
+ const model = client.model(this.options.sequelizeModel.name) as ModelStatic<M>
61
70
 
62
- this.initializedModel = model
71
+ this.initializedModel = this.sequelizeModel
63
72
  return model
64
73
  } finally {
65
74
  this.initLock.release()
66
75
  }
67
76
  }
68
77
 
69
- constructor(private readonly options: SequelizeStoreSettings<T, TPrimaryKey>) {
78
+ constructor(private readonly options: SequelizeStoreSettings<T, M, TPrimaryKey>) {
70
79
  this.primaryKey = options.primaryKey
71
80
  this.model = options.model
81
+ this.sequelizeModel = options.sequelizeModel
72
82
  }
73
83
  public async add(...entries: Array<WithOptionalId<T, TPrimaryKey>>): Promise<CreateResult<T>> {
74
84
  const model = await this.getModel()
@@ -105,7 +115,7 @@ export class SequelizeStore<T extends Model, TPrimaryKey extends keyof T> implem
105
115
 
106
116
  const result = await model.findAll({
107
117
  where: filter.filter as WhereOptions<T>,
108
- attributes: filter.select as Attributes<T>,
118
+ attributes: filter.select as Attributes<any>,
109
119
  order,
110
120
  limit: filter.top,
111
121
  offset: filter.skip,
@@ -1,12 +1,13 @@
1
1
  import { addStore } from '@furystack/core'
2
- import type { Injector } from '@furystack/inject'
3
- import type { Options, Model, Sequelize, ModelStatic } from 'sequelize'
2
+ import type { Constructable, Injector } from '@furystack/inject'
3
+ import type { Options, Sequelize, ModelStatic, Model } from 'sequelize'
4
4
  import { SequelizeClientFactory } from './sequelize-client-factory'
5
5
  import { SequelizeStore } from './sequelize-store'
6
6
 
7
- export const useSequelize = function <T extends Model>({
7
+ export const useSequelize = function <T extends object, M extends ModelStatic<Model<T>>, Key extends keyof T>({
8
8
  injector,
9
9
  model,
10
+ sequelizeModel,
10
11
  primaryKey,
11
12
  options,
12
13
  initModel,
@@ -15,11 +16,17 @@ export const useSequelize = function <T extends Model>({
15
16
  /**
16
17
  * The constructable model class
17
18
  */
18
- model: ModelStatic<T>
19
+ model: Constructable<T>
20
+
21
+ /**
22
+ * The Sequelize Model class
23
+ */
24
+ sequelizeModel: M
25
+
19
26
  /**
20
27
  * The name of the Primary Key property
21
28
  */
22
- primaryKey: keyof T
29
+ primaryKey: Key
23
30
  /**
24
31
  * Optional options for the MongoDb Client
25
32
  */
@@ -36,6 +43,7 @@ export const useSequelize = function <T extends Model>({
36
43
  primaryKey,
37
44
  getSequelizeClient: () => clientFactory.getSequelizeClient(options),
38
45
  initModel,
46
+ sequelizeModel,
39
47
  })
40
48
  addStore(injector, store)
41
49
  }
@@ -1,11 +1,15 @@
1
1
  import type { FindOptions, PhysicalStore, PartialResult, FilterType, WithOptionalId, CreateResult } from '@furystack/core';
2
2
  import type { Constructable } from '@furystack/inject';
3
3
  import type { Sequelize, ModelStatic, Model } from 'sequelize';
4
- export interface SequelizeStoreSettings<T extends Model, TPrimaryKey extends keyof T> {
4
+ export interface SequelizeStoreSettings<T extends object, M extends Model<T>, TPrimaryKey extends keyof T> {
5
+ /**
6
+ * The Model to use
7
+ */
8
+ model: Constructable<T>;
5
9
  /**
6
10
  * The Sequelize Model class
7
11
  */
8
- model: ModelStatic<T> & Constructable<T>;
12
+ sequelizeModel: ModelStatic<M>;
9
13
  /**
10
14
  * The Primary key field
11
15
  */
@@ -22,14 +26,15 @@ export interface SequelizeStoreSettings<T extends Model, TPrimaryKey extends key
22
26
  /**
23
27
  * TypeORM Store implementation for FuryStack
24
28
  */
25
- export declare class SequelizeStore<T extends Model, TPrimaryKey extends keyof T> implements PhysicalStore<T, TPrimaryKey> {
29
+ export declare class SequelizeStore<T extends object, M extends Model<T>, TPrimaryKey extends keyof T> implements PhysicalStore<T, TPrimaryKey> {
26
30
  private readonly options;
27
31
  readonly primaryKey: TPrimaryKey;
28
- readonly model: ModelStatic<T> & Constructable<T>;
32
+ readonly model: Constructable<T>;
33
+ readonly sequelizeModel: ModelStatic<M>;
29
34
  private initLock;
30
35
  private initializedModel?;
31
- getModel(): Promise<ModelStatic<T>>;
32
- constructor(options: SequelizeStoreSettings<T, TPrimaryKey>);
36
+ getModel(): Promise<ModelStatic<M>>;
37
+ constructor(options: SequelizeStoreSettings<T, M, TPrimaryKey>);
33
38
  add(...entries: Array<WithOptionalId<T, TPrimaryKey>>): Promise<CreateResult<T>>;
34
39
  update(id: T[TPrimaryKey], data: Partial<T>): Promise<void>;
35
40
  count(filter?: FilterType<T>): Promise<number>;
@@ -1 +1 @@
1
- {"version":3,"file":"sequelize-store.d.ts","sourceRoot":"","sources":["../src/sequelize-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,aAAa,EACb,aAAa,EACb,UAAU,EACV,cAAc,EACd,YAAY,EACb,MAAM,iBAAiB,CAAA;AACxB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAA4B,MAAM,WAAW,CAAA;AAGxF,MAAM,WAAW,sBAAsB,CAAC,CAAC,SAAS,KAAK,EAAE,WAAW,SAAS,MAAM,CAAC;IAClF;;OAEG;IACH,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAA;IACxC;;OAEG;IACH,UAAU,EAAE,WAAW,CAAA;IACvB;;OAEG;IACH,kBAAkB,EAAE,MAAM,SAAS,CAAA;IACnC;;OAEG;IACH,SAAS,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACpD;AAED;;GAEG;AACH,qBAAa,cAAc,CAAC,CAAC,SAAS,KAAK,EAAE,WAAW,SAAS,MAAM,CAAC,CAAE,YAAW,aAAa,CAAC,CAAC,EAAE,WAAW,CAAC;IAkCpG,OAAO,CAAC,QAAQ,CAAC,OAAO;IAjCpC,SAAgB,UAAU,EAAE,WAAW,CAAA;IAEvC,SAAgB,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAA;IAExD,OAAO,CAAC,QAAQ,CAAmB;IAEnC,OAAO,CAAC,gBAAgB,CAAC,CAAgB;IAE5B,QAAQ,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;gBAyBnB,OAAO,EAAE,sBAAsB,CAAC,CAAC,EAAE,WAAW,CAAC;IAI/D,GAAG,CAAC,GAAG,OAAO,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAOhF,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ3D,KAAK,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAI9C,IAAI,CAAC,OAAO,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,EAC9C,MAAM,EAAE,WAAW,CAAC,CAAC,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;IAsB/B,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAIzE,MAAM,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrD,OAAO;CAGrB"}
1
+ {"version":3,"file":"sequelize-store.d.ts","sourceRoot":"","sources":["../src/sequelize-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,aAAa,EACb,aAAa,EACb,UAAU,EACV,cAAc,EACd,YAAY,EACb,MAAM,iBAAiB,CAAA;AACxB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAA4B,MAAM,WAAW,CAAA;AAGxF,MAAM,WAAW,sBAAsB,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,SAAS,MAAM,CAAC;IACvG;;OAEG;IACH,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,CAAA;IAEvB;;OAEG;IACH,cAAc,EAAE,WAAW,CAAC,CAAC,CAAC,CAAA;IAC9B;;OAEG;IACH,UAAU,EAAE,WAAW,CAAA;IACvB;;OAEG;IACH,kBAAkB,EAAE,MAAM,SAAS,CAAA;IACnC;;OAEG;IACH,SAAS,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACpD;AAED;;GAEG;AACH,qBAAa,cAAc,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,SAAS,MAAM,CAAC,CAC3F,YAAW,aAAa,CAAC,CAAC,EAAE,WAAW,CAAC;IAqC5B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAnCpC,SAAgB,UAAU,EAAE,WAAW,CAAA;IAEvC,SAAgB,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,CAAA;IAEvC,SAAgB,cAAc,EAAE,WAAW,CAAC,CAAC,CAAC,CAAA;IAE9C,OAAO,CAAC,QAAQ,CAAmB;IAEnC,OAAO,CAAC,gBAAgB,CAAC,CAAgB;IAE5B,QAAQ,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;gBAyBnB,OAAO,EAAE,sBAAsB,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC;IAKlE,GAAG,CAAC,GAAG,OAAO,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAOhF,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ3D,KAAK,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAI9C,IAAI,CAAC,OAAO,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,EAC9C,MAAM,EAAE,WAAW,CAAC,CAAC,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;IAsB/B,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAIzE,MAAM,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrD,OAAO;CAGrB"}
@@ -1,15 +1,19 @@
1
- import type { Injector } from '@furystack/inject';
2
- import type { Options, Model, Sequelize, ModelStatic } from 'sequelize';
3
- export declare const useSequelize: <T extends Model<any, any>>({ injector, model, primaryKey, options, initModel, }: {
1
+ import type { Constructable, Injector } from '@furystack/inject';
2
+ import type { Options, Sequelize, ModelStatic, Model } from 'sequelize';
3
+ export declare const useSequelize: <T extends object, M extends ModelStatic<Model<T, T>>, Key extends keyof T>({ injector, model, sequelizeModel, primaryKey, options, initModel, }: {
4
4
  injector: Injector;
5
5
  /**
6
6
  * The constructable model class
7
7
  */
8
- model: ModelStatic<T>;
8
+ model: Constructable<T>;
9
+ /**
10
+ * The Sequelize Model class
11
+ */
12
+ sequelizeModel: M;
9
13
  /**
10
14
  * The name of the Primary Key property
11
15
  */
12
- primaryKey: keyof T;
16
+ primaryKey: Key;
13
17
  /**
14
18
  * Optional options for the MongoDb Client
15
19
  */
@@ -1 +1 @@
1
- {"version":3,"file":"store-manager-helpers.d.ts","sourceRoot":"","sources":["../src/store-manager-helpers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAIvE,eAAO,MAAM,YAAY;cAOb,QAAQ;IAClB;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;aACM,OAAO;IAChB;;OAEG;6BAEqB,SAAS,KAAK,QAAQ,IAAI,CAAC;UAUpD,CAAA"}
1
+ {"version":3,"file":"store-manager-helpers.d.ts","sourceRoot":"","sources":["../src/store-manager-helpers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAChE,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,WAAW,CAAA;AAIvE,eAAO,MAAM,YAAY;cAQb,QAAQ;IAClB;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAEH;;OAEG;aACM,OAAO;IAChB;;OAEG;6BAEqB,SAAS,KAAK,QAAQ,IAAI,CAAC;UAWpD,CAAA"}