@furystack/sequelize-store 1.0.15 → 1.0.17
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.
- package/dist/sequelize-client-factory.js +6 -28
- package/dist/sequelize-client-factory.js.map +1 -1
- package/dist/sequelize-store.js +1 -4
- package/dist/sequelize-store.js.map +1 -1
- package/dist/sequelize-store.spec.js +94 -0
- package/dist/sequelize-store.spec.js.map +1 -1
- package/dist/store-manager-helpers.js +1 -1
- package/dist/store-manager-helpers.js.map +1 -1
- package/package.json +9 -9
- package/src/sequelize-client-factory.ts +6 -24
- package/src/sequelize-store.spec.ts +104 -0
- package/src/sequelize-store.ts +3 -7
- package/src/store-manager-helpers.ts +1 -1
- package/types/sequelize-client-factory.d.ts +1 -2
- package/types/sequelize-client-factory.d.ts.map +1 -1
- package/types/sequelize-store.d.ts +1 -1
- package/types/sequelize-store.d.ts.map +1 -1
|
@@ -5,14 +5,10 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
5
5
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
6
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
7
|
};
|
|
8
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
9
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
10
|
-
};
|
|
11
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
9
|
exports.SequelizeClientFactory = void 0;
|
|
13
10
|
const inject_1 = require("@furystack/inject");
|
|
14
11
|
const sequelize_1 = require("sequelize");
|
|
15
|
-
const semaphore_async_await_1 = __importDefault(require("semaphore-async-await"));
|
|
16
12
|
const operatorsAliases = {
|
|
17
13
|
$eq: sequelize_1.Op.eq,
|
|
18
14
|
$ne: sequelize_1.Op.ne,
|
|
@@ -59,38 +55,20 @@ const operatorsAliases = {
|
|
|
59
55
|
let SequelizeClientFactory = class SequelizeClientFactory {
|
|
60
56
|
constructor() {
|
|
61
57
|
this.connections = new Map();
|
|
62
|
-
this.connectionLock = new semaphore_async_await_1.default(1);
|
|
63
58
|
}
|
|
64
59
|
async dispose() {
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
await Promise.all([...this.connections.values()].map((c) => c.close()));
|
|
68
|
-
this.connections.clear();
|
|
69
|
-
}
|
|
70
|
-
finally {
|
|
71
|
-
this.connectionLock.release();
|
|
72
|
-
}
|
|
60
|
+
await Promise.all([...this.connections.values()].map((c) => c.close()));
|
|
61
|
+
this.connections.clear();
|
|
73
62
|
}
|
|
74
|
-
|
|
63
|
+
getSequelizeClient(options) {
|
|
75
64
|
const key = JSON.stringify(options);
|
|
76
65
|
const existing = this.connections.get(key);
|
|
77
66
|
if (existing) {
|
|
78
67
|
return existing;
|
|
79
68
|
}
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
if (existingCreated) {
|
|
84
|
-
return existingCreated;
|
|
85
|
-
}
|
|
86
|
-
// const client = await connect(url, options)
|
|
87
|
-
const client = new sequelize_1.Sequelize({ ...options, operatorsAliases });
|
|
88
|
-
this.connections.set(key, client);
|
|
89
|
-
return client;
|
|
90
|
-
}
|
|
91
|
-
finally {
|
|
92
|
-
this.connectionLock.release();
|
|
93
|
-
}
|
|
69
|
+
const client = new sequelize_1.Sequelize({ ...options, operatorsAliases });
|
|
70
|
+
this.connections.set(key, client);
|
|
71
|
+
return client;
|
|
94
72
|
}
|
|
95
73
|
};
|
|
96
74
|
SequelizeClientFactory = __decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sequelize-client-factory.js","sourceRoot":"","sources":["../src/sequelize-client-factory.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sequelize-client-factory.js","sourceRoot":"","sources":["../src/sequelize-client-factory.ts"],"names":[],"mappings":"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"}
|
package/dist/sequelize-store.js
CHANGED
|
@@ -24,15 +24,12 @@ class SequelizeStore {
|
|
|
24
24
|
return this.initializedModel;
|
|
25
25
|
}
|
|
26
26
|
try {
|
|
27
|
-
const client =
|
|
27
|
+
const client = this.options.getSequelizeClient();
|
|
28
28
|
if (this.options.initModel) {
|
|
29
29
|
await this.options.initModel(client);
|
|
30
30
|
await client.sync();
|
|
31
31
|
}
|
|
32
32
|
const model = client.model(this.options.model.name);
|
|
33
|
-
if (!model) {
|
|
34
|
-
throw Error(`'No initialized Sequelize model found for '${this.options.model.name}'`);
|
|
35
|
-
}
|
|
36
33
|
this.initializedModel = model;
|
|
37
34
|
return model;
|
|
38
35
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sequelize-store.js","sourceRoot":"","sources":["../src/sequelize-store.ts"],"names":[],"mappings":";;;;;;AAGA,kFAA6C;AAqB7C;;GAEG;AACH,MAAa,cAAc;
|
|
1
|
+
{"version":3,"file":"sequelize-store.js","sourceRoot":"","sources":["../src/sequelize-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
const core_1 = require("@furystack/core");
|
|
4
4
|
const store_manager_helpers_1 = require("./store-manager-helpers");
|
|
5
5
|
const sequelize_1 = require("sequelize");
|
|
6
|
+
const utils_1 = require("@furystack/utils");
|
|
7
|
+
const inject_1 = require("@furystack/inject");
|
|
8
|
+
const sequelize_client_factory_1 = require("./sequelize-client-factory");
|
|
6
9
|
jest.mock('uuid', () => {
|
|
7
10
|
return {
|
|
8
11
|
v1: jest.fn(() => 'uuid'),
|
|
@@ -57,5 +60,96 @@ describe('Sequelize Store', () => {
|
|
|
57
60
|
return store;
|
|
58
61
|
},
|
|
59
62
|
});
|
|
63
|
+
it('should return the cached sequelize client instance from the factory', async () => {
|
|
64
|
+
await (0, utils_1.usingAsync)(new inject_1.Injector(), async (i) => {
|
|
65
|
+
const factory = i.getInstance(sequelize_client_factory_1.SequelizeClientFactory);
|
|
66
|
+
const settings = {
|
|
67
|
+
dialect: 'sqlite',
|
|
68
|
+
storage: ':memory:',
|
|
69
|
+
logging: false,
|
|
70
|
+
};
|
|
71
|
+
const client1 = factory.getSequelizeClient(settings);
|
|
72
|
+
const client2 = factory.getSequelizeClient(settings);
|
|
73
|
+
expect(client1).toBe(client2);
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
it('should return the cached model from the store class', async () => {
|
|
77
|
+
await (0, utils_1.usingAsync)(new inject_1.Injector(), async (i) => {
|
|
78
|
+
(0, store_manager_helpers_1.useSequelize)({
|
|
79
|
+
injector: i,
|
|
80
|
+
model: TestSequelizeClass,
|
|
81
|
+
primaryKey: 'id',
|
|
82
|
+
options: {
|
|
83
|
+
dialect: 'sqlite',
|
|
84
|
+
storage: ':memory:',
|
|
85
|
+
logging: false,
|
|
86
|
+
},
|
|
87
|
+
initModel: async (sequelize) => {
|
|
88
|
+
await (0, utils_1.sleepAsync)(100);
|
|
89
|
+
TestSequelizeClass.init({
|
|
90
|
+
id: {
|
|
91
|
+
type: sequelize_1.DataTypes.INTEGER,
|
|
92
|
+
autoIncrement: true,
|
|
93
|
+
primaryKey: true,
|
|
94
|
+
},
|
|
95
|
+
stringValue1: {
|
|
96
|
+
type: sequelize_1.DataTypes.STRING,
|
|
97
|
+
},
|
|
98
|
+
stringValue2: {
|
|
99
|
+
type: sequelize_1.DataTypes.STRING,
|
|
100
|
+
},
|
|
101
|
+
numberValue1: {
|
|
102
|
+
type: sequelize_1.DataTypes.INTEGER,
|
|
103
|
+
},
|
|
104
|
+
numberValue2: {
|
|
105
|
+
type: sequelize_1.DataTypes.INTEGER,
|
|
106
|
+
},
|
|
107
|
+
booleanValue: {
|
|
108
|
+
type: sequelize_1.DataTypes.BOOLEAN,
|
|
109
|
+
},
|
|
110
|
+
dateValue: {
|
|
111
|
+
type: sequelize_1.DataTypes.DATE,
|
|
112
|
+
},
|
|
113
|
+
}, { sequelize, timestamps: false });
|
|
114
|
+
},
|
|
115
|
+
});
|
|
116
|
+
const store = i
|
|
117
|
+
.getInstance(core_1.StoreManager)
|
|
118
|
+
.getStoreFor(TestSequelizeClass, 'id');
|
|
119
|
+
const model1Promise = store.getModel();
|
|
120
|
+
const model2 = await store.getModel();
|
|
121
|
+
const model1 = await model1Promise;
|
|
122
|
+
expect(model2).toBe(model1);
|
|
123
|
+
const model3 = await store.getModel();
|
|
124
|
+
expect(model3).toBe(model1);
|
|
125
|
+
});
|
|
126
|
+
});
|
|
127
|
+
it('should throw if the sequelize model is not initialized', async () => {
|
|
128
|
+
await (0, utils_1.usingAsync)(new inject_1.Injector(), async (i) => {
|
|
129
|
+
(0, store_manager_helpers_1.useSequelize)({
|
|
130
|
+
injector: i,
|
|
131
|
+
model: TestSequelizeClass,
|
|
132
|
+
primaryKey: 'id',
|
|
133
|
+
options: {
|
|
134
|
+
dialect: 'sqlite',
|
|
135
|
+
storage: ':memory:',
|
|
136
|
+
logging: false,
|
|
137
|
+
},
|
|
138
|
+
initModel: async () => {
|
|
139
|
+
// won't init the model here
|
|
140
|
+
},
|
|
141
|
+
});
|
|
142
|
+
const store = i
|
|
143
|
+
.getInstance(core_1.StoreManager)
|
|
144
|
+
.getStoreFor(TestSequelizeClass, 'id');
|
|
145
|
+
expect.assertions(1);
|
|
146
|
+
try {
|
|
147
|
+
await store.getModel();
|
|
148
|
+
}
|
|
149
|
+
catch (error) {
|
|
150
|
+
expect(error.message).toBe('TestSequelizeClass has not been defined'); // will be thrown by sequelize
|
|
151
|
+
}
|
|
152
|
+
});
|
|
153
|
+
});
|
|
60
154
|
});
|
|
61
155
|
//# sourceMappingURL=sequelize-store.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sequelize-store.spec.js","sourceRoot":"","sources":["../src/sequelize-store.spec.ts"],"names":[],"mappings":";;AAAA,0CAA0E;AAC1E,mEAAsD;AACtD,yCAA4C;
|
|
1
|
+
{"version":3,"file":"sequelize-store.spec.js","sourceRoot":"","sources":["../src/sequelize-store.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@ const useSequelize = function ({ injector, model, primaryKey, options, initModel
|
|
|
9
9
|
const store = new sequelize_store_1.SequelizeStore({
|
|
10
10
|
model,
|
|
11
11
|
primaryKey,
|
|
12
|
-
getSequelizeClient:
|
|
12
|
+
getSequelizeClient: () => clientFactory.getSequelizeClient(options),
|
|
13
13
|
initModel,
|
|
14
14
|
});
|
|
15
15
|
(0, core_1.addStore)(injector, store);
|
|
@@ -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,
|
|
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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@furystack/sequelize-store",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.17",
|
|
4
4
|
"description": "Sequelize-based Store implementation for FuryStack",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"files": [
|
|
@@ -27,17 +27,17 @@
|
|
|
27
27
|
},
|
|
28
28
|
"homepage": "https://github.com/furystack/furystack",
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@furystack/core": "^11.0.
|
|
31
|
-
"@furystack/inject": "^7.0.
|
|
32
|
-
"@furystack/logging": "^3.0.
|
|
33
|
-
"@furystack/utils": "^3.0.
|
|
30
|
+
"@furystack/core": "^11.0.14",
|
|
31
|
+
"@furystack/inject": "^7.0.5",
|
|
32
|
+
"@furystack/logging": "^3.0.9",
|
|
33
|
+
"@furystack/utils": "^3.0.9",
|
|
34
34
|
"semaphore-async-await": "^1.5.1",
|
|
35
|
-
"sequelize": "^6.
|
|
35
|
+
"sequelize": "^6.23.1"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
|
-
"@types/jest": "^29.0.
|
|
39
|
-
"@types/node": "^18.7.
|
|
40
|
-
"sqlite3": "5.
|
|
38
|
+
"@types/jest": "^29.0.3",
|
|
39
|
+
"@types/node": "^18.7.23",
|
|
40
|
+
"sqlite3": "5.1.1",
|
|
41
41
|
"uuid": "^8.3.2"
|
|
42
42
|
},
|
|
43
43
|
"typings": "./types/index.d.ts"
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { Disposable } from '@furystack/utils'
|
|
2
2
|
import { Injectable } from '@furystack/inject'
|
|
3
3
|
import { Sequelize, Options, Op } from 'sequelize'
|
|
4
|
-
import Semaphore from 'semaphore-async-await'
|
|
5
4
|
|
|
6
5
|
const operatorsAliases = {
|
|
7
6
|
$eq: Op.eq,
|
|
@@ -51,37 +50,20 @@ const operatorsAliases = {
|
|
|
51
50
|
export class SequelizeClientFactory implements Disposable {
|
|
52
51
|
private connections: Map<string, Sequelize> = new Map()
|
|
53
52
|
|
|
54
|
-
private readonly connectionLock = new Semaphore(1)
|
|
55
|
-
|
|
56
53
|
public async dispose() {
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
await Promise.all([...this.connections.values()].map((c) => c.close()))
|
|
60
|
-
this.connections.clear()
|
|
61
|
-
} finally {
|
|
62
|
-
this.connectionLock.release()
|
|
63
|
-
}
|
|
54
|
+
await Promise.all([...this.connections.values()].map((c) => c.close()))
|
|
55
|
+
this.connections.clear()
|
|
64
56
|
}
|
|
65
57
|
|
|
66
|
-
public
|
|
58
|
+
public getSequelizeClient(options: Options) {
|
|
67
59
|
const key = JSON.stringify(options)
|
|
68
60
|
const existing = this.connections.get(key)
|
|
69
61
|
if (existing) {
|
|
70
62
|
return existing
|
|
71
63
|
}
|
|
72
64
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
if (existingCreated) {
|
|
77
|
-
return existingCreated
|
|
78
|
-
}
|
|
79
|
-
// const client = await connect(url, options)
|
|
80
|
-
const client = new Sequelize({ ...options, operatorsAliases })
|
|
81
|
-
this.connections.set(key, client)
|
|
82
|
-
return client
|
|
83
|
-
} finally {
|
|
84
|
-
this.connectionLock.release()
|
|
85
|
-
}
|
|
65
|
+
const client = new Sequelize({ ...options, operatorsAliases })
|
|
66
|
+
this.connections.set(key, client)
|
|
67
|
+
return client
|
|
86
68
|
}
|
|
87
69
|
}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import { StoreManager, TestClass, createStoreTest } from '@furystack/core'
|
|
2
2
|
import { useSequelize } from './store-manager-helpers'
|
|
3
3
|
import { DataTypes, Model } from 'sequelize'
|
|
4
|
+
import { sleepAsync, usingAsync } from '@furystack/utils'
|
|
5
|
+
import { Injector } from '@furystack/inject'
|
|
6
|
+
import { SequelizeClientFactory } from './sequelize-client-factory'
|
|
7
|
+
import { SequelizeStore } from './sequelize-store'
|
|
4
8
|
|
|
5
9
|
jest.mock('uuid', () => {
|
|
6
10
|
return {
|
|
@@ -68,4 +72,104 @@ describe('Sequelize Store', () => {
|
|
|
68
72
|
return store
|
|
69
73
|
},
|
|
70
74
|
})
|
|
75
|
+
|
|
76
|
+
it('should return the cached sequelize client instance from the factory', async () => {
|
|
77
|
+
await usingAsync(new Injector(), async (i) => {
|
|
78
|
+
const factory = i.getInstance(SequelizeClientFactory)
|
|
79
|
+
const settings = {
|
|
80
|
+
dialect: 'sqlite',
|
|
81
|
+
storage: ':memory:',
|
|
82
|
+
logging: false,
|
|
83
|
+
} as const
|
|
84
|
+
const client1 = factory.getSequelizeClient(settings)
|
|
85
|
+
const client2 = factory.getSequelizeClient(settings)
|
|
86
|
+
expect(client1).toBe(client2)
|
|
87
|
+
})
|
|
88
|
+
})
|
|
89
|
+
|
|
90
|
+
it('should return the cached model from the store class', async () => {
|
|
91
|
+
await usingAsync(new Injector(), async (i) => {
|
|
92
|
+
useSequelize({
|
|
93
|
+
injector: i,
|
|
94
|
+
model: TestSequelizeClass,
|
|
95
|
+
primaryKey: 'id',
|
|
96
|
+
options: {
|
|
97
|
+
dialect: 'sqlite',
|
|
98
|
+
storage: ':memory:',
|
|
99
|
+
logging: false,
|
|
100
|
+
},
|
|
101
|
+
initModel: async (sequelize) => {
|
|
102
|
+
await sleepAsync(100)
|
|
103
|
+
TestSequelizeClass.init(
|
|
104
|
+
{
|
|
105
|
+
id: {
|
|
106
|
+
type: DataTypes.INTEGER,
|
|
107
|
+
autoIncrement: true,
|
|
108
|
+
primaryKey: true,
|
|
109
|
+
},
|
|
110
|
+
stringValue1: {
|
|
111
|
+
type: DataTypes.STRING,
|
|
112
|
+
},
|
|
113
|
+
stringValue2: {
|
|
114
|
+
type: DataTypes.STRING,
|
|
115
|
+
},
|
|
116
|
+
numberValue1: {
|
|
117
|
+
type: DataTypes.INTEGER,
|
|
118
|
+
},
|
|
119
|
+
numberValue2: {
|
|
120
|
+
type: DataTypes.INTEGER,
|
|
121
|
+
},
|
|
122
|
+
booleanValue: {
|
|
123
|
+
type: DataTypes.BOOLEAN,
|
|
124
|
+
},
|
|
125
|
+
dateValue: {
|
|
126
|
+
type: DataTypes.DATE,
|
|
127
|
+
},
|
|
128
|
+
},
|
|
129
|
+
{ sequelize, timestamps: false },
|
|
130
|
+
)
|
|
131
|
+
},
|
|
132
|
+
})
|
|
133
|
+
const store: SequelizeStore<TestSequelizeClass, 'id'> = i
|
|
134
|
+
.getInstance(StoreManager)
|
|
135
|
+
.getStoreFor(TestSequelizeClass, 'id')
|
|
136
|
+
|
|
137
|
+
const model1Promise = store.getModel()
|
|
138
|
+
const model2 = await store.getModel()
|
|
139
|
+
|
|
140
|
+
const model1 = await model1Promise
|
|
141
|
+
|
|
142
|
+
expect(model2).toBe(model1)
|
|
143
|
+
const model3 = await store.getModel()
|
|
144
|
+
expect(model3).toBe(model1)
|
|
145
|
+
})
|
|
146
|
+
})
|
|
147
|
+
|
|
148
|
+
it('should throw if the sequelize model is not initialized', async () => {
|
|
149
|
+
await usingAsync(new Injector(), async (i) => {
|
|
150
|
+
useSequelize({
|
|
151
|
+
injector: i,
|
|
152
|
+
model: TestSequelizeClass,
|
|
153
|
+
primaryKey: 'id',
|
|
154
|
+
options: {
|
|
155
|
+
dialect: 'sqlite',
|
|
156
|
+
storage: ':memory:',
|
|
157
|
+
logging: false,
|
|
158
|
+
},
|
|
159
|
+
initModel: async () => {
|
|
160
|
+
// won't init the model here
|
|
161
|
+
},
|
|
162
|
+
})
|
|
163
|
+
const store: SequelizeStore<TestSequelizeClass, 'id'> = i
|
|
164
|
+
.getInstance(StoreManager)
|
|
165
|
+
.getStoreFor(TestSequelizeClass, 'id')
|
|
166
|
+
|
|
167
|
+
expect.assertions(1)
|
|
168
|
+
try {
|
|
169
|
+
await store.getModel()
|
|
170
|
+
} catch (error) {
|
|
171
|
+
expect((error as Error).message).toBe('TestSequelizeClass has not been defined') // will be thrown by sequelize
|
|
172
|
+
}
|
|
173
|
+
})
|
|
174
|
+
})
|
|
71
175
|
})
|
package/src/sequelize-store.ts
CHANGED
|
@@ -15,7 +15,7 @@ export interface SequelizeStoreSettings<T extends Model, TPrimaryKey extends key
|
|
|
15
15
|
/**
|
|
16
16
|
* Callback that returns the Sequelize client (provided by the client factory)
|
|
17
17
|
*/
|
|
18
|
-
getSequelizeClient: () =>
|
|
18
|
+
getSequelizeClient: () => Sequelize
|
|
19
19
|
/**
|
|
20
20
|
* Optional calback that will initialize the Model for the Sequelize instance
|
|
21
21
|
*/
|
|
@@ -43,18 +43,14 @@ export class SequelizeStore<T extends Model, TPrimaryKey extends keyof T> implem
|
|
|
43
43
|
return this.initializedModel
|
|
44
44
|
}
|
|
45
45
|
try {
|
|
46
|
-
const client =
|
|
46
|
+
const client = this.options.getSequelizeClient()
|
|
47
47
|
|
|
48
48
|
if (this.options.initModel) {
|
|
49
49
|
await this.options.initModel(client)
|
|
50
50
|
await client.sync()
|
|
51
51
|
}
|
|
52
52
|
|
|
53
|
-
const model = client.model(this.options.model.name) as ModelStatic<T>
|
|
54
|
-
|
|
55
|
-
if (!model) {
|
|
56
|
-
throw Error(`'No initialized Sequelize model found for '${this.options.model.name}'`)
|
|
57
|
-
}
|
|
53
|
+
const model = client.model(this.options.model.name) as ModelStatic<T>
|
|
58
54
|
|
|
59
55
|
this.initializedModel = model
|
|
60
56
|
return model
|
|
@@ -34,7 +34,7 @@ export const useSequelize = function <T extends Model>({
|
|
|
34
34
|
const store = new SequelizeStore({
|
|
35
35
|
model,
|
|
36
36
|
primaryKey,
|
|
37
|
-
getSequelizeClient:
|
|
37
|
+
getSequelizeClient: () => clientFactory.getSequelizeClient(options),
|
|
38
38
|
initModel,
|
|
39
39
|
})
|
|
40
40
|
addStore(injector, store)
|
|
@@ -5,8 +5,7 @@ import { Sequelize, Options } from 'sequelize';
|
|
|
5
5
|
*/
|
|
6
6
|
export declare class SequelizeClientFactory implements Disposable {
|
|
7
7
|
private connections;
|
|
8
|
-
private readonly connectionLock;
|
|
9
8
|
dispose(): Promise<void>;
|
|
10
|
-
getSequelizeClient(options: Options):
|
|
9
|
+
getSequelizeClient(options: Options): Sequelize;
|
|
11
10
|
}
|
|
12
11
|
//# sourceMappingURL=sequelize-client-factory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sequelize-client-factory.d.ts","sourceRoot":"","sources":["../src/sequelize-client-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAE7C,OAAO,EAAE,SAAS,EAAE,OAAO,EAAM,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"sequelize-client-factory.d.ts","sourceRoot":"","sources":["../src/sequelize-client-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAE7C,OAAO,EAAE,SAAS,EAAE,OAAO,EAAM,MAAM,WAAW,CAAA;AA2ClD;;GAEG;AACH,qBACa,sBAAuB,YAAW,UAAU;IACvD,OAAO,CAAC,WAAW,CAAoC;IAE1C,OAAO;IAKb,kBAAkB,CAAC,OAAO,EAAE,OAAO;CAW3C"}
|
|
@@ -13,7 +13,7 @@ export interface SequelizeStoreSettings<T extends Model, TPrimaryKey extends key
|
|
|
13
13
|
/**
|
|
14
14
|
* Callback that returns the Sequelize client (provided by the client factory)
|
|
15
15
|
*/
|
|
16
|
-
getSequelizeClient: () =>
|
|
16
|
+
getSequelizeClient: () => Sequelize;
|
|
17
17
|
/**
|
|
18
18
|
* Optional calback that will initialize the Model for the Sequelize instance
|
|
19
19
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sequelize-store.d.ts","sourceRoot":"","sources":["../src/sequelize-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AACrH,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAA4B,MAAM,WAAW,CAAA;AAGnF,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,
|
|
1
|
+
{"version":3,"file":"sequelize-store.d.ts","sourceRoot":"","sources":["../src/sequelize-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AACrH,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAA4B,MAAM,WAAW,CAAA;AAGnF,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"}
|