@furystack/sequelize-store 0.3.16 → 0.3.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.d.ts +1 -1
- package/dist/sequelize-client-factory.d.ts.map +1 -1
- package/dist/sequelize-client-factory.js +9 -3
- package/dist/sequelize-client-factory.js.map +1 -1
- package/dist/sequelize-store.spec.d.ts.map +1 -1
- package/dist/sequelize-store.spec.js +2 -3
- package/dist/sequelize-store.spec.js.map +1 -1
- package/package.json +8 -8
- package/src/sequelize-client-factory.ts +8 -3
- package/src/sequelize-store.spec.ts +2 -3
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Disposable } from '@furystack/utils';
|
|
2
2
|
import { Sequelize, Options } from 'sequelize';
|
|
3
3
|
/**
|
|
4
|
-
* Factory for instantiating
|
|
4
|
+
* Factory for instantiating Sequelize clients
|
|
5
5
|
*/
|
|
6
6
|
export declare class SequelizeClientFactory implements Disposable {
|
|
7
7
|
private connections;
|
|
@@ -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;AA4ClD;;GAEG;AACH,qBACa,sBAAuB,YAAW,UAAU;IACvD,OAAO,CAAC,WAAW,CAAoC;IAEvD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAmB;IAErC,OAAO;
|
|
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;AA4ClD;;GAEG;AACH,qBACa,sBAAuB,YAAW,UAAU;IACvD,OAAO,CAAC,WAAW,CAAoC;IAEvD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAmB;IAErC,OAAO;IAUP,kBAAkB,CAAC,OAAO,EAAE,OAAO;CAqBjD"}
|
|
@@ -46,7 +46,7 @@ const operatorsAliases = {
|
|
|
46
46
|
$col: sequelize_1.Op.col,
|
|
47
47
|
};
|
|
48
48
|
/**
|
|
49
|
-
* Factory for instantiating
|
|
49
|
+
* Factory for instantiating Sequelize clients
|
|
50
50
|
*/
|
|
51
51
|
let SequelizeClientFactory = class SequelizeClientFactory {
|
|
52
52
|
constructor() {
|
|
@@ -54,8 +54,14 @@ let SequelizeClientFactory = class SequelizeClientFactory {
|
|
|
54
54
|
this.connectionLock = new semaphore_async_await_1.default(1);
|
|
55
55
|
}
|
|
56
56
|
async dispose() {
|
|
57
|
-
|
|
58
|
-
|
|
57
|
+
try {
|
|
58
|
+
await this.connectionLock.acquire();
|
|
59
|
+
await Promise.all([...this.connections.values()].map((c) => c.close()));
|
|
60
|
+
this.connections.clear();
|
|
61
|
+
}
|
|
62
|
+
finally {
|
|
63
|
+
this.connectionLock.release();
|
|
64
|
+
}
|
|
59
65
|
}
|
|
60
66
|
async getSequelizeClient(options) {
|
|
61
67
|
const key = JSON.stringify(options);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sequelize-client-factory.js","sourceRoot":"","sources":["../src/sequelize-client-factory.ts"],"names":[],"mappings":";;;;AACA,8CAA8C;AAC9C,yCAAkD;AAClD,+FAA6C;AAE7C,MAAM,gBAAgB,GAAG;IACvB,GAAG,EAAE,cAAE,CAAC,EAAE;IACV,GAAG,EAAE,cAAE,CAAC,EAAE;IACV,IAAI,EAAE,cAAE,CAAC,GAAG;IACZ,GAAG,EAAE,cAAE,CAAC,EAAE;IACV,IAAI,EAAE,cAAE,CAAC,GAAG;IACZ,GAAG,EAAE,cAAE,CAAC,EAAE;IACV,IAAI,EAAE,cAAE,CAAC,GAAG;IACZ,GAAG,EAAE,cAAE,CAAC,EAAE;IACV,IAAI,EAAE,cAAE,CAAC,KAAK;IACd,MAAM,EAAE,cAAE,CAAC,KAAK;IAChB,GAAG,EAAE,cAAE,CAAC,EAAE;IACV,KAAK,EAAE,cAAE,CAAC,IAAI;IACd,QAAQ,EAAE,cAAE,CAAC,OAAO;IACpB,MAAM,EAAE,cAAE,CAAC,KAAK;IAChB,SAAS,EAAE,cAAE,CAAC,QAAQ;IACtB,MAAM,EAAE,cAAE,CAAC,MAAM;IACjB,OAAO,EAAE,cAAE,CAAC,MAAM;IAClB,UAAU,EAAE,cAAE,CAAC,SAAS;IACxB,QAAQ,EAAE,cAAE,CAAC,OAAO;IACpB,WAAW,EAAE,cAAE,CAAC,UAAU;IAC1B,WAAW,EAAE,cAAE,CAAC,UAAU;IAC1B,SAAS,EAAE,cAAE,CAAC,QAAQ;IACtB,QAAQ,EAAE,cAAE,CAAC,OAAO;IACpB,WAAW,EAAE,cAAE,CAAC,UAAU;IAC1B,QAAQ,EAAE,cAAE,CAAC,OAAO;IACpB,SAAS,EAAE,cAAE,CAAC,QAAQ;IACtB,UAAU,EAAE,cAAE,CAAC,SAAS;IACxB,SAAS,EAAE,cAAE,CAAC,QAAQ;IACtB,WAAW,EAAE,cAAE,CAAC,UAAU;IAC1B,YAAY,EAAE,cAAE,CAAC,WAAW;IAC5B,cAAc,EAAE,cAAE,CAAC,aAAa;IAChC,aAAa,EAAE,cAAE,CAAC,YAAY;IAC9B,IAAI,EAAE,cAAE,CAAC,GAAG;IACZ,GAAG,EAAE,cAAE,CAAC,EAAE;IACV,IAAI,EAAE,cAAE,CAAC,GAAG;IACZ,IAAI,EAAE,cAAE,CAAC,GAAG;IACZ,OAAO,EAAE,cAAE,CAAC,MAAM;IAClB,IAAI,EAAE,cAAE,CAAC,GAAG;CACb,CAAA;AAED;;GAEG;AAEH,IAAa,sBAAsB,GAAnC,MAAa,sBAAsB;IAAnC;QACU,gBAAW,GAA2B,IAAI,GAAG,EAAE,CAAA;QAEtC,mBAAc,GAAG,IAAI,+BAAS,CAAC,CAAC,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"sequelize-client-factory.js","sourceRoot":"","sources":["../src/sequelize-client-factory.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sequelize-store.spec.d.ts","sourceRoot":"","sources":["../src/sequelize-store.spec.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sequelize-store.spec.d.ts","sourceRoot":"","sources":["../src/sequelize-store.spec.ts"],"names":[],"mappings":"AAEA,OAAO,4BAA4B,CAAA"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const inject_1 = require("@furystack/inject");
|
|
4
3
|
const core_1 = require("@furystack/core");
|
|
5
4
|
const create_physical_store_tests_1 = require("@furystack/core/dist/create-physical-store-tests");
|
|
6
5
|
require("./store-manager-extensions");
|
|
@@ -11,8 +10,8 @@ describe('Sequelize Store', () => {
|
|
|
11
10
|
(0, create_physical_store_tests_1.createStoreTest)({
|
|
12
11
|
typeName: 'sequelize-store',
|
|
13
12
|
skipRegexTests: true,
|
|
14
|
-
createStore: () => {
|
|
15
|
-
|
|
13
|
+
createStore: (i) => {
|
|
14
|
+
i.setupStores((sm) => sm.useSequelize({
|
|
16
15
|
model: TestSequelizeClass,
|
|
17
16
|
primaryKey: 'id',
|
|
18
17
|
options: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sequelize-store.spec.js","sourceRoot":"","sources":["../src/sequelize-store.spec.ts"],"names":[],"mappings":";;AAAA,
|
|
1
|
+
{"version":3,"file":"sequelize-store.spec.js","sourceRoot":"","sources":["../src/sequelize-store.spec.ts"],"names":[],"mappings":";;AAAA,0CAA8C;AAC9C,kGAA6F;AAC7F,sCAAmC;AACnC,yCAA4C;AAE5C,MAAM,kBAAmB,SAAQ,iBAAK;CAQrC;AAED,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,IAAA,6CAAe,EAAC;QACd,QAAQ,EAAE,iBAAiB;QAC3B,cAAc,EAAE,IAAI;QACpB,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE;YACjB,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,CACnB,EAAE,CAAC,YAAY,CAAC;gBACd,KAAK,EAAE,kBAAkB;gBACzB,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,CACH,CAAA;YACD,MAAM,KAAK,GAAG,CAAC,CAAC,WAAW,CAAC,mBAAY,CAAC,CAAC,WAAW,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAA;YAC/E,OAAO,KAAK,CAAA;QACd,CAAC;KACF,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@furystack/sequelize-store",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.17",
|
|
4
4
|
"description": "Sequelize-based Store implementation for FuryStack",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"files": [
|
|
@@ -27,21 +27,21 @@
|
|
|
27
27
|
},
|
|
28
28
|
"homepage": "https://github.com/furystack/furystack",
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@furystack/core": "^10.4.
|
|
31
|
-
"@furystack/inject": "^
|
|
32
|
-
"@furystack/logging": "^2.0.
|
|
33
|
-
"@furystack/utils": "^
|
|
30
|
+
"@furystack/core": "^10.4.1",
|
|
31
|
+
"@furystack/inject": "^5.0.0",
|
|
32
|
+
"@furystack/logging": "^2.0.84",
|
|
33
|
+
"@furystack/utils": "^2.0.0",
|
|
34
34
|
"semaphore-async-await": "^1.5.1",
|
|
35
|
-
"sequelize": "^6.
|
|
35
|
+
"sequelize": "^6.12.0-beta.1",
|
|
36
36
|
"tslib": "^2.3.1"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
39
|
"@types/jest": "^27.0.3",
|
|
40
|
-
"@types/node": "^16.11.
|
|
40
|
+
"@types/node": "^16.11.12",
|
|
41
41
|
"@types/uuid": "^8.3.3",
|
|
42
42
|
"sqlite3": "^5.0.2",
|
|
43
43
|
"uuid": "^8.3.2"
|
|
44
44
|
},
|
|
45
45
|
"typings": "./dist/index.d.ts",
|
|
46
|
-
"gitHead": "
|
|
46
|
+
"gitHead": "8a1860a227691def1a94e8de5e95a7c5067356cc"
|
|
47
47
|
}
|
|
@@ -45,7 +45,7 @@ const operatorsAliases = {
|
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
/**
|
|
48
|
-
* Factory for instantiating
|
|
48
|
+
* Factory for instantiating Sequelize clients
|
|
49
49
|
*/
|
|
50
50
|
@Injectable({ lifetime: 'singleton' })
|
|
51
51
|
export class SequelizeClientFactory implements Disposable {
|
|
@@ -54,8 +54,13 @@ export class SequelizeClientFactory implements Disposable {
|
|
|
54
54
|
private readonly connectionLock = new Semaphore(1)
|
|
55
55
|
|
|
56
56
|
public async dispose() {
|
|
57
|
-
|
|
58
|
-
|
|
57
|
+
try {
|
|
58
|
+
await this.connectionLock.acquire()
|
|
59
|
+
await Promise.all([...this.connections.values()].map((c) => c.close()))
|
|
60
|
+
this.connections.clear()
|
|
61
|
+
} finally {
|
|
62
|
+
this.connectionLock.release()
|
|
63
|
+
}
|
|
59
64
|
}
|
|
60
65
|
|
|
61
66
|
public async getSequelizeClient(options: Options) {
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { Injector } from '@furystack/inject'
|
|
2
1
|
import { StoreManager } from '@furystack/core'
|
|
3
2
|
import { TestClass, createStoreTest } from '@furystack/core/dist/create-physical-store-tests'
|
|
4
3
|
import './store-manager-extensions'
|
|
@@ -18,8 +17,8 @@ describe('Sequelize Store', () => {
|
|
|
18
17
|
createStoreTest({
|
|
19
18
|
typeName: 'sequelize-store',
|
|
20
19
|
skipRegexTests: true,
|
|
21
|
-
createStore: () => {
|
|
22
|
-
|
|
20
|
+
createStore: (i) => {
|
|
21
|
+
i.setupStores((sm) =>
|
|
23
22
|
sm.useSequelize({
|
|
24
23
|
model: TestSequelizeClass,
|
|
25
24
|
primaryKey: 'id',
|