@furystack/sequelize-store 5.0.5 → 6.0.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.
- package/esm/sequelize-client-factory.d.ts +2 -3
- package/esm/sequelize-client-factory.d.ts.map +1 -1
- package/esm/sequelize-client-factory.js +2 -2
- package/esm/sequelize-client-factory.js.map +1 -1
- package/esm/sequelize-store.d.ts +2 -3
- package/esm/sequelize-store.d.ts.map +1 -1
- package/esm/sequelize-store.js +1 -4
- package/esm/sequelize-store.js.map +1 -1
- package/esm/store-manager-helpers.d.ts +1 -1
- package/esm/store-manager-helpers.d.ts.map +1 -1
- package/package.json +7 -7
- package/src/sequelize-client-factory.ts +3 -4
- package/src/sequelize-store.ts +7 -10
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
import type { Disposable } from '@furystack/utils';
|
|
2
1
|
import type { Options } from 'sequelize';
|
|
3
2
|
import { Sequelize } from 'sequelize';
|
|
4
3
|
/**
|
|
5
4
|
* Factory for instantiating Sequelize clients
|
|
6
5
|
*/
|
|
7
|
-
export declare class SequelizeClientFactory implements
|
|
6
|
+
export declare class SequelizeClientFactory implements AsyncDisposable {
|
|
8
7
|
private connections;
|
|
9
|
-
|
|
8
|
+
[Symbol.asyncDispose](): Promise<void>;
|
|
10
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":"
|
|
1
|
+
{"version":3,"file":"sequelize-client-factory.d.ts","sourceRoot":"","sources":["../src/sequelize-client-factory.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,EAAM,SAAS,EAAE,MAAM,WAAW,CAAA;AA2CzC;;GAEG;AACH,qBACa,sBAAuB,YAAW,eAAe;IAC5D,OAAO,CAAC,WAAW,CAAoC;IAE1C,CAAC,MAAM,CAAC,YAAY,CAAC;IAK3B,kBAAkB,CAAC,OAAO,EAAE,OAAO;CAW3C"}
|
|
@@ -5,7 +5,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
7
|
import { Injectable } from '@furystack/inject';
|
|
8
|
-
import {
|
|
8
|
+
import { Op, Sequelize } from 'sequelize';
|
|
9
9
|
const operatorsAliases = {
|
|
10
10
|
$eq: Op.eq,
|
|
11
11
|
$ne: Op.ne,
|
|
@@ -51,7 +51,7 @@ const operatorsAliases = {
|
|
|
51
51
|
*/
|
|
52
52
|
let SequelizeClientFactory = class SequelizeClientFactory {
|
|
53
53
|
connections = new Map();
|
|
54
|
-
async
|
|
54
|
+
async [Symbol.asyncDispose]() {
|
|
55
55
|
await Promise.all([...this.connections.values()].map((c) => c.close()));
|
|
56
56
|
this.connections.clear();
|
|
57
57
|
}
|
|
@@ -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/esm/sequelize-store.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { CreateResult, FilterType, FindOptions, PartialResult, PhysicalStore, WithOptionalId } from '@furystack/core';
|
|
2
2
|
import type { Constructable } from '@furystack/inject';
|
|
3
|
-
import type { Sequelize, ModelStatic, Model } from 'sequelize';
|
|
4
3
|
import { EventHub } from '@furystack/utils';
|
|
4
|
+
import type { Model, ModelStatic, Sequelize } from 'sequelize';
|
|
5
5
|
export interface SequelizeStoreSettings<T extends object, M extends Model<T>, TPrimaryKey extends keyof T> {
|
|
6
6
|
/**
|
|
7
7
|
* The Model to use
|
|
@@ -53,6 +53,5 @@ export declare class SequelizeStore<T extends object, M extends Model<T>, TPrima
|
|
|
53
53
|
find<TFields extends Array<keyof T>>(filter: FindOptions<T, TFields>): Promise<Array<PartialResult<T, TFields>>>;
|
|
54
54
|
get(key: T[TPrimaryKey], select?: Array<keyof T>): Promise<T | undefined>;
|
|
55
55
|
remove(...keys: Array<T[TPrimaryKey]>): Promise<void>;
|
|
56
|
-
dispose(): Promise<void>;
|
|
57
56
|
}
|
|
58
57
|
//# sourceMappingURL=sequelize-store.d.ts.map
|
|
@@ -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,
|
|
1
|
+
{"version":3,"file":"sequelize-store.d.ts","sourceRoot":"","sources":["../src/sequelize-store.ts"],"names":[],"mappings":"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"}
|
package/esm/sequelize-store.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Lock } from 'semaphore-async-await';
|
|
2
1
|
import { EventHub } from '@furystack/utils';
|
|
2
|
+
import { Lock } from 'semaphore-async-await';
|
|
3
3
|
/**
|
|
4
4
|
* TypeORM Store implementation for FuryStack
|
|
5
5
|
*/
|
|
@@ -88,8 +88,5 @@ export class SequelizeStore extends EventHub {
|
|
|
88
88
|
await model.destroy({ where: { [this.primaryKey]: keys } });
|
|
89
89
|
keys.forEach((key) => this.emit('onEntityRemoved', { key }));
|
|
90
90
|
}
|
|
91
|
-
async dispose() {
|
|
92
|
-
await super.dispose();
|
|
93
|
-
}
|
|
94
91
|
}
|
|
95
92
|
//# sourceMappingURL=sequelize-store.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sequelize-store.js","sourceRoot":"","sources":["../src/sequelize-store.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sequelize-store.js","sourceRoot":"","sources":["../src/sequelize-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Constructable, Injector } from '@furystack/inject';
|
|
2
2
|
import type { Options, Sequelize, ModelStatic, Model } from 'sequelize';
|
|
3
|
-
export declare const useSequelize: <T extends object, M extends ModelStatic<Model<T
|
|
3
|
+
export declare const useSequelize: <T extends object, M extends ModelStatic<Model<T>>, Key extends keyof T>({ injector, model, sequelizeModel, primaryKey, options, initModel, }: {
|
|
4
4
|
injector: Injector;
|
|
5
5
|
/**
|
|
6
6
|
* The constructable model class
|
|
@@ -1 +1 @@
|
|
|
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,
|
|
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,GAAa,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,SAAS,MAAM,CAAC,wEAOzG;IACD,QAAQ,EAAE,QAAQ,CAAA;IAClB;;OAEG;IACH,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,CAAA;IAEvB;;OAEG;IACH,cAAc,EAAE,CAAC,CAAA;IAEjB;;OAEG;IACH,UAAU,EAAE,GAAG,CAAA;IACf;;OAEG;IACH,OAAO,EAAE,OAAO,CAAA;IAChB;;OAEG;IAEH,SAAS,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACpD,SAUA,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@furystack/sequelize-store",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "6.0.0",
|
|
4
4
|
"description": "Sequelize-based Store implementation for FuryStack",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"scripts": {
|
|
@@ -35,17 +35,17 @@
|
|
|
35
35
|
},
|
|
36
36
|
"homepage": "https://github.com/furystack/furystack",
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"@furystack/core": "^
|
|
39
|
-
"@furystack/inject": "^
|
|
40
|
-
"@furystack/utils": "^
|
|
38
|
+
"@furystack/core": "^15.0.0",
|
|
39
|
+
"@furystack/inject": "^12.0.0",
|
|
40
|
+
"@furystack/utils": "^8.0.0",
|
|
41
41
|
"semaphore-async-await": "^1.5.1",
|
|
42
42
|
"sequelize": "^6.37.3"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
|
-
"@types/node": "^20.14.
|
|
45
|
+
"@types/node": "^20.14.10",
|
|
46
46
|
"sqlite3": "5.1.7",
|
|
47
|
-
"typescript": "^5.
|
|
48
|
-
"vitest": "^
|
|
47
|
+
"typescript": "^5.5.3",
|
|
48
|
+
"vitest": "^2.0.0"
|
|
49
49
|
},
|
|
50
50
|
"typings": "./types/index.d.ts"
|
|
51
51
|
}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import type { Disposable } from '@furystack/utils'
|
|
2
1
|
import { Injectable } from '@furystack/inject'
|
|
3
2
|
import type { Options } from 'sequelize'
|
|
4
|
-
import {
|
|
3
|
+
import { Op, Sequelize } from 'sequelize'
|
|
5
4
|
|
|
6
5
|
const operatorsAliases = {
|
|
7
6
|
$eq: Op.eq,
|
|
@@ -48,10 +47,10 @@ const operatorsAliases = {
|
|
|
48
47
|
* Factory for instantiating Sequelize clients
|
|
49
48
|
*/
|
|
50
49
|
@Injectable({ lifetime: 'singleton' })
|
|
51
|
-
export class SequelizeClientFactory implements
|
|
50
|
+
export class SequelizeClientFactory implements AsyncDisposable {
|
|
52
51
|
private connections: Map<string, Sequelize> = new Map()
|
|
53
52
|
|
|
54
|
-
public async
|
|
53
|
+
public async [Symbol.asyncDispose]() {
|
|
55
54
|
await Promise.all([...this.connections.values()].map((c) => c.close()))
|
|
56
55
|
this.connections.clear()
|
|
57
56
|
}
|
package/src/sequelize-store.ts
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import type {
|
|
2
|
+
CreateResult,
|
|
3
|
+
FilterType,
|
|
2
4
|
FindOptions,
|
|
3
|
-
PhysicalStore,
|
|
4
5
|
PartialResult,
|
|
5
|
-
|
|
6
|
+
PhysicalStore,
|
|
6
7
|
WithOptionalId,
|
|
7
|
-
CreateResult,
|
|
8
8
|
} from '@furystack/core'
|
|
9
9
|
import type { Constructable } from '@furystack/inject'
|
|
10
|
-
import type { Sequelize, ModelStatic, Model, WhereOptions, Attributes } from 'sequelize'
|
|
11
|
-
import { Lock } from 'semaphore-async-await'
|
|
12
10
|
import { EventHub } from '@furystack/utils'
|
|
11
|
+
import { Lock } from 'semaphore-async-await'
|
|
12
|
+
import type { Attributes, Model, ModelStatic, Sequelize, WhereOptions } from 'sequelize'
|
|
13
13
|
|
|
14
14
|
export interface SequelizeStoreSettings<T extends object, M extends Model<T>, TPrimaryKey extends keyof T> {
|
|
15
15
|
/**
|
|
@@ -96,7 +96,7 @@ export class SequelizeStore<
|
|
|
96
96
|
const model = await this.getModel()
|
|
97
97
|
const createdModels = await model.bulkCreate(entries as any)
|
|
98
98
|
|
|
99
|
-
const created = createdModels.map((c) => c.toJSON()
|
|
99
|
+
const created = createdModels.map((c) => c.toJSON())
|
|
100
100
|
|
|
101
101
|
created.forEach((entity) => this.emit('onEntityAdded', { entity }))
|
|
102
102
|
return {
|
|
@@ -137,7 +137,7 @@ export class SequelizeStore<
|
|
|
137
137
|
limit: filter.top,
|
|
138
138
|
offset: filter.skip,
|
|
139
139
|
})
|
|
140
|
-
return result.map((r) => r.toJSON()
|
|
140
|
+
return result.map((r) => r.toJSON())
|
|
141
141
|
}
|
|
142
142
|
|
|
143
143
|
public async get(key: T[TPrimaryKey], select?: Array<keyof T>): Promise<T | undefined> {
|
|
@@ -149,7 +149,4 @@ export class SequelizeStore<
|
|
|
149
149
|
await model.destroy({ where: { [this.primaryKey]: keys } } as any)
|
|
150
150
|
keys.forEach((key) => this.emit('onEntityRemoved', { key }))
|
|
151
151
|
}
|
|
152
|
-
public async dispose() {
|
|
153
|
-
await super.dispose()
|
|
154
|
-
}
|
|
155
152
|
}
|