@node-c/persistance-redis 1.0.0-alpha1

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.
Files changed (83) hide show
  1. package/LICENSE +1 -0
  2. package/README.md +4 -0
  3. package/coverage/base.css +224 -0
  4. package/coverage/block-navigation.js +87 -0
  5. package/coverage/clover.xml +573 -0
  6. package/coverage/common/definitions/common.constants.ts.html +121 -0
  7. package/coverage/common/definitions/index.html +131 -0
  8. package/coverage/common/definitions/index.ts.html +88 -0
  9. package/coverage/coverage-final.json +13 -0
  10. package/coverage/entityService/index.html +131 -0
  11. package/coverage/entityService/index.ts.html +91 -0
  12. package/coverage/entityService/redis.entity.service.ts.html +439 -0
  13. package/coverage/favicon.png +0 -0
  14. package/coverage/index.html +176 -0
  15. package/coverage/module/index.html +131 -0
  16. package/coverage/module/index.ts.html +91 -0
  17. package/coverage/module/redis.module.ts.html +169 -0
  18. package/coverage/prettify.css +1 -0
  19. package/coverage/prettify.js +2 -0
  20. package/coverage/repository/index.html +146 -0
  21. package/coverage/repository/index.ts.html +94 -0
  22. package/coverage/repository/redis.repository.module.ts.html +181 -0
  23. package/coverage/repository/redis.repository.service.ts.html +763 -0
  24. package/coverage/sort-arrow-sprite.png +0 -0
  25. package/coverage/sorter.js +196 -0
  26. package/coverage/store/index.html +146 -0
  27. package/coverage/store/index.ts.html +94 -0
  28. package/coverage/store/redis.store.module.ts.html +181 -0
  29. package/coverage/store/redis.store.service.ts.html +586 -0
  30. package/dist/common/definitions/common.constants.d.ts +7 -0
  31. package/dist/common/definitions/common.constants.js +12 -0
  32. package/dist/common/definitions/common.constants.js.map +1 -0
  33. package/dist/common/definitions/index.d.ts +1 -0
  34. package/dist/common/definitions/index.js +18 -0
  35. package/dist/common/definitions/index.js.map +1 -0
  36. package/dist/entityService/index.d.ts +2 -0
  37. package/dist/entityService/index.js +19 -0
  38. package/dist/entityService/index.js.map +1 -0
  39. package/dist/entityService/redis.entity.service.d.ts +16 -0
  40. package/dist/entityService/redis.entity.service.definitions.d.ts +19 -0
  41. package/dist/entityService/redis.entity.service.definitions.js +3 -0
  42. package/dist/entityService/redis.entity.service.definitions.js.map +1 -0
  43. package/dist/entityService/redis.entity.service.js +121 -0
  44. package/dist/entityService/redis.entity.service.js.map +1 -0
  45. package/dist/index.d.ts +5 -0
  46. package/dist/index.js +22 -0
  47. package/dist/index.js.map +1 -0
  48. package/dist/module/index.d.ts +2 -0
  49. package/dist/module/index.js +19 -0
  50. package/dist/module/index.js.map +1 -0
  51. package/dist/module/redis.module.d.ts +5 -0
  52. package/dist/module/redis.module.definitions.d.ts +14 -0
  53. package/dist/module/redis.module.definitions.js +3 -0
  54. package/dist/module/redis.module.definitions.js.map +1 -0
  55. package/dist/module/redis.module.js +27 -0
  56. package/dist/module/redis.module.js.map +1 -0
  57. package/dist/repository/index.d.ts +3 -0
  58. package/dist/repository/index.js +20 -0
  59. package/dist/repository/index.js.map +1 -0
  60. package/dist/repository/redis.repository.definitions.d.ts +48 -0
  61. package/dist/repository/redis.repository.definitions.js +17 -0
  62. package/dist/repository/redis.repository.definitions.js.map +1 -0
  63. package/dist/repository/redis.repository.module.d.ts +5 -0
  64. package/dist/repository/redis.repository.module.js +42 -0
  65. package/dist/repository/redis.repository.module.js.map +1 -0
  66. package/dist/repository/redis.repository.service.d.ts +18 -0
  67. package/dist/repository/redis.repository.service.js +216 -0
  68. package/dist/repository/redis.repository.service.js.map +1 -0
  69. package/dist/store/index.d.ts +3 -0
  70. package/dist/store/index.js +20 -0
  71. package/dist/store/index.js.map +1 -0
  72. package/dist/store/redis.store.definitions.d.ts +32 -0
  73. package/dist/store/redis.store.definitions.js +3 -0
  74. package/dist/store/redis.store.definitions.js.map +1 -0
  75. package/dist/store/redis.store.module.d.ts +5 -0
  76. package/dist/store/redis.store.module.js +50 -0
  77. package/dist/store/redis.store.module.js.map +1 -0
  78. package/dist/store/redis.store.service.d.ts +20 -0
  79. package/dist/store/redis.store.service.js +171 -0
  80. package/dist/store/redis.store.service.js.map +1 -0
  81. package/package.json +28 -0
  82. package/tsconfig.build.json +9 -0
  83. package/tsconfig.json +9 -0
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./redis.entity.service.definitions"), exports);
18
+ __exportStar(require("./redis.entity.service"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/entityService/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qEAAmD;AACnD,yDAAuC"}
@@ -0,0 +1,16 @@
1
+ import { DeleteResult, FindResults, PersistanceEntityService, UpdateResult } from '@node-c/core';
2
+ import { BulkCreateOptions, CreateOptions, DeleteOptions, FindOneOptions, FindOptions, UpdateOptions } from './redis.entity.service.definitions';
3
+ import { RedisRepositoryService } from '../repository';
4
+ import { RedisStoreService } from '../store';
5
+ export declare class RedisEntityService<Entity extends object> extends PersistanceEntityService<Entity> {
6
+ protected repository: RedisRepositoryService<Entity>;
7
+ protected store: RedisStoreService;
8
+ constructor(repository: RedisRepositoryService<Entity>, store: RedisStoreService);
9
+ bulkCreate(data: Entity[], options?: BulkCreateOptions): Promise<Entity[]>;
10
+ create(data: Entity, options?: CreateOptions): Promise<Entity>;
11
+ count(options: FindOptions): Promise<number | undefined>;
12
+ delete(options: DeleteOptions): Promise<DeleteResult>;
13
+ find(options: FindOptions): Promise<FindResults<Entity>>;
14
+ findOne(options: FindOneOptions): Promise<Entity | null>;
15
+ update(data: Entity, options: UpdateOptions): Promise<UpdateResult<Entity>>;
16
+ }
@@ -0,0 +1,19 @@
1
+ import { CountOptions as CommonCountOptions, DeleteOptions as CommonDeleteOptions, FindOneOptions as CommonFindOneOptions, FindOptions as CommonFindOptions, UpdateOptions as CommonUpdateOptions } from '@node-c/core';
2
+ export interface BaseOptions {
3
+ forceTransaction?: boolean;
4
+ transactionId?: string;
5
+ }
6
+ export type BulkCreateOptions = BaseOptions;
7
+ export interface CountOptions extends BaseOptions, Omit<CommonCountOptions, 'withDeleted'> {
8
+ }
9
+ export type CreateOptions = BaseOptions;
10
+ export interface DeleteOptions extends BaseOptions, Omit<CommonDeleteOptions, 'softDelete'> {
11
+ }
12
+ export interface FindOneOptions extends BaseOptions, Omit<CommonFindOneOptions, 'include' | 'orderBy' | 'select' | 'selectOperator' | 'withDeleted'> {
13
+ requirePrimaryKeys?: boolean;
14
+ }
15
+ export interface FindOptions extends BaseOptions, Omit<CommonFindOptions, 'include' | 'orderBy' | 'select' | 'selectOperator' | 'withDeleted'> {
16
+ requirePrimaryKeys?: boolean;
17
+ }
18
+ export interface UpdateOptions extends BaseOptions, CommonUpdateOptions {
19
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=redis.entity.service.definitions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redis.entity.service.definitions.js","sourceRoot":"","sources":["../../src/entityService/redis.entity.service.definitions.ts"],"names":[],"mappings":""}
@@ -0,0 +1,121 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.RedisEntityService = void 0;
13
+ const core_1 = require("@node-c/core");
14
+ const ramda_1 = require("ramda");
15
+ class RedisEntityService extends core_1.PersistanceEntityService {
16
+ constructor(repository, store) {
17
+ super();
18
+ this.repository = repository;
19
+ this.store = store;
20
+ }
21
+ bulkCreate(data, options) {
22
+ return __awaiter(this, void 0, void 0, function* () {
23
+ const { repository, store } = this;
24
+ const actualOptions = Object.assign(options || {});
25
+ const { forceTransaction, transactionId } = actualOptions;
26
+ if (!transactionId && forceTransaction) {
27
+ const tId = store.createTransaction();
28
+ const result = yield this.bulkCreate(data, Object.assign(Object.assign({}, actualOptions), { transactionId: tId }));
29
+ yield store.endTransaction(tId);
30
+ return result;
31
+ }
32
+ return (yield repository.save(data, { transactionId }));
33
+ });
34
+ }
35
+ create(data, options) {
36
+ return __awaiter(this, void 0, void 0, function* () {
37
+ const { repository, store } = this;
38
+ const actualOptions = Object.assign(options || {});
39
+ const { forceTransaction, transactionId } = actualOptions;
40
+ if (!transactionId && forceTransaction) {
41
+ const tId = store.createTransaction();
42
+ const result = yield this.create(data, Object.assign(Object.assign({}, actualOptions), { transactionId: tId }));
43
+ yield store.endTransaction(tId);
44
+ return result;
45
+ }
46
+ return (yield repository.save(data, { transactionId }))[0];
47
+ });
48
+ }
49
+ count(options) {
50
+ return __awaiter(this, void 0, void 0, function* () {
51
+ const { repository } = this;
52
+ const { filters, findAll } = options;
53
+ return (yield repository.find({ filters, findAll })).length;
54
+ });
55
+ }
56
+ delete(options) {
57
+ return __awaiter(this, void 0, void 0, function* () {
58
+ const { repository, store } = this;
59
+ const { filters, forceTransaction, transactionId } = options;
60
+ if (!transactionId && forceTransaction) {
61
+ const tId = store.createTransaction();
62
+ const result = yield this.delete(Object.assign(Object.assign({}, options), { transactionId: tId }));
63
+ yield store.endTransaction(tId);
64
+ return result;
65
+ }
66
+ const { items: itemsToDelete } = yield this.find({ filters, findAll: true, requirePrimaryKeys: true });
67
+ const results = yield repository.save(itemsToDelete, { delete: true, transactionId });
68
+ return { count: results.length };
69
+ });
70
+ }
71
+ find(options) {
72
+ return __awaiter(this, void 0, void 0, function* () {
73
+ const { filters, page: optPage, perPage: optPerPage, findAll: optFindAll } = options;
74
+ const page = optPage ? parseInt(optPage, 10) : 1;
75
+ const perPage = optPerPage ? parseInt(optPerPage, 10) : 10;
76
+ const findAll = optFindAll === true || optFindAll === 'true';
77
+ const findResults = { page: 1, perPage: 0, items: [], more: false };
78
+ if (!findAll) {
79
+ findResults.page = page;
80
+ findResults.perPage = perPage;
81
+ }
82
+ const items = yield this.repository.find({ filters, findAll, page, perPage });
83
+ if (findAll) {
84
+ findResults.perPage = items.length;
85
+ }
86
+ else if (items.length === perPage + 1) {
87
+ items.pop();
88
+ findResults.more = true;
89
+ }
90
+ findResults.items = items;
91
+ return findResults;
92
+ });
93
+ }
94
+ findOne(options) {
95
+ return __awaiter(this, void 0, void 0, function* () {
96
+ const { filters } = options;
97
+ const items = yield this.repository.find({ filters, page: 1, perPage: 1 });
98
+ return items[0] || null;
99
+ });
100
+ }
101
+ update(data, options) {
102
+ return __awaiter(this, void 0, void 0, function* () {
103
+ const { repository, store } = this;
104
+ const { filters, forceTransaction, transactionId } = options;
105
+ if (!transactionId && forceTransaction) {
106
+ const tId = store.createTransaction();
107
+ const result = yield this.update(data, Object.assign(Object.assign({}, options), { transactionId: tId }));
108
+ yield store.endTransaction(tId);
109
+ return result;
110
+ }
111
+ const itemToUpdate = yield this.findOne({ filters, requirePrimaryKeys: true });
112
+ if (!itemToUpdate) {
113
+ return { count: 0, items: [] };
114
+ }
115
+ const updateResult = yield repository.save((0, ramda_1.mergeDeepRight)(itemToUpdate, data), { transactionId });
116
+ return { count: updateResult.length, items: updateResult };
117
+ });
118
+ }
119
+ }
120
+ exports.RedisEntityService = RedisEntityService;
121
+ //# sourceMappingURL=redis.entity.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redis.entity.service.js","sourceRoot":"","sources":["../../src/entityService/redis.entity.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export * from './common/definitions';
2
+ export * from './entityService';
3
+ export * from './module';
4
+ export * from './repository';
5
+ export * from './store';
package/dist/index.js ADDED
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./common/definitions"), exports);
18
+ __exportStar(require("./entityService"), exports);
19
+ __exportStar(require("./module"), exports);
20
+ __exportStar(require("./repository"), exports);
21
+ __exportStar(require("./store"), exports);
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uDAAqC;AACrC,kDAAgC;AAChC,2CAAyB;AACzB,+CAA6B;AAC7B,0CAAwB"}
@@ -0,0 +1,2 @@
1
+ export * from './redis.module.definitions';
2
+ export * from './redis.module';
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./redis.module.definitions"), exports);
18
+ __exportStar(require("./redis.module"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/module/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6DAA2C;AAC3C,iDAA+B"}
@@ -0,0 +1,5 @@
1
+ import { DynamicModule } from '@nestjs/common';
2
+ import { RedisModuleOptions } from './redis.module.definitions';
3
+ export declare class RedisModule {
4
+ static register(options: RedisModuleOptions): DynamicModule;
5
+ }
@@ -0,0 +1,14 @@
1
+ import { ModuleMetadata } from '@nestjs/common';
2
+ import { GenericObject } from '@node-c/core';
3
+ export interface RedisModuleOptions {
4
+ exports?: ModuleMetadata['exports'];
5
+ folderData: GenericObject<unknown>;
6
+ imports?: {
7
+ atEnd?: ModuleMetadata['imports'];
8
+ postStore?: ModuleMetadata['imports'];
9
+ preStore?: ModuleMetadata['imports'];
10
+ };
11
+ moduleClass: unknown;
12
+ moduleName: string;
13
+ providers?: ModuleMetadata['providers'];
14
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=redis.module.definitions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redis.module.definitions.js","sourceRoot":"","sources":["../../src/module/redis.module.definitions.ts"],"names":[],"mappings":""}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RedisModule = void 0;
4
+ const core_1 = require("@node-c/core");
5
+ const store_1 = require("../store");
6
+ class RedisModule {
7
+ static register(options) {
8
+ const { folderData, imports: additionalImports, moduleClass, moduleName } = options;
9
+ const { atEnd: importsAtEnd, postStore: importsPostStore, preStore: importsPreStore } = additionalImports || {};
10
+ const { modules } = (0, core_1.loadDynamicModules)(folderData);
11
+ return {
12
+ global: true,
13
+ module: moduleClass,
14
+ imports: [
15
+ ...(importsPreStore || []),
16
+ store_1.RedisStoreModule.register({ persistanceModuleName: moduleName }),
17
+ ...(importsPostStore || []),
18
+ ...(modules || []),
19
+ ...(importsAtEnd || [])
20
+ ],
21
+ providers: [...(options.providers || [])],
22
+ exports: [...(modules || []), ...(options.exports || [])]
23
+ };
24
+ }
25
+ }
26
+ exports.RedisModule = RedisModule;
27
+ //# sourceMappingURL=redis.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redis.module.js","sourceRoot":"","sources":["../../src/module/redis.module.ts"],"names":[],"mappings":";;;AAEA,uCAAkD;AAIlD,oCAA4C;AAE5C,MAAa,WAAW;IACtB,MAAM,CAAC,QAAQ,CAAC,OAA2B;QACzC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;QACpF,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,gBAAgB,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,iBAAiB,IAAI,EAAE,CAAC;QAChH,MAAM,EAAE,OAAO,EAAE,GAAG,IAAA,yBAAkB,EAAC,UAAU,CAAC,CAAC;QACnD,OAAO;YACL,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,WAAsC;YAC9C,OAAO,EAAE;gBACP,GAAG,CAAC,eAAe,IAAI,EAAE,CAAC;gBAC1B,wBAAgB,CAAC,QAAQ,CAAC,EAAE,qBAAqB,EAAE,UAAU,EAAE,CAAC;gBAChE,GAAG,CAAC,gBAAgB,IAAI,EAAE,CAAC;gBAC3B,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;gBAClB,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC;aACxB;YACD,SAAS,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;YACzC,OAAO,EAAE,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;SAC1D,CAAC;IACJ,CAAC;CACF;AAnBD,kCAmBC"}
@@ -0,0 +1,3 @@
1
+ export * from './redis.repository.definitions';
2
+ export * from './redis.repository.module';
3
+ export * from './redis.repository.service';
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./redis.repository.definitions"), exports);
18
+ __exportStar(require("./redis.repository.module"), exports);
19
+ __exportStar(require("./redis.repository.service"), exports);
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/repository/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iEAA+C;AAC/C,4DAA0C;AAC1C,6DAA2C"}
@@ -0,0 +1,48 @@
1
+ import { GenericObject } from '@node-c/core';
2
+ export interface EntitySchema {
3
+ columns: {
4
+ [columnName: string]: {
5
+ generated?: boolean;
6
+ isCreationDate?: boolean;
7
+ isDeletionDate?: boolean;
8
+ isUpdateDate?: boolean;
9
+ primary?: boolean;
10
+ type?: EntitySchemaColumnType;
11
+ };
12
+ };
13
+ name: string;
14
+ paranoid?: boolean;
15
+ }
16
+ export declare enum EntitySchemaColumnType {
17
+ Integer = "integer",
18
+ String = "string",
19
+ TimestampTz = "timestampTz",
20
+ UUIDV4 = "uuidv4"
21
+ }
22
+ export interface PrepareOptions {
23
+ generatePrimaryKeys?: boolean;
24
+ onConflict?: SaveOptionsOnConflict;
25
+ validate?: boolean;
26
+ }
27
+ export interface RedisRepositoryModuleOptions {
28
+ persistanceModuleName: string;
29
+ schema: EntitySchema;
30
+ }
31
+ export interface RepositoryFindOptions {
32
+ exactSearch?: boolean;
33
+ filters?: GenericObject<unknown>;
34
+ findAll?: boolean;
35
+ page?: number;
36
+ perPage?: number;
37
+ withValues?: boolean;
38
+ }
39
+ export interface SaveOptions {
40
+ delete?: boolean;
41
+ onConflict?: SaveOptionsOnConflict;
42
+ transactionId?: string;
43
+ }
44
+ export declare enum SaveOptionsOnConflict {
45
+ DoNothing = "doNothing",
46
+ ThrowError = "throwError",
47
+ Update = "update"
48
+ }
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SaveOptionsOnConflict = exports.EntitySchemaColumnType = void 0;
4
+ var EntitySchemaColumnType;
5
+ (function (EntitySchemaColumnType) {
6
+ EntitySchemaColumnType["Integer"] = "integer";
7
+ EntitySchemaColumnType["String"] = "string";
8
+ EntitySchemaColumnType["TimestampTz"] = "timestampTz";
9
+ EntitySchemaColumnType["UUIDV4"] = "uuidv4";
10
+ })(EntitySchemaColumnType = exports.EntitySchemaColumnType || (exports.EntitySchemaColumnType = {}));
11
+ var SaveOptionsOnConflict;
12
+ (function (SaveOptionsOnConflict) {
13
+ SaveOptionsOnConflict["DoNothing"] = "doNothing";
14
+ SaveOptionsOnConflict["ThrowError"] = "throwError";
15
+ SaveOptionsOnConflict["Update"] = "update";
16
+ })(SaveOptionsOnConflict = exports.SaveOptionsOnConflict || (exports.SaveOptionsOnConflict = {}));
17
+ //# sourceMappingURL=redis.repository.definitions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redis.repository.definitions.js","sourceRoot":"","sources":["../../src/repository/redis.repository.definitions.ts"],"names":[],"mappings":";;;AAiBA,IAAY,sBASX;AATD,WAAY,sBAAsB;IAEhC,6CAAmB,CAAA;IAEnB,2CAAiB,CAAA;IAEjB,qDAA2B,CAAA;IAE3B,2CAAiB,CAAA;AACnB,CAAC,EATW,sBAAsB,GAAtB,8BAAsB,KAAtB,8BAAsB,QASjC;AA4BD,IAAY,qBAOX;AAPD,WAAY,qBAAqB;IAE/B,gDAAuB,CAAA;IAEvB,kDAAyB,CAAA;IAEzB,0CAAiB,CAAA;AACnB,CAAC,EAPW,qBAAqB,GAArB,6BAAqB,KAArB,6BAAqB,QAOhC"}
@@ -0,0 +1,5 @@
1
+ import { DynamicModule } from '@nestjs/common';
2
+ import { RedisRepositoryModuleOptions } from './redis.repository.definitions';
3
+ export declare class RedisRepositoryModule {
4
+ static register<Entity>(options: RedisRepositoryModuleOptions): DynamicModule;
5
+ }
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
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
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var RedisRepositoryModule_1;
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.RedisRepositoryModule = void 0;
11
+ const common_1 = require("@nestjs/common");
12
+ const redis_repository_service_1 = require("./redis.repository.service");
13
+ const definitions_1 = require("../common/definitions");
14
+ const store_1 = require("../store");
15
+ let RedisRepositoryModule = RedisRepositoryModule_1 = class RedisRepositoryModule {
16
+ static register(options) {
17
+ const { persistanceModuleName, schema } = options;
18
+ return {
19
+ module: RedisRepositoryModule_1,
20
+ imports: [],
21
+ providers: [
22
+ {
23
+ provide: definitions_1.Constants.REDIS_REPOSITORY_SCHEMA,
24
+ useValue: schema
25
+ },
26
+ { provide: definitions_1.Constants.REDIS_CLIENT_PERSISTANCE_MODULE_NAME, useValue: persistanceModuleName },
27
+ {
28
+ provide: store_1.RedisStoreService,
29
+ useFactory: (redisStoreService) => redisStoreService,
30
+ inject: [`${persistanceModuleName}${definitions_1.Constants.REDIS_CLIENT_STORE_SERVICE_SUFFIX}`]
31
+ },
32
+ (redis_repository_service_1.RedisRepositoryService)
33
+ ],
34
+ exports: [(redis_repository_service_1.RedisRepositoryService), store_1.RedisStoreService]
35
+ };
36
+ }
37
+ };
38
+ RedisRepositoryModule = RedisRepositoryModule_1 = __decorate([
39
+ (0, common_1.Module)({})
40
+ ], RedisRepositoryModule);
41
+ exports.RedisRepositoryModule = RedisRepositoryModule;
42
+ //# sourceMappingURL=redis.repository.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redis.repository.module.js","sourceRoot":"","sources":["../../src/repository/redis.repository.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAuD;AAGvD,yEAAoE;AAEpE,uDAAkD;AAClD,oCAA6C;AAGtC,IAAM,qBAAqB,6BAA3B,MAAM,qBAAqB;IAChC,MAAM,CAAC,QAAQ,CAAS,OAAqC;QAC3D,MAAM,EAAE,qBAAqB,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAClD,OAAO;YACL,MAAM,EAAE,uBAAqB;YAC7B,OAAO,EAAE,EAAE;YACX,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,uBAAS,CAAC,uBAAuB;oBAC1C,QAAQ,EAAE,MAAM;iBACjB;gBACD,EAAE,OAAO,EAAE,uBAAS,CAAC,oCAAoC,EAAE,QAAQ,EAAE,qBAAqB,EAAE;gBAC5F;oBACE,OAAO,EAAE,yBAAiB;oBAC1B,UAAU,EAAE,CAAC,iBAAoC,EAAE,EAAE,CAAC,iBAAiB;oBACvE,MAAM,EAAE,CAAC,GAAG,qBAAqB,GAAG,uBAAS,CAAC,iCAAiC,EAAE,CAAC;iBACnF;gBACD,CAAA,iDAA8B,CAAA;aAC/B;YACD,OAAO,EAAE,CAAC,CAAA,iDAA8B,CAAA,EAAE,yBAAiB,CAAC;SAC7D,CAAC;IACJ,CAAC;CACF,CAAA;AAtBY,qBAAqB;IADjC,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,qBAAqB,CAsBjC;AAtBY,sDAAqB"}
@@ -0,0 +1,18 @@
1
+ import { ConfigProviderService } from '@node-c/core';
2
+ import { EntitySchema, PrepareOptions, RepositoryFindOptions, SaveOptions } from './redis.repository.definitions';
3
+ import { RedisStoreService } from '../store';
4
+ export declare class RedisRepositoryService<Entity> {
5
+ protected configProvider: ConfigProviderService;
6
+ protected persistanceModuleName: string;
7
+ protected schema: EntitySchema;
8
+ protected store: RedisStoreService;
9
+ protected primaryKeys: string[];
10
+ protected storeDelimiter: string;
11
+ constructor(configProvider: ConfigProviderService, persistanceModuleName: string, schema: EntitySchema, store: RedisStoreService);
12
+ find<ResultItem extends Entity | string = Entity>(options: RepositoryFindOptions): Promise<ResultItem[]>;
13
+ protected prepare(data: Entity, options?: PrepareOptions): Promise<{
14
+ data: Entity;
15
+ storeEntityKey: string;
16
+ }>;
17
+ save<ResultItem extends Entity | string = Entity>(data: Entity | Entity[], options?: SaveOptions): Promise<ResultItem[]>;
18
+ }