@rsdk/nats.object-storage 5.4.0-next.11 → 5.4.0-next.12
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/CHANGELOG.md +4 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.js +5 -3
- package/dist/index.js.map +1 -1
- package/dist/inject-object-storage-service.decorator.d.ts +4 -1
- package/dist/inject-object-storage-service.decorator.js +4 -4
- package/dist/inject-object-storage-service.decorator.js.map +1 -1
- package/dist/module-options.interface.d.ts +3 -0
- package/dist/module-options.interface.js +3 -0
- package/dist/module-options.interface.js.map +1 -0
- package/dist/nats-object-storage-module.generator.d.ts +8 -2
- package/dist/nats-object-storage-module.generator.js +8 -8
- package/dist/nats-object-storage-module.generator.js.map +1 -1
- package/dist/{object-storage.d.ts → nats-object-storage.d.ts} +1 -1
- package/dist/{object-storage.js → nats-object-storage.js} +4 -4
- package/dist/nats-object-storage.js.map +1 -0
- package/dist/nats-object-storage.module.d.ts +2 -1
- package/dist/nats-object-storage.module.js +8 -1
- package/dist/nats-object-storage.module.js.map +1 -1
- package/dist/nats-object-storage.plugin.d.ts +10 -0
- package/dist/nats-object-storage.plugin.js +18 -0
- package/dist/nats-object-storage.plugin.js.map +1 -0
- package/dist/nats-object-storage.service.d.ts +6 -4
- package/dist/nats-object-storage.service.js +14 -9
- package/dist/nats-object-storage.service.js.map +1 -1
- package/package.json +2 -2
- package/src/index.ts +2 -1
- package/src/inject-object-storage-service.decorator.ts +4 -4
- package/src/module-options.interface.ts +3 -0
- package/src/nats-object-storage-module.generator.ts +11 -10
- package/src/nats-object-storage.module.ts +12 -1
- package/src/nats-object-storage.plugin.ts +18 -0
- package/src/nats-object-storage.service.ts +18 -10
- package/src/{object-storage.ts → nats-object-storage.ts} +1 -1
- package/dist/object-storage.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,10 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [5.4.0-rc.0](https://github.com/R-Vision/rsdk/compare/v5.4.0-next.11...v5.4.0-rc.0) (2024-12-12)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @rsdk/nats.object-storage
|
|
9
|
+
|
|
6
10
|
## [5.4.0-next.11](https://github.com/R-Vision/rsdk/compare/v5.4.0-next.10...v5.4.0-next.11) (2024-12-04)
|
|
7
11
|
|
|
8
12
|
### Bug Fixes
|
package/dist/index.d.ts
CHANGED
|
@@ -2,7 +2,8 @@ import './patch';
|
|
|
2
2
|
export { NatsObjectStorageService } from './nats-object-storage.service';
|
|
3
3
|
export { WatchObjectStorage, type ObjectStorageWatcher, } from './watch-object-storage.decorator';
|
|
4
4
|
export { NatsObjectStorageModule } from './nats-object-storage.module';
|
|
5
|
-
export {
|
|
5
|
+
export { NatsObjectStorage } from './nats-object-storage';
|
|
6
6
|
export * from './inject-object-storage-service.decorator';
|
|
7
7
|
export * from './tokens.fn';
|
|
8
8
|
export { NatsObjectStorageModuleGenerator } from './nats-object-storage-module.generator';
|
|
9
|
+
export { NatsObjectStoragePlugin } from './nats-object-storage.plugin';
|
package/dist/index.js
CHANGED
|
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.NatsObjectStorageModuleGenerator = exports.
|
|
17
|
+
exports.NatsObjectStoragePlugin = exports.NatsObjectStorageModuleGenerator = exports.NatsObjectStorage = exports.NatsObjectStorageModule = exports.WatchObjectStorage = exports.NatsObjectStorageService = void 0;
|
|
18
18
|
require("./patch");
|
|
19
19
|
var nats_object_storage_service_1 = require("./nats-object-storage.service");
|
|
20
20
|
Object.defineProperty(exports, "NatsObjectStorageService", { enumerable: true, get: function () { return nats_object_storage_service_1.NatsObjectStorageService; } });
|
|
@@ -22,10 +22,12 @@ var watch_object_storage_decorator_1 = require("./watch-object-storage.decorator
|
|
|
22
22
|
Object.defineProperty(exports, "WatchObjectStorage", { enumerable: true, get: function () { return watch_object_storage_decorator_1.WatchObjectStorage; } });
|
|
23
23
|
var nats_object_storage_module_1 = require("./nats-object-storage.module");
|
|
24
24
|
Object.defineProperty(exports, "NatsObjectStorageModule", { enumerable: true, get: function () { return nats_object_storage_module_1.NatsObjectStorageModule; } });
|
|
25
|
-
var
|
|
26
|
-
Object.defineProperty(exports, "
|
|
25
|
+
var nats_object_storage_1 = require("./nats-object-storage");
|
|
26
|
+
Object.defineProperty(exports, "NatsObjectStorage", { enumerable: true, get: function () { return nats_object_storage_1.NatsObjectStorage; } });
|
|
27
27
|
__exportStar(require("./inject-object-storage-service.decorator"), exports);
|
|
28
28
|
__exportStar(require("./tokens.fn"), exports);
|
|
29
29
|
var nats_object_storage_module_generator_1 = require("./nats-object-storage-module.generator");
|
|
30
30
|
Object.defineProperty(exports, "NatsObjectStorageModuleGenerator", { enumerable: true, get: function () { return nats_object_storage_module_generator_1.NatsObjectStorageModuleGenerator; } });
|
|
31
|
+
var nats_object_storage_plugin_1 = require("./nats-object-storage.plugin");
|
|
32
|
+
Object.defineProperty(exports, "NatsObjectStoragePlugin", { enumerable: true, get: function () { return nats_object_storage_plugin_1.NatsObjectStoragePlugin; } });
|
|
31
33
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,mBAAiB;AAEjB,6EAAyE;AAAhE,uIAAA,wBAAwB,OAAA;AACjC,mFAG0C;AAFxC,oIAAA,kBAAkB,OAAA;AAGpB,2EAAuE;AAA9D,qIAAA,uBAAuB,OAAA;AAChC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,mBAAiB;AAEjB,6EAAyE;AAAhE,uIAAA,wBAAwB,OAAA;AACjC,mFAG0C;AAFxC,oIAAA,kBAAkB,OAAA;AAGpB,2EAAuE;AAA9D,qIAAA,uBAAuB,OAAA;AAChC,6DAA0D;AAAjD,wHAAA,iBAAiB,OAAA;AAC1B,4EAA0D;AAC1D,8CAA4B;AAC5B,+FAA0F;AAAjF,wJAAA,gCAAgC,OAAA;AACzC,2EAAuE;AAA9D,qIAAA,uBAAuB,OAAA"}
|
|
@@ -1,2 +1,5 @@
|
|
|
1
1
|
export declare const InjectObjectStorageService: (connectionName?: string) => ParameterDecorator;
|
|
2
|
-
export declare const InjectNatsObjectStorage: (bucketName: string,
|
|
2
|
+
export declare const InjectNatsObjectStorage: (bucketName: string, opts?: {
|
|
3
|
+
connectionName?: string;
|
|
4
|
+
domain?: string;
|
|
5
|
+
}) => ParameterDecorator;
|
|
@@ -7,11 +7,11 @@ const nats_object_storage_module_generator_1 = require("./nats-object-storage-mo
|
|
|
7
7
|
const tokens_fn_1 = require("./tokens.fn");
|
|
8
8
|
const InjectObjectStorageService = (connectionName) => (0, common_1.Inject)((0, tokens_fn_1.createObjectStorageServiceToken)(connectionName));
|
|
9
9
|
exports.InjectObjectStorageService = InjectObjectStorageService;
|
|
10
|
-
const InjectNatsObjectStorage = (bucketName,
|
|
10
|
+
const InjectNatsObjectStorage = (bucketName, opts) => {
|
|
11
11
|
return (target, propertyKey, parameterIndex) => {
|
|
12
|
-
(0, common_1.Inject)((0, tokens_fn_1.createObjectStorageToken)(bucketName, connectionName))(target, propertyKey, parameterIndex);
|
|
13
|
-
const key = `nats-kv:${bucketName}${connectionName ? `:${connectionName}` : ''}`;
|
|
14
|
-
const moduleDefinition = nats_object_storage_module_generator_1.NatsObjectStorageModuleGenerator.createClientModuleDefinition(target, bucketName,
|
|
12
|
+
(0, common_1.Inject)((0, tokens_fn_1.createObjectStorageToken)(bucketName, opts?.connectionName))(target, propertyKey, parameterIndex);
|
|
13
|
+
const key = `nats-kv:${bucketName}${opts?.connectionName ? `:${opts.connectionName}` : ''}`;
|
|
14
|
+
const moduleDefinition = nats_object_storage_module_generator_1.NatsObjectStorageModuleGenerator.createClientModuleDefinition(target, bucketName, opts);
|
|
15
15
|
metadata_1.RsdkMetadata.setWithScope(target, metadata_1.PLATFORM_RAW_GLOBAL_METADATA_SCOPE, key, moduleDefinition, true);
|
|
16
16
|
};
|
|
17
17
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inject-object-storage-service.decorator.js","sourceRoot":"","sources":["../src/inject-object-storage-service.decorator.ts"],"names":[],"mappings":";;;AAAA,2CAAwC;AACxC,6CAGwB;AAExB,iGAA0F;AAC1F,2CAGqB;AAEd,MAAM,0BAA0B,GAAG,CACxC,cAAuB,EACH,EAAE,CACtB,IAAA,eAAM,EAAC,IAAA,2CAA+B,EAAC,cAAc,CAAC,CAAC,CAAC;AAH7C,QAAA,0BAA0B,8BAGmB;AAEnD,MAAM,uBAAuB,GAAG,CACrC,UAAkB,EAClB,
|
|
1
|
+
{"version":3,"file":"inject-object-storage-service.decorator.js","sourceRoot":"","sources":["../src/inject-object-storage-service.decorator.ts"],"names":[],"mappings":";;;AAAA,2CAAwC;AACxC,6CAGwB;AAExB,iGAA0F;AAC1F,2CAGqB;AAEd,MAAM,0BAA0B,GAAG,CACxC,cAAuB,EACH,EAAE,CACtB,IAAA,eAAM,EAAC,IAAA,2CAA+B,EAAC,cAAc,CAAC,CAAC,CAAC;AAH7C,QAAA,0BAA0B,8BAGmB;AAEnD,MAAM,uBAAuB,GAAG,CACrC,UAAkB,EAClB,IAAmD,EAC/B,EAAE;IACtB,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,EAAE;QAC7C,IAAA,eAAM,EAAC,IAAA,oCAAwB,EAAC,UAAU,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAChE,MAAM,EACN,WAAW,EACX,cAAc,CACf,CAAC;QAEF,MAAM,GAAG,GAAG,WAAW,UAAU,GAAG,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAC5F,MAAM,gBAAgB,GACpB,uEAAgC,CAAC,4BAA4B,CAC3D,MAAM,EACN,UAAU,EACV,IAAI,CACL,CAAC;QAEJ,uBAAY,CAAC,YAAY,CACvB,MAAM,EACN,6CAAkC,EAClC,GAAG,EACH,gBAAgB,EAChB,IAAI,CACL,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC,CAAC;AA3BW,QAAA,uBAAuB,2BA2BlC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module-options.interface.js","sourceRoot":"","sources":["../src/module-options.interface.ts"],"names":[],"mappings":""}
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
import type { DynamicModule, FactoryProvider } from '@nestjs/common';
|
|
2
2
|
export declare class NatsObjectStorageModuleGenerator {
|
|
3
|
-
static createClientModuleDefinition(target: object, bucketName: string,
|
|
4
|
-
|
|
3
|
+
static createClientModuleDefinition(target: object, bucketName: string, opts?: {
|
|
4
|
+
connectionName?: string;
|
|
5
|
+
domain?: string;
|
|
6
|
+
}): DynamicModule;
|
|
7
|
+
static createClientProvider(bucketName: string, opts?: {
|
|
8
|
+
connectionName?: string;
|
|
9
|
+
domain?: string;
|
|
10
|
+
}): FactoryProvider;
|
|
5
11
|
}
|
|
@@ -6,23 +6,23 @@ const constants_1 = require("./constants");
|
|
|
6
6
|
const nats_object_storage_module_1 = require("./nats-object-storage.module");
|
|
7
7
|
const tokens_fn_1 = require("./tokens.fn");
|
|
8
8
|
class NatsObjectStorageModuleGenerator {
|
|
9
|
-
static createClientModuleDefinition(target, bucketName,
|
|
10
|
-
const provider = NatsObjectStorageModuleGenerator.createClientProvider(bucketName,
|
|
9
|
+
static createClientModuleDefinition(target, bucketName, opts) {
|
|
10
|
+
const provider = NatsObjectStorageModuleGenerator.createClientProvider(bucketName, opts);
|
|
11
11
|
const moduleDefinition = {
|
|
12
12
|
global: true,
|
|
13
|
-
imports: [nats_object_storage_module_1.NatsObjectStorageModule.forFeature(
|
|
13
|
+
imports: [nats_object_storage_module_1.NatsObjectStorageModule.forFeature(opts ?? {})],
|
|
14
14
|
module: NatsObjectStorageModuleGenerator,
|
|
15
15
|
providers: [provider],
|
|
16
16
|
exports: [provider],
|
|
17
17
|
};
|
|
18
|
-
metadata_1.RsdkMetadata.add(target, { bucketName,
|
|
18
|
+
metadata_1.RsdkMetadata.add(target, { bucketName, ...opts }, constants_1.NATS_OBJECT_STORAGES_RSDK_METADATA_SCOPE);
|
|
19
19
|
return moduleDefinition;
|
|
20
20
|
}
|
|
21
|
-
static createClientProvider(bucketName,
|
|
21
|
+
static createClientProvider(bucketName, opts) {
|
|
22
22
|
return {
|
|
23
|
-
provide: (0, tokens_fn_1.createObjectStorageToken)(bucketName, connectionName),
|
|
24
|
-
inject: [(0, tokens_fn_1.createObjectStorageServiceToken)(connectionName)],
|
|
25
|
-
useFactory: (service) => service.bind({ bucketName }),
|
|
23
|
+
provide: (0, tokens_fn_1.createObjectStorageToken)(bucketName, opts?.connectionName),
|
|
24
|
+
inject: [(0, tokens_fn_1.createObjectStorageServiceToken)(opts?.connectionName)],
|
|
25
|
+
useFactory: (service) => service.bind({ bucketName, ...opts }),
|
|
26
26
|
};
|
|
27
27
|
}
|
|
28
28
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nats-object-storage-module.generator.js","sourceRoot":"","sources":["../src/nats-object-storage-module.generator.ts"],"names":[],"mappings":";;;AACA,6CAA8C;AAE9C,2CAAuE;
|
|
1
|
+
{"version":3,"file":"nats-object-storage-module.generator.js","sourceRoot":"","sources":["../src/nats-object-storage-module.generator.ts"],"names":[],"mappings":";;;AACA,6CAA8C;AAE9C,2CAAuE;AAEvE,6EAAuE;AAEvE,2CAGqB;AAErB,MAAa,gCAAgC;IAC3C,MAAM,CAAC,4BAA4B,CACjC,MAAc,EACd,UAAkB,EAClB,IAAmD;QAEnD,MAAM,QAAQ,GAAG,gCAAgC,CAAC,oBAAoB,CACpE,UAAU,EACV,IAAI,CACL,CAAC;QAEF,MAAM,gBAAgB,GAAkB;YACtC,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,CAAC,oDAAuB,CAAC,UAAU,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;YACzD,MAAM,EAAE,gCAAgC;YACxC,SAAS,EAAE,CAAC,QAAQ,CAAC;YACrB,OAAO,EAAE,CAAC,QAAQ,CAAC;SACpB,CAAC;QAEF,uBAAY,CAAC,GAAG,CACd,MAAM,EACN,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,EACvB,oDAAwC,CACzC,CAAC;QAEF,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAED,MAAM,CAAC,oBAAoB,CACzB,UAAkB,EAClB,IAAmD;QAEnD,OAAO;YACL,OAAO,EAAE,IAAA,oCAAwB,EAAC,UAAU,EAAE,IAAI,EAAE,cAAc,CAAC;YACnE,MAAM,EAAE,CAAC,IAAA,2CAA+B,EAAC,IAAI,EAAE,cAAc,CAAC,CAAC;YAC/D,UAAU,EAAE,CACV,OAAiC,EACL,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,CAAC;SACvE,CAAC;IACJ,CAAC;CACF;AAxCD,4EAwCC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ObjectInfo, ObjectResult, ObjectStore, ObjectStoreMeta, ObjectStorePutOpts, PurgeResponse } from 'nats';
|
|
2
|
-
export declare class
|
|
2
|
+
export declare class NatsObjectStorage {
|
|
3
3
|
private readonly storage;
|
|
4
4
|
constructor(storage: ObjectStore);
|
|
5
5
|
/**
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
class
|
|
3
|
+
exports.NatsObjectStorage = void 0;
|
|
4
|
+
class NatsObjectStorage {
|
|
5
5
|
storage;
|
|
6
6
|
constructor(storage) {
|
|
7
7
|
this.storage = storage;
|
|
@@ -39,5 +39,5 @@ class ObjectStorage {
|
|
|
39
39
|
return this.storage;
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
|
-
exports.
|
|
43
|
-
//# sourceMappingURL=object-storage.js.map
|
|
42
|
+
exports.NatsObjectStorage = NatsObjectStorage;
|
|
43
|
+
//# sourceMappingURL=nats-object-storage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nats-object-storage.js","sourceRoot":"","sources":["../src/nats-object-storage.ts"],"names":[],"mappings":";;;AASA,MAAa,iBAAiB;IACC;IAA7B,YAA6B,OAAoB;QAApB,YAAO,GAAP,OAAO,CAAa;IAAG,CAAC;IAErD;;OAEG;IACI,GAAG,CAAC,GAAW;QACpB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,GAAW;QACvB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IAED;;OAEG;IACI,GAAG,CACR,IAAqB,EACrB,EAA8B,EAC9B,IAAyB;QAEzB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;IAC1C,CAAC;IAED;;OAEG;IACI,IAAI;QACT,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IAC7B,CAAC;IAED;;;;OAIG;IACI,aAAa;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;CACF;AA3CD,8CA2CC"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import type { DynamicModule, OnApplicationBootstrap, OnApplicationShutdown } from '@nestjs/common';
|
|
2
|
+
import type { ModuleOptions } from './module-options.interface';
|
|
2
3
|
import { WatchObjectStorageService } from './watch-object-storage.service';
|
|
3
4
|
export declare class NatsObjectStorageModule implements OnApplicationBootstrap, OnApplicationShutdown {
|
|
4
5
|
private readonly watchService;
|
|
5
6
|
constructor(watchService: WatchObjectStorageService);
|
|
6
|
-
static forFeature(connectionName
|
|
7
|
+
static forFeature({ connectionName }: ModuleOptions): DynamicModule;
|
|
7
8
|
onApplicationBootstrap(): Promise<void>;
|
|
8
9
|
onApplicationShutdown(): Promise<void>;
|
|
9
10
|
}
|
|
@@ -22,13 +22,14 @@ let NatsObjectStorageModule = NatsObjectStorageModule_1 = class NatsObjectStorag
|
|
|
22
22
|
constructor(watchService) {
|
|
23
23
|
this.watchService = watchService;
|
|
24
24
|
}
|
|
25
|
-
static forFeature(connectionName) {
|
|
25
|
+
static forFeature({ connectionName }) {
|
|
26
26
|
const clientProvider = {
|
|
27
27
|
provide: (0, tokens_fn_1.createObjectStorageServiceToken)(connectionName),
|
|
28
28
|
useClass: nats_object_storage_service_1.NatsObjectStorageService,
|
|
29
29
|
};
|
|
30
30
|
return {
|
|
31
31
|
module: NatsObjectStorageModule_1,
|
|
32
|
+
global: true,
|
|
32
33
|
providers: [
|
|
33
34
|
{
|
|
34
35
|
provide: nats_common_1.NATS_CLIENT_INJECTION_TOKEN_FOR_PACKAGE,
|
|
@@ -36,6 +37,12 @@ let NatsObjectStorageModule = NatsObjectStorageModule_1 = class NatsObjectStorag
|
|
|
36
37
|
? (0, nats_common_1.createNatsClientToken)(connectionName)
|
|
37
38
|
: nats_common_1.NATS_CLIENT_INJECTION_TOKEN,
|
|
38
39
|
},
|
|
40
|
+
{
|
|
41
|
+
provide: nats_common_1.NATS_CONFIG_INJECTION_TOKEN_FOR_PACKAGE,
|
|
42
|
+
useExisting: connectionName
|
|
43
|
+
? (0, nats_common_1.createNatsConfigToken)(connectionName)
|
|
44
|
+
: nats_common_1.NATS_CONFIG_INJECTION_TOKEN,
|
|
45
|
+
},
|
|
39
46
|
{
|
|
40
47
|
provide: 'CONNECTION_NAME',
|
|
41
48
|
useFactory: () => connectionName,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nats-object-storage.module.js","sourceRoot":"","sources":["../src/nats-object-storage.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAMA,2CAAwC;AACxC,uCAA+C;AAC/C,
|
|
1
|
+
{"version":3,"file":"nats-object-storage.module.js","sourceRoot":"","sources":["../src/nats-object-storage.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAMA,2CAAwC;AACxC,uCAA+C;AAC/C,mDAO2B;AAG3B,+EAAyE;AACzE,2CAA8D;AAC9D,iFAA2E;AAMpE,IAAM,uBAAuB,+BAA7B,MAAM,uBAAuB;IAGL;IAA7B,YAA6B,YAAuC;QAAvC,iBAAY,GAAZ,YAAY,CAA2B;IAAG,CAAC;IAEjE,MAAM,CAAC,UAAU,CAAC,EAAE,cAAc,EAAiB;QACxD,MAAM,cAAc,GAAa;YAC/B,OAAO,EAAE,IAAA,2CAA+B,EAAC,cAAc,CAAC;YACxD,QAAQ,EAAE,sDAAwB;SACnC,CAAC;QAEF,OAAO;YACL,MAAM,EAAE,yBAAuB;YAC/B,MAAM,EAAE,IAAI;YACZ,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,qDAAuC;oBAChD,WAAW,EAAE,cAAc;wBACzB,CAAC,CAAC,IAAA,mCAAqB,EAAC,cAAc,CAAC;wBACvC,CAAC,CAAC,yCAA2B;iBAChC;gBACD;oBACE,OAAO,EAAE,qDAAuC;oBAChD,WAAW,EAAE,cAAc;wBACzB,CAAC,CAAC,IAAA,mCAAqB,EAAC,cAAc,CAAC;wBACvC,CAAC,CAAC,yCAA2B;iBAChC;gBACD;oBACE,OAAO,EAAE,iBAAiB;oBAC1B,UAAU,EAAE,GAAG,EAAE,CAAC,cAAc;iBACjC;gBACD,cAAc;aACf;YACD,OAAO,EAAE,CAAC,cAAc,CAAC;SAC1B,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,sBAAsB;QAC1B,MAAM,IAAI,CAAC,YAAY,EAAE,UAAU,EAAE,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,qBAAqB;QACzB,MAAM,IAAI,CAAC,YAAY,EAAE,WAAW,EAAE,CAAC;IACzC,CAAC;CACF,CAAA;AA5CY,0DAAuB;kCAAvB,uBAAuB;IAJnC,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,sBAAe,CAAC;QAC1B,SAAS,EAAE,CAAC,sDAAwB,EAAE,wDAAyB,CAAC;KACjE,CAAC;qCAI2C,wDAAyB;GAHzD,uBAAuB,CA4CnC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { DynamicModule } from '@nestjs/common';
|
|
2
|
+
import type { Constructor } from '@rsdk/common';
|
|
3
|
+
import type { AppropriateTransports, PlatformAppPlugin } from '@rsdk/core';
|
|
4
|
+
import type { ModuleOptions } from './module-options.interface';
|
|
5
|
+
export declare class NatsObjectStoragePlugin implements PlatformAppPlugin {
|
|
6
|
+
private readonly options?;
|
|
7
|
+
constructor(options?: ModuleOptions | undefined);
|
|
8
|
+
forTransports(): AppropriateTransports;
|
|
9
|
+
modules(): (DynamicModule | Constructor)[];
|
|
10
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NatsObjectStoragePlugin = void 0;
|
|
4
|
+
const nats_object_storage_module_1 = require("./nats-object-storage.module");
|
|
5
|
+
class NatsObjectStoragePlugin {
|
|
6
|
+
options;
|
|
7
|
+
constructor(options) {
|
|
8
|
+
this.options = options;
|
|
9
|
+
}
|
|
10
|
+
forTransports() {
|
|
11
|
+
return 'any';
|
|
12
|
+
}
|
|
13
|
+
modules() {
|
|
14
|
+
return [nats_object_storage_module_1.NatsObjectStorageModule.forFeature(this.options ?? {})];
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
exports.NatsObjectStoragePlugin = NatsObjectStoragePlugin;
|
|
18
|
+
//# sourceMappingURL=nats-object-storage.plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nats-object-storage.plugin.js","sourceRoot":"","sources":["../src/nats-object-storage.plugin.ts"],"names":[],"mappings":";;;AAKA,6EAAuE;AAEvE,MAAa,uBAAuB;IACL;IAA7B,YAA6B,OAAuB;QAAvB,YAAO,GAAP,OAAO,CAAgB;IAAG,CAAC;IAExD,aAAa;QACX,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO;QACL,OAAO,CAAC,oDAAuB,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;IAClE,CAAC;CACF;AAVD,0DAUC"}
|
|
@@ -1,25 +1,27 @@
|
|
|
1
1
|
import { ILogger } from '@rsdk/logging';
|
|
2
|
+
import { DefaultNatsConfig } from '@rsdk/nats.common';
|
|
2
3
|
import { NatsConnection } from 'nats';
|
|
3
4
|
import type { ObjectStoreOptions } from 'nats/lib/jetstream/types';
|
|
4
|
-
import {
|
|
5
|
+
import { NatsObjectStorage } from './nats-object-storage';
|
|
5
6
|
export declare class NatsObjectStorageService {
|
|
6
7
|
private readonly logger;
|
|
7
8
|
private readonly nats;
|
|
8
|
-
|
|
9
|
+
private readonly config;
|
|
10
|
+
constructor(logger: ILogger, nats: NatsConnection, config: DefaultNatsConfig);
|
|
9
11
|
/**
|
|
10
12
|
* Get or create object storage
|
|
11
13
|
*/
|
|
12
14
|
create({ bucketName, domain, ...opts }: Partial<ObjectStoreOptions> & {
|
|
13
15
|
bucketName: string;
|
|
14
16
|
domain?: string;
|
|
15
|
-
}): Promise<
|
|
17
|
+
}): Promise<NatsObjectStorage>;
|
|
16
18
|
/**
|
|
17
19
|
* Get object storage
|
|
18
20
|
*/
|
|
19
21
|
bind({ bucketName, domain, ...opts }: Partial<ObjectStoreOptions> & {
|
|
20
22
|
bucketName: string;
|
|
21
23
|
domain?: string;
|
|
22
|
-
}): Promise<
|
|
24
|
+
}): Promise<NatsObjectStorage>;
|
|
23
25
|
/**
|
|
24
26
|
* Waits for the specified bucket to exist.
|
|
25
27
|
*
|
|
@@ -17,27 +17,30 @@ const common_1 = require("@nestjs/common");
|
|
|
17
17
|
const common_2 = require("@rsdk/common");
|
|
18
18
|
const core_1 = require("@rsdk/core");
|
|
19
19
|
const nats_common_1 = require("@rsdk/nats.common");
|
|
20
|
-
const
|
|
20
|
+
const nats_object_storage_1 = require("./nats-object-storage");
|
|
21
21
|
let NatsObjectStorageService = class NatsObjectStorageService {
|
|
22
22
|
logger;
|
|
23
23
|
nats;
|
|
24
|
-
|
|
24
|
+
config;
|
|
25
|
+
constructor(logger, nats, config) {
|
|
25
26
|
this.logger = logger;
|
|
26
27
|
this.nats = nats;
|
|
28
|
+
this.config = config;
|
|
27
29
|
}
|
|
28
30
|
/**
|
|
29
31
|
* Get or create object storage
|
|
30
32
|
*/
|
|
31
33
|
async create({ bucketName, domain, ...opts }) {
|
|
32
|
-
const
|
|
33
|
-
|
|
34
|
+
const js = this.nats.jetstream({
|
|
35
|
+
domain: domain ?? this.config.defaultJetStreamDomain,
|
|
36
|
+
});
|
|
34
37
|
try {
|
|
35
38
|
const storage = await js.views.os(bucketName, opts);
|
|
36
39
|
this.logger.trace('Object storage initialized', {
|
|
37
40
|
connectionName: this.nats.info,
|
|
38
41
|
bucket: bucketName,
|
|
39
42
|
});
|
|
40
|
-
return new
|
|
43
|
+
return new nats_object_storage_1.NatsObjectStorage(storage);
|
|
41
44
|
}
|
|
42
45
|
catch (error) {
|
|
43
46
|
this.logger.error('Failed to get or create object storage', {
|
|
@@ -51,15 +54,16 @@ let NatsObjectStorageService = class NatsObjectStorageService {
|
|
|
51
54
|
* Get object storage
|
|
52
55
|
*/
|
|
53
56
|
async bind({ bucketName, domain, ...opts }) {
|
|
54
|
-
const
|
|
55
|
-
|
|
57
|
+
const js = this.nats.jetstream({
|
|
58
|
+
domain: domain ?? this.config.defaultJetStreamDomain,
|
|
59
|
+
});
|
|
56
60
|
try {
|
|
57
61
|
const storage = await js.views.os(bucketName, opts);
|
|
58
62
|
this.logger.trace('Object storage bound', {
|
|
59
63
|
connectionName: this.nats.info,
|
|
60
64
|
bucket: bucketName,
|
|
61
65
|
});
|
|
62
|
-
return new
|
|
66
|
+
return new nats_object_storage_1.NatsObjectStorage(storage);
|
|
63
67
|
}
|
|
64
68
|
catch (error) {
|
|
65
69
|
this.logger.error('Failed to get object storage', {
|
|
@@ -113,6 +117,7 @@ exports.NatsObjectStorageService = NatsObjectStorageService = __decorate([
|
|
|
113
117
|
(0, common_1.Injectable)(),
|
|
114
118
|
__param(0, (0, core_1.InjectLogger)(NatsObjectStorageService)),
|
|
115
119
|
__param(1, (0, common_1.Inject)(nats_common_1.NATS_CLIENT_INJECTION_TOKEN_FOR_PACKAGE)),
|
|
116
|
-
|
|
120
|
+
__param(2, (0, common_1.Inject)(nats_common_1.NATS_CONFIG_INJECTION_TOKEN_FOR_PACKAGE)),
|
|
121
|
+
__metadata("design:paramtypes", [Object, Object, nats_common_1.DefaultNatsConfig])
|
|
117
122
|
], NatsObjectStorageService);
|
|
118
123
|
//# sourceMappingURL=nats-object-storage.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nats-object-storage.service.js","sourceRoot":"","sources":["../src/nats-object-storage.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAoD;AACpD,yCAA+C;AAC/C,qCAA6D;AAE7D,
|
|
1
|
+
{"version":3,"file":"nats-object-storage.service.js","sourceRoot":"","sources":["../src/nats-object-storage.service.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rsdk/nats.object-storage",
|
|
3
|
-
"version": "5.4.0-next.
|
|
3
|
+
"version": "5.4.0-next.12",
|
|
4
4
|
"description": "Nats NestJS object storage",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"license": "Apache License 2.0",
|
|
@@ -38,5 +38,5 @@
|
|
|
38
38
|
"rxjs": "^7.8.1"
|
|
39
39
|
},
|
|
40
40
|
"nx": {},
|
|
41
|
-
"gitHead": "
|
|
41
|
+
"gitHead": "88e409e787507b8acdb1fbe2af611b7ef46a9e5d"
|
|
42
42
|
}
|
package/src/index.ts
CHANGED
|
@@ -6,7 +6,8 @@ export {
|
|
|
6
6
|
type ObjectStorageWatcher,
|
|
7
7
|
} from './watch-object-storage.decorator';
|
|
8
8
|
export { NatsObjectStorageModule } from './nats-object-storage.module';
|
|
9
|
-
export {
|
|
9
|
+
export { NatsObjectStorage } from './nats-object-storage';
|
|
10
10
|
export * from './inject-object-storage-service.decorator';
|
|
11
11
|
export * from './tokens.fn';
|
|
12
12
|
export { NatsObjectStorageModuleGenerator } from './nats-object-storage-module.generator';
|
|
13
|
+
export { NatsObjectStoragePlugin } from './nats-object-storage.plugin';
|
|
@@ -17,21 +17,21 @@ export const InjectObjectStorageService = (
|
|
|
17
17
|
|
|
18
18
|
export const InjectNatsObjectStorage = (
|
|
19
19
|
bucketName: string,
|
|
20
|
-
connectionName?: string,
|
|
20
|
+
opts?: { connectionName?: string; domain?: string },
|
|
21
21
|
): ParameterDecorator => {
|
|
22
22
|
return (target, propertyKey, parameterIndex) => {
|
|
23
|
-
Inject(createObjectStorageToken(bucketName, connectionName))(
|
|
23
|
+
Inject(createObjectStorageToken(bucketName, opts?.connectionName))(
|
|
24
24
|
target,
|
|
25
25
|
propertyKey,
|
|
26
26
|
parameterIndex,
|
|
27
27
|
);
|
|
28
28
|
|
|
29
|
-
const key = `nats-kv:${bucketName}${connectionName ? `:${connectionName}` : ''}`;
|
|
29
|
+
const key = `nats-kv:${bucketName}${opts?.connectionName ? `:${opts.connectionName}` : ''}`;
|
|
30
30
|
const moduleDefinition =
|
|
31
31
|
NatsObjectStorageModuleGenerator.createClientModuleDefinition(
|
|
32
32
|
target,
|
|
33
33
|
bucketName,
|
|
34
|
-
|
|
34
|
+
opts,
|
|
35
35
|
);
|
|
36
36
|
|
|
37
37
|
RsdkMetadata.setWithScope(
|
|
@@ -2,9 +2,9 @@ import type { DynamicModule, FactoryProvider } from '@nestjs/common';
|
|
|
2
2
|
import { RsdkMetadata } from '@rsdk/metadata';
|
|
3
3
|
|
|
4
4
|
import { NATS_OBJECT_STORAGES_RSDK_METADATA_SCOPE } from './constants';
|
|
5
|
+
import type { NatsObjectStorage } from './nats-object-storage';
|
|
5
6
|
import { NatsObjectStorageModule } from './nats-object-storage.module';
|
|
6
7
|
import type { NatsObjectStorageService } from './nats-object-storage.service';
|
|
7
|
-
import type { ObjectStorage } from './object-storage';
|
|
8
8
|
import {
|
|
9
9
|
createObjectStorageServiceToken,
|
|
10
10
|
createObjectStorageToken,
|
|
@@ -14,16 +14,16 @@ export class NatsObjectStorageModuleGenerator {
|
|
|
14
14
|
static createClientModuleDefinition(
|
|
15
15
|
target: object,
|
|
16
16
|
bucketName: string,
|
|
17
|
-
connectionName?: string,
|
|
17
|
+
opts?: { connectionName?: string; domain?: string },
|
|
18
18
|
): DynamicModule {
|
|
19
19
|
const provider = NatsObjectStorageModuleGenerator.createClientProvider(
|
|
20
20
|
bucketName,
|
|
21
|
-
|
|
21
|
+
opts,
|
|
22
22
|
);
|
|
23
23
|
|
|
24
24
|
const moduleDefinition: DynamicModule = {
|
|
25
25
|
global: true,
|
|
26
|
-
imports: [NatsObjectStorageModule.forFeature(
|
|
26
|
+
imports: [NatsObjectStorageModule.forFeature(opts ?? {})],
|
|
27
27
|
module: NatsObjectStorageModuleGenerator,
|
|
28
28
|
providers: [provider],
|
|
29
29
|
exports: [provider],
|
|
@@ -31,7 +31,7 @@ export class NatsObjectStorageModuleGenerator {
|
|
|
31
31
|
|
|
32
32
|
RsdkMetadata.add(
|
|
33
33
|
target,
|
|
34
|
-
{ bucketName,
|
|
34
|
+
{ bucketName, ...opts },
|
|
35
35
|
NATS_OBJECT_STORAGES_RSDK_METADATA_SCOPE,
|
|
36
36
|
);
|
|
37
37
|
|
|
@@ -40,13 +40,14 @@ export class NatsObjectStorageModuleGenerator {
|
|
|
40
40
|
|
|
41
41
|
static createClientProvider(
|
|
42
42
|
bucketName: string,
|
|
43
|
-
connectionName?: string,
|
|
43
|
+
opts?: { connectionName?: string; domain?: string },
|
|
44
44
|
): FactoryProvider {
|
|
45
45
|
return {
|
|
46
|
-
provide: createObjectStorageToken(bucketName, connectionName),
|
|
47
|
-
inject: [createObjectStorageServiceToken(connectionName)],
|
|
48
|
-
useFactory: (
|
|
49
|
-
service
|
|
46
|
+
provide: createObjectStorageToken(bucketName, opts?.connectionName),
|
|
47
|
+
inject: [createObjectStorageServiceToken(opts?.connectionName)],
|
|
48
|
+
useFactory: (
|
|
49
|
+
service: NatsObjectStorageService,
|
|
50
|
+
): Promise<NatsObjectStorage> => service.bind({ bucketName, ...opts }),
|
|
50
51
|
};
|
|
51
52
|
}
|
|
52
53
|
}
|
|
@@ -8,10 +8,14 @@ import { Module } from '@nestjs/common';
|
|
|
8
8
|
import { DiscoveryModule } from '@nestjs/core';
|
|
9
9
|
import {
|
|
10
10
|
createNatsClientToken,
|
|
11
|
+
createNatsConfigToken,
|
|
11
12
|
NATS_CLIENT_INJECTION_TOKEN,
|
|
12
13
|
NATS_CLIENT_INJECTION_TOKEN_FOR_PACKAGE,
|
|
14
|
+
NATS_CONFIG_INJECTION_TOKEN,
|
|
15
|
+
NATS_CONFIG_INJECTION_TOKEN_FOR_PACKAGE,
|
|
13
16
|
} from '@rsdk/nats.common';
|
|
14
17
|
|
|
18
|
+
import type { ModuleOptions } from './module-options.interface';
|
|
15
19
|
import { NatsObjectStorageService } from './nats-object-storage.service';
|
|
16
20
|
import { createObjectStorageServiceToken } from './tokens.fn';
|
|
17
21
|
import { WatchObjectStorageService } from './watch-object-storage.service';
|
|
@@ -25,7 +29,7 @@ export class NatsObjectStorageModule
|
|
|
25
29
|
{
|
|
26
30
|
constructor(private readonly watchService: WatchObjectStorageService) {}
|
|
27
31
|
|
|
28
|
-
public static forFeature(connectionName
|
|
32
|
+
public static forFeature({ connectionName }: ModuleOptions): DynamicModule {
|
|
29
33
|
const clientProvider: Provider = {
|
|
30
34
|
provide: createObjectStorageServiceToken(connectionName),
|
|
31
35
|
useClass: NatsObjectStorageService,
|
|
@@ -33,6 +37,7 @@ export class NatsObjectStorageModule
|
|
|
33
37
|
|
|
34
38
|
return {
|
|
35
39
|
module: NatsObjectStorageModule,
|
|
40
|
+
global: true,
|
|
36
41
|
providers: [
|
|
37
42
|
{
|
|
38
43
|
provide: NATS_CLIENT_INJECTION_TOKEN_FOR_PACKAGE,
|
|
@@ -40,6 +45,12 @@ export class NatsObjectStorageModule
|
|
|
40
45
|
? createNatsClientToken(connectionName)
|
|
41
46
|
: NATS_CLIENT_INJECTION_TOKEN,
|
|
42
47
|
},
|
|
48
|
+
{
|
|
49
|
+
provide: NATS_CONFIG_INJECTION_TOKEN_FOR_PACKAGE,
|
|
50
|
+
useExisting: connectionName
|
|
51
|
+
? createNatsConfigToken(connectionName)
|
|
52
|
+
: NATS_CONFIG_INJECTION_TOKEN,
|
|
53
|
+
},
|
|
43
54
|
{
|
|
44
55
|
provide: 'CONNECTION_NAME',
|
|
45
56
|
useFactory: () => connectionName,
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { DynamicModule } from '@nestjs/common';
|
|
2
|
+
import type { Constructor } from '@rsdk/common';
|
|
3
|
+
import type { AppropriateTransports, PlatformAppPlugin } from '@rsdk/core';
|
|
4
|
+
|
|
5
|
+
import type { ModuleOptions } from './module-options.interface';
|
|
6
|
+
import { NatsObjectStorageModule } from './nats-object-storage.module';
|
|
7
|
+
|
|
8
|
+
export class NatsObjectStoragePlugin implements PlatformAppPlugin {
|
|
9
|
+
constructor(private readonly options?: ModuleOptions) {}
|
|
10
|
+
|
|
11
|
+
forTransports(): AppropriateTransports {
|
|
12
|
+
return 'any';
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
modules(): (DynamicModule | Constructor)[] {
|
|
16
|
+
return [NatsObjectStorageModule.forFeature(this.options ?? {})];
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -2,11 +2,15 @@ import { Inject, Injectable } from '@nestjs/common';
|
|
|
2
2
|
import { delay, Timespan } from '@rsdk/common';
|
|
3
3
|
import { InjectLogger, InternalException } from '@rsdk/core';
|
|
4
4
|
import { ILogger } from '@rsdk/logging';
|
|
5
|
-
import {
|
|
5
|
+
import {
|
|
6
|
+
DefaultNatsConfig,
|
|
7
|
+
NATS_CLIENT_INJECTION_TOKEN_FOR_PACKAGE,
|
|
8
|
+
NATS_CONFIG_INJECTION_TOKEN_FOR_PACKAGE,
|
|
9
|
+
} from '@rsdk/nats.common';
|
|
6
10
|
import { NatsConnection } from 'nats';
|
|
7
11
|
import type { ObjectStoreOptions } from 'nats/lib/jetstream/types';
|
|
8
12
|
|
|
9
|
-
import {
|
|
13
|
+
import { NatsObjectStorage } from './nats-object-storage';
|
|
10
14
|
|
|
11
15
|
@Injectable()
|
|
12
16
|
export class NatsObjectStorageService {
|
|
@@ -15,6 +19,8 @@ export class NatsObjectStorageService {
|
|
|
15
19
|
private readonly logger: ILogger,
|
|
16
20
|
@Inject(NATS_CLIENT_INJECTION_TOKEN_FOR_PACKAGE)
|
|
17
21
|
private readonly nats: NatsConnection,
|
|
22
|
+
@Inject(NATS_CONFIG_INJECTION_TOKEN_FOR_PACKAGE)
|
|
23
|
+
private readonly config: DefaultNatsConfig,
|
|
18
24
|
) {}
|
|
19
25
|
|
|
20
26
|
/**
|
|
@@ -27,9 +33,10 @@ export class NatsObjectStorageService {
|
|
|
27
33
|
}: Partial<ObjectStoreOptions> & {
|
|
28
34
|
bucketName: string;
|
|
29
35
|
domain?: string;
|
|
30
|
-
}): Promise<
|
|
31
|
-
const
|
|
32
|
-
|
|
36
|
+
}): Promise<NatsObjectStorage> {
|
|
37
|
+
const js = this.nats.jetstream({
|
|
38
|
+
domain: domain ?? this.config.defaultJetStreamDomain,
|
|
39
|
+
});
|
|
33
40
|
|
|
34
41
|
try {
|
|
35
42
|
const storage = await js.views.os(bucketName, opts);
|
|
@@ -39,7 +46,7 @@ export class NatsObjectStorageService {
|
|
|
39
46
|
bucket: bucketName,
|
|
40
47
|
});
|
|
41
48
|
|
|
42
|
-
return new
|
|
49
|
+
return new NatsObjectStorage(storage);
|
|
43
50
|
} catch (error) {
|
|
44
51
|
this.logger.error('Failed to get or create object storage', {
|
|
45
52
|
err: error,
|
|
@@ -59,9 +66,10 @@ export class NatsObjectStorageService {
|
|
|
59
66
|
}: Partial<ObjectStoreOptions> & {
|
|
60
67
|
bucketName: string;
|
|
61
68
|
domain?: string;
|
|
62
|
-
}): Promise<
|
|
63
|
-
const
|
|
64
|
-
|
|
69
|
+
}): Promise<NatsObjectStorage> {
|
|
70
|
+
const js = this.nats.jetstream({
|
|
71
|
+
domain: domain ?? this.config.defaultJetStreamDomain,
|
|
72
|
+
});
|
|
65
73
|
|
|
66
74
|
try {
|
|
67
75
|
const storage = await js.views.os(bucketName, opts);
|
|
@@ -71,7 +79,7 @@ export class NatsObjectStorageService {
|
|
|
71
79
|
bucket: bucketName,
|
|
72
80
|
});
|
|
73
81
|
|
|
74
|
-
return new
|
|
82
|
+
return new NatsObjectStorage(storage);
|
|
75
83
|
} catch (error) {
|
|
76
84
|
this.logger.error('Failed to get object storage', {
|
|
77
85
|
err: error,
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"object-storage.js","sourceRoot":"","sources":["../src/object-storage.ts"],"names":[],"mappings":";;;AASA,MAAa,aAAa;IACK;IAA7B,YAA6B,OAAoB;QAApB,YAAO,GAAP,OAAO,CAAa;IAAG,CAAC;IAErD;;OAEG;IACI,GAAG,CAAC,GAAW;QACpB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,GAAW;QACvB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IAED;;OAEG;IACI,GAAG,CACR,IAAqB,EACrB,EAA8B,EAC9B,IAAyB;QAEzB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;IAC1C,CAAC;IAED;;OAEG;IACI,IAAI;QACT,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IAC7B,CAAC;IAED;;;;OAIG;IACI,aAAa;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;CACF;AA3CD,sCA2CC"}
|