@dismissible/nestjs-storage 2.0.2-alpha.99ffc23.0 → 2.0.2-canary.2913ba8.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/package.json +3 -3
- package/src/index.d.ts +1 -0
- package/src/index.js +1 -0
- package/src/index.js.map +1 -1
- package/src/memory-storage.adapter.d.ts +3 -1
- package/src/memory-storage.adapter.js +9 -5
- package/src/memory-storage.adapter.js.map +1 -1
- package/src/memory-storage.config.d.ts +8 -0
- package/src/memory-storage.config.js +26 -0
- package/src/memory-storage.config.js.map +1 -0
- package/src/memory-storage.module.d.ts +11 -2
- package/src/memory-storage.module.js +52 -5
- package/src/memory-storage.module.js.map +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dismissible/nestjs-storage",
|
|
3
|
-
"version": "2.0.2-
|
|
3
|
+
"version": "2.0.2-canary.2913ba8.0",
|
|
4
4
|
"description": "In-memory storage adapter for Dismissible",
|
|
5
5
|
"main": "./src/index.js",
|
|
6
6
|
"types": "./src/index.d.ts",
|
|
@@ -17,8 +17,8 @@
|
|
|
17
17
|
"LICENSE.md"
|
|
18
18
|
],
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"@dismissible/nestjs-item": "2.0.2-
|
|
21
|
-
"@dismissible/nestjs-logger": "2.0.2-
|
|
20
|
+
"@dismissible/nestjs-item": "2.0.2-canary.2913ba8.0",
|
|
21
|
+
"@dismissible/nestjs-logger": "2.0.2-canary.2913ba8.0",
|
|
22
22
|
"lru-cache": "10.4.3"
|
|
23
23
|
},
|
|
24
24
|
"peerDependencies": {
|
package/src/index.d.ts
CHANGED
package/src/index.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
4
|
tslib_1.__exportStar(require("./memory-storage.adapter"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./memory-storage.config"), exports);
|
|
5
6
|
tslib_1.__exportStar(require("./storage.interface"), exports);
|
|
6
7
|
tslib_1.__exportStar(require("./storage.module"), exports);
|
|
7
8
|
tslib_1.__exportStar(require("./memory-storage.module"), exports);
|
package/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/storage/src/index.ts"],"names":[],"mappings":";;;AAAA,mEAAyC;AACzC,8DAAoC;AACpC,2DAAiC;AACjC,kEAAwC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/storage/src/index.ts"],"names":[],"mappings":";;;AAAA,mEAAyC;AACzC,kEAAwC;AACxC,8DAAoC;AACpC,2DAAiC;AACjC,kEAAwC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { IDismissibleLogger } from '@dismissible/nestjs-logger';
|
|
2
2
|
import { IDismissibleStorage } from './storage.interface';
|
|
3
3
|
import { DismissibleItemDto } from '@dismissible/nestjs-item';
|
|
4
|
+
import { MemoryStorageConfig } from './memory-storage.config';
|
|
4
5
|
/**
|
|
5
6
|
* In-memory storage provider for dismissible items with LRU eviction.
|
|
6
7
|
* Suitable for development and testing; not for production use.
|
|
@@ -10,9 +11,10 @@ import { DismissibleItemDto } from '@dismissible/nestjs-item';
|
|
|
10
11
|
* - Items are older than the maximum age (default: 6 hours)
|
|
11
12
|
*/
|
|
12
13
|
export declare class MemoryStorageAdapter implements IDismissibleStorage {
|
|
14
|
+
private readonly config;
|
|
13
15
|
private readonly logger;
|
|
14
16
|
private readonly storage;
|
|
15
|
-
constructor(logger: IDismissibleLogger);
|
|
17
|
+
constructor(config: MemoryStorageConfig, logger: IDismissibleLogger);
|
|
16
18
|
/**
|
|
17
19
|
* Create a storage key from userId and itemId.
|
|
18
20
|
*/
|
|
@@ -5,6 +5,9 @@ const tslib_1 = require("tslib");
|
|
|
5
5
|
const common_1 = require("@nestjs/common");
|
|
6
6
|
const lru_cache_1 = require("lru-cache");
|
|
7
7
|
const nestjs_logger_1 = require("@dismissible/nestjs-logger");
|
|
8
|
+
const memory_storage_config_1 = require("./memory-storage.config");
|
|
9
|
+
const DEFAULT_MAX_ITEMS = 5000;
|
|
10
|
+
const DEFAULT_TTL_MS = 6 * 60 * 60 * 1000; // 6 hours
|
|
8
11
|
/**
|
|
9
12
|
* In-memory storage provider for dismissible items with LRU eviction.
|
|
10
13
|
* Suitable for development and testing; not for production use.
|
|
@@ -14,11 +17,12 @@ const nestjs_logger_1 = require("@dismissible/nestjs-logger");
|
|
|
14
17
|
* - Items are older than the maximum age (default: 6 hours)
|
|
15
18
|
*/
|
|
16
19
|
let MemoryStorageAdapter = class MemoryStorageAdapter {
|
|
17
|
-
constructor(logger) {
|
|
20
|
+
constructor(config, logger) {
|
|
21
|
+
this.config = config;
|
|
18
22
|
this.logger = logger;
|
|
19
23
|
this.storage = new lru_cache_1.LRUCache({
|
|
20
|
-
max:
|
|
21
|
-
ttl:
|
|
24
|
+
max: config.maxItems ?? DEFAULT_MAX_ITEMS,
|
|
25
|
+
ttl: config.ttlMs ?? DEFAULT_TTL_MS,
|
|
22
26
|
});
|
|
23
27
|
}
|
|
24
28
|
/**
|
|
@@ -70,7 +74,7 @@ let MemoryStorageAdapter = class MemoryStorageAdapter {
|
|
|
70
74
|
exports.MemoryStorageAdapter = MemoryStorageAdapter;
|
|
71
75
|
exports.MemoryStorageAdapter = MemoryStorageAdapter = tslib_1.__decorate([
|
|
72
76
|
(0, common_1.Injectable)(),
|
|
73
|
-
tslib_1.__param(
|
|
74
|
-
tslib_1.__metadata("design:paramtypes", [Object])
|
|
77
|
+
tslib_1.__param(1, (0, common_1.Inject)(nestjs_logger_1.DISMISSIBLE_LOGGER)),
|
|
78
|
+
tslib_1.__metadata("design:paramtypes", [memory_storage_config_1.MemoryStorageConfig, Object])
|
|
75
79
|
], MemoryStorageAdapter);
|
|
76
80
|
//# sourceMappingURL=memory-storage.adapter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-storage.adapter.js","sourceRoot":"","sources":["../../../../libs/storage/src/memory-storage.adapter.ts"],"names":[],"mappings":";;;;AAAA,2CAAoD;AACpD,yCAAqC;AACrC,8DAAoF;
|
|
1
|
+
{"version":3,"file":"memory-storage.adapter.js","sourceRoot":"","sources":["../../../../libs/storage/src/memory-storage.adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MemoryStorageConfig = exports.DISMISSIBLE_MEMORY_STORAGE_CONFIG = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const nestjs_validation_1 = require("@dismissible/nestjs-validation");
|
|
6
|
+
const class_validator_1 = require("class-validator");
|
|
7
|
+
/**
|
|
8
|
+
* Injection token for the MemoryStorage configuration.
|
|
9
|
+
*/
|
|
10
|
+
exports.DISMISSIBLE_MEMORY_STORAGE_CONFIG = Symbol('DISMISSIBLE_MEMORY_STORAGE_CONFIG');
|
|
11
|
+
class MemoryStorageConfig {
|
|
12
|
+
}
|
|
13
|
+
exports.MemoryStorageConfig = MemoryStorageConfig;
|
|
14
|
+
tslib_1.__decorate([
|
|
15
|
+
(0, nestjs_validation_1.TransformNumber)(),
|
|
16
|
+
(0, class_validator_1.IsNumber)(),
|
|
17
|
+
(0, class_validator_1.IsOptional)(),
|
|
18
|
+
tslib_1.__metadata("design:type", Number)
|
|
19
|
+
], MemoryStorageConfig.prototype, "maxItems", void 0);
|
|
20
|
+
tslib_1.__decorate([
|
|
21
|
+
(0, nestjs_validation_1.TransformNumber)(),
|
|
22
|
+
(0, class_validator_1.IsNumber)(),
|
|
23
|
+
(0, class_validator_1.IsOptional)(),
|
|
24
|
+
tslib_1.__metadata("design:type", Number)
|
|
25
|
+
], MemoryStorageConfig.prototype, "ttlMs", void 0);
|
|
26
|
+
//# sourceMappingURL=memory-storage.config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-storage.config.js","sourceRoot":"","sources":["../../../../libs/storage/src/memory-storage.config.ts"],"names":[],"mappings":";;;;AAAA,sEAAiE;AACjE,qDAAuD;AAEvD;;GAEG;AACU,QAAA,iCAAiC,GAAG,MAAM,CAAC,mCAAmC,CAAC,CAAC;AAE7F,MAAa,mBAAmB;CAU/B;AAVD,kDAUC;AANiB;IAHf,IAAA,mCAAe,GAAE;IACjB,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;qDACqB;AAKlB;IAHf,IAAA,mCAAe,GAAE;IACjB,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;kDACkB"}
|
|
@@ -1,4 +1,13 @@
|
|
|
1
|
-
import { DynamicModule } from '@nestjs/common';
|
|
1
|
+
import { DynamicModule, ModuleMetadata } from '@nestjs/common';
|
|
2
|
+
export interface MemoryStorageModuleOptions {
|
|
3
|
+
maxItems?: number;
|
|
4
|
+
ttlMs?: number;
|
|
5
|
+
}
|
|
6
|
+
export interface MemoryStorageModuleAsyncOptions extends Pick<ModuleMetadata, 'imports'> {
|
|
7
|
+
inject?: any[];
|
|
8
|
+
useFactory: (...args: any[]) => MemoryStorageModuleOptions | Promise<MemoryStorageModuleOptions>;
|
|
9
|
+
}
|
|
2
10
|
export declare class MemoryStorageModule {
|
|
3
|
-
static forRoot(): DynamicModule;
|
|
11
|
+
static forRoot(options?: MemoryStorageModuleOptions): DynamicModule;
|
|
12
|
+
static forRootAsync(options: MemoryStorageModuleAsyncOptions): DynamicModule;
|
|
4
13
|
}
|
|
@@ -1,21 +1,68 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var MemoryStorageModule_1;
|
|
2
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
4
|
exports.MemoryStorageModule = void 0;
|
|
5
|
+
const tslib_1 = require("tslib");
|
|
6
|
+
const common_1 = require("@nestjs/common");
|
|
4
7
|
const storage_interface_1 = require("./storage.interface");
|
|
5
8
|
const memory_storage_adapter_1 = require("./memory-storage.adapter");
|
|
6
|
-
|
|
7
|
-
|
|
9
|
+
const nestjs_logger_1 = require("@dismissible/nestjs-logger");
|
|
10
|
+
const memory_storage_config_1 = require("./memory-storage.config");
|
|
11
|
+
let MemoryStorageModule = MemoryStorageModule_1 = class MemoryStorageModule {
|
|
12
|
+
static forRoot(options = {}) {
|
|
8
13
|
return {
|
|
9
|
-
module:
|
|
14
|
+
module: MemoryStorageModule_1,
|
|
10
15
|
providers: [
|
|
16
|
+
{
|
|
17
|
+
provide: memory_storage_config_1.DISMISSIBLE_MEMORY_STORAGE_CONFIG,
|
|
18
|
+
useValue: {
|
|
19
|
+
maxItems: options.maxItems,
|
|
20
|
+
ttlMs: options.ttlMs,
|
|
21
|
+
},
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
provide: memory_storage_adapter_1.MemoryStorageAdapter,
|
|
25
|
+
useFactory(config, logger) {
|
|
26
|
+
return new memory_storage_adapter_1.MemoryStorageAdapter(config, logger);
|
|
27
|
+
},
|
|
28
|
+
inject: [memory_storage_config_1.DISMISSIBLE_MEMORY_STORAGE_CONFIG, nestjs_logger_1.DISMISSIBLE_LOGGER],
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
provide: storage_interface_1.DISMISSIBLE_STORAGE_ADAPTER,
|
|
32
|
+
useExisting: memory_storage_adapter_1.MemoryStorageAdapter,
|
|
33
|
+
},
|
|
34
|
+
],
|
|
35
|
+
exports: [storage_interface_1.DISMISSIBLE_STORAGE_ADAPTER],
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
static forRootAsync(options) {
|
|
39
|
+
return {
|
|
40
|
+
module: MemoryStorageModule_1,
|
|
41
|
+
imports: [...(options.imports || [])],
|
|
42
|
+
providers: [
|
|
43
|
+
{
|
|
44
|
+
provide: memory_storage_config_1.DISMISSIBLE_MEMORY_STORAGE_CONFIG,
|
|
45
|
+
useFactory: options.useFactory,
|
|
46
|
+
inject: options.inject || [],
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
provide: memory_storage_adapter_1.MemoryStorageAdapter,
|
|
50
|
+
useFactory(config, logger) {
|
|
51
|
+
return new memory_storage_adapter_1.MemoryStorageAdapter(config, logger);
|
|
52
|
+
},
|
|
53
|
+
inject: [memory_storage_config_1.DISMISSIBLE_MEMORY_STORAGE_CONFIG, nestjs_logger_1.DISMISSIBLE_LOGGER],
|
|
54
|
+
},
|
|
11
55
|
{
|
|
12
56
|
provide: storage_interface_1.DISMISSIBLE_STORAGE_ADAPTER,
|
|
13
|
-
|
|
57
|
+
useExisting: memory_storage_adapter_1.MemoryStorageAdapter,
|
|
14
58
|
},
|
|
15
59
|
],
|
|
16
60
|
exports: [storage_interface_1.DISMISSIBLE_STORAGE_ADAPTER],
|
|
17
61
|
};
|
|
18
62
|
}
|
|
19
|
-
}
|
|
63
|
+
};
|
|
20
64
|
exports.MemoryStorageModule = MemoryStorageModule;
|
|
65
|
+
exports.MemoryStorageModule = MemoryStorageModule = MemoryStorageModule_1 = tslib_1.__decorate([
|
|
66
|
+
(0, common_1.Module)({})
|
|
67
|
+
], MemoryStorageModule);
|
|
21
68
|
//# sourceMappingURL=memory-storage.module.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-storage.module.js","sourceRoot":"","sources":["../../../../libs/storage/src/memory-storage.module.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"memory-storage.module.js","sourceRoot":"","sources":["../../../../libs/storage/src/memory-storage.module.ts"],"names":[],"mappings":";;;;;AAAA,2CAAuE;AACvE,2DAAkE;AAClE,qEAAgE;AAChE,8DAAoF;AACpF,mEAAiG;AAa1F,IAAM,mBAAmB,2BAAzB,MAAM,mBAAmB;IAC9B,MAAM,CAAC,OAAO,CAAC,UAAsC,EAAE;QACrD,OAAO;YACL,MAAM,EAAE,qBAAmB;YAC3B,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,yDAAiC;oBAC1C,QAAQ,EAAE;wBACR,QAAQ,EAAE,OAAO,CAAC,QAAQ;wBAC1B,KAAK,EAAE,OAAO,CAAC,KAAK;qBACrB;iBACF;gBACD;oBACE,OAAO,EAAE,6CAAoB;oBAC7B,UAAU,CAAC,MAA2B,EAAE,MAA0B;wBAChE,OAAO,IAAI,6CAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;oBAClD,CAAC;oBACD,MAAM,EAAE,CAAC,yDAAiC,EAAE,kCAAkB,CAAC;iBAChE;gBACD;oBACE,OAAO,EAAE,+CAA2B;oBACpC,WAAW,EAAE,6CAAoB;iBAClC;aACF;YACD,OAAO,EAAE,CAAC,+CAA2B,CAAC;SACvC,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,OAAwC;QAC1D,OAAO;YACL,MAAM,EAAE,qBAAmB;YAC3B,OAAO,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;YACrC,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,yDAAiC;oBAC1C,UAAU,EAAE,OAAO,CAAC,UAAU;oBAC9B,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE;iBAC7B;gBACD;oBACE,OAAO,EAAE,6CAAoB;oBAC7B,UAAU,CAAC,MAA2B,EAAE,MAA0B;wBAChE,OAAO,IAAI,6CAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;oBAClD,CAAC;oBACD,MAAM,EAAE,CAAC,yDAAiC,EAAE,kCAAkB,CAAC;iBAChE;gBACD;oBACE,OAAO,EAAE,+CAA2B;oBACpC,WAAW,EAAE,6CAAoB;iBAClC;aACF;YACD,OAAO,EAAE,CAAC,+CAA2B,CAAC;SACvC,CAAC;IACJ,CAAC;CACF,CAAA;AArDY,kDAAmB;8BAAnB,mBAAmB;IAD/B,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,mBAAmB,CAqD/B"}
|