taon 21.0.52 → 21.0.53
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/bin/taon +5 -5
- package/bin/taon-debug +5 -5
- package/bin/taon-debug-brk +4 -4
- package/browser/package.json +1 -1
- package/browser-prod/package.json +1 -1
- package/icon-menu-taon.svg +15 -15
- package/lib/build-info._auto-generated_.d.ts +1 -1
- package/lib/build-info._auto-generated_.js +1 -1
- package/lib/package.json +1 -1
- package/lib/ui/index.js +2 -2
- package/lib/ui/taon-admin-mode-configuration/index.js +2 -2
- package/lib-prod/base-classes/base-abstract-entity.js +33 -0
- package/lib-prod/base-classes/base-angular-service.js +56 -0
- package/lib-prod/base-classes/base-class.js +37 -0
- package/lib-prod/base-classes/base-context.js +21 -0
- package/lib-prod/base-classes/base-controller.js +162 -0
- package/lib-prod/base-classes/base-crud-controller.js +235 -0
- package/lib-prod/base-classes/base-custom-repository.js +20 -0
- package/lib-prod/base-classes/base-electron-service.js +0 -0
- package/lib-prod/base-classes/base-entity.js +32 -0
- package/lib-prod/base-classes/base-file-upload.middleware.js +78 -0
- package/lib-prod/base-classes/base-injector.js +202 -0
- package/lib-prod/base-classes/base-middleware.js +6 -0
- package/lib-prod/base-classes/base-migration.js +23 -0
- package/lib-prod/base-classes/base-provider.js +6 -0
- package/lib-prod/base-classes/base-repository.js +589 -0
- package/lib-prod/base-classes/base-subscriber-for-entity.js +154 -0
- package/lib-prod/base-classes/base.js +0 -0
- package/lib-prod/build-info._auto-generated_.js +14 -0
- package/lib-prod/config/controller-config.js +28 -0
- package/lib-prod/config/controller-options.js +6 -0
- package/lib-prod/config/method-config.js +9 -0
- package/lib-prod/config/param-config.js +9 -0
- package/lib-prod/constants.js +29 -0
- package/lib-prod/context-db-migrations.js +339 -0
- package/lib-prod/create-context.js +152 -0
- package/lib-prod/decorators/classes/controller-decorator.js +21 -0
- package/lib-prod/decorators/classes/entity-decorator.js +49 -0
- package/lib-prod/decorators/classes/middleware-decorator.js +26 -0
- package/lib-prod/decorators/classes/migration-decorator.js +24 -0
- package/lib-prod/decorators/classes/provider-decorator.js +25 -0
- package/lib-prod/decorators/classes/repository-decorator.js +24 -0
- package/lib-prod/decorators/classes/subscriber-decorator.js +25 -0
- package/lib-prod/decorators/decorator-abstract-opt.js +5 -0
- package/lib-prod/decorators/http/http-decorators.js +5 -0
- package/lib-prod/decorators/http/http-methods-decorators.js +144 -0
- package/lib-prod/decorators/http/http-params-decorators.js +68 -0
- package/lib-prod/dependency-injection/di-container.js +31 -0
- package/lib-prod/endpoint-context-storage.js +36 -0
- package/lib-prod/endpoint-context.js +2033 -0
- package/lib-prod/entity-process.js +214 -0
- package/lib-prod/env/env.angular-node-app.js +130 -0
- package/lib-prod/env/env.docs-webapp.js +130 -0
- package/lib-prod/env/env.electron-app.js +130 -0
- package/lib-prod/env/env.mobile-app.js +130 -0
- package/lib-prod/env/env.npm-lib-and-cli-tool.js +130 -0
- package/lib-prod/env/env.vscode-plugin.js +130 -0
- package/lib-prod/env/index.js +6 -0
- package/lib-prod/express-types.js +0 -0
- package/lib-prod/formly/formly.models.js +0 -0
- package/lib-prod/formly/fromly.js +184 -0
- package/lib-prod/formly/type-from-entity.js +58 -0
- package/lib-prod/get-response-value.js +19 -0
- package/lib-prod/global-state/taon-global-state/index.js +5 -0
- package/lib-prod/global-state/taon-global-state/taon-global-state.abstract.context.js +20 -0
- package/lib-prod/global-state/taon-global-state/taon-global-state.constants.js +10 -0
- package/lib-prod/global-state/taon-global-state/taon-global-state.controller.js +48 -0
- package/lib-prod/global-state/taon-global-state/taon-global-state.entity.js +48 -0
- package/lib-prod/global-state/taon-global-state/taon-global-state.middleware.js +22 -0
- package/lib-prod/global-state/taon-global-state/taon-global-state.models.js +34 -0
- package/lib-prod/global-state/taon-global-state/taon-global-state.provider.js +22 -0
- package/lib-prod/global-state/taon-global-state/taon-global-state.repository.js +47 -0
- package/lib-prod/global-state/taon-global-state/taon-global-state.subscriber.js +29 -0
- package/lib-prod/global-state/taon-global-state/taon-global-state.utils.js +11 -0
- package/lib-prod/global-state/taon-transaction-registry/index.js +10 -0
- package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.abstract.context.js +22 -0
- package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.constants.js +8 -0
- package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.controller.js +41 -0
- package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.entity.js +56 -0
- package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.middleware.js +22 -0
- package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.models.js +10 -0
- package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.provider.js +22 -0
- package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.repository.js +36 -0
- package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.subscriber.js +29 -0
- package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.utils.js +6 -0
- package/lib-prod/helpers/class-helpers.js +195 -0
- package/lib-prod/helpers/clone-obj.js +21 -0
- package/lib-prod/helpers/taon-helpers.js +129 -0
- package/lib-prod/index._auto-generated_.js +0 -0
- package/lib-prod/index.js +231 -0
- package/lib-prod/inject.js +34 -0
- package/lib-prod/migrations/index.js +1 -0
- package/lib-prod/migrations/migrations_index._auto-generated_.js +0 -0
- package/lib-prod/models.js +109 -0
- package/lib-prod/orm/columns.js +124 -0
- package/lib-prod/orm/index.js +1 -0
- package/lib-prod/package.json +1 -1
- package/lib-prod/realtime/realtime-client.js +196 -0
- package/lib-prod/realtime/realtime-core.js +82 -0
- package/lib-prod/realtime/realtime-server.js +252 -0
- package/lib-prod/realtime/realtime-strategy/index.js +4 -0
- package/lib-prod/realtime/realtime-strategy/realtime-strategy-ipc.js +226 -0
- package/lib-prod/realtime/realtime-strategy/realtime-strategy-mock.js +262 -0
- package/lib-prod/realtime/realtime-strategy/realtime-strategy-socket-io.js +21 -0
- package/lib-prod/realtime/realtime-strategy/realtime-strategy.js +14 -0
- package/lib-prod/realtime/realtime-subs-manager.js +96 -0
- package/lib-prod/realtime/realtime.models.js +0 -0
- package/lib-prod/symbols.js +109 -0
- package/lib-prod/ui/index.js +5 -0
- package/lib-prod/ui/taon-admin-mode-configuration/index.js +5 -0
- package/lib-prod/validators.js +74 -0
- package/package.json +1 -1
- package/websql/package.json +1 -1
- package/websql-prod/package.json +1 -1
- package/lib-prod/base-classes/base-abstract-entity.ts +0 -34
- package/lib-prod/base-classes/base-angular-service.ts +0 -107
- package/lib-prod/base-classes/base-class.ts +0 -46
- package/lib-prod/base-classes/base-context.ts +0 -21
- package/lib-prod/base-classes/base-controller.ts +0 -240
- package/lib-prod/base-classes/base-crud-controller.ts +0 -298
- package/lib-prod/base-classes/base-custom-repository.ts +0 -10
- package/lib-prod/base-classes/base-electron-service.ts +0 -60
- package/lib-prod/base-classes/base-entity.ts +0 -28
- package/lib-prod/base-classes/base-file-upload.middleware.ts +0 -92
- package/lib-prod/base-classes/base-injector.ts +0 -278
- package/lib-prod/base-classes/base-middleware.ts +0 -71
- package/lib-prod/base-classes/base-migration.ts +0 -26
- package/lib-prod/base-classes/base-provider.ts +0 -8
- package/lib-prod/base-classes/base-repository.ts +0 -942
- package/lib-prod/base-classes/base-subscriber-for-entity.ts +0 -196
- package/lib-prod/base-classes/base.ts +0 -31
- package/lib-prod/build-info._auto-generated_.ts +0 -27
- package/lib-prod/config/controller-config.ts +0 -58
- package/lib-prod/config/controller-options.ts +0 -19
- package/lib-prod/config/method-config.ts +0 -55
- package/lib-prod/config/param-config.ts +0 -16
- package/lib-prod/constants.ts +0 -63
- package/lib-prod/context-db-migrations.ts +0 -488
- package/lib-prod/create-context.ts +0 -345
- package/lib-prod/decorators/classes/controller-decorator.ts +0 -25
- package/lib-prod/decorators/classes/entity-decorator.ts +0 -57
- package/lib-prod/decorators/classes/middleware-decorator.ts +0 -29
- package/lib-prod/decorators/classes/migration-decorator.ts +0 -27
- package/lib-prod/decorators/classes/provider-decorator.ts +0 -28
- package/lib-prod/decorators/classes/repository-decorator.ts +0 -26
- package/lib-prod/decorators/classes/subscriber-decorator.ts +0 -28
- package/lib-prod/decorators/decorator-abstract-opt.ts +0 -4
- package/lib-prod/decorators/http/http-decorators.ts +0 -26
- package/lib-prod/decorators/http/http-methods-decorators.ts +0 -275
- package/lib-prod/decorators/http/http-params-decorators.ts +0 -105
- package/lib-prod/dependency-injection/di-container.ts +0 -39
- package/lib-prod/endpoint-context-storage.ts +0 -47
- package/lib-prod/endpoint-context.ts +0 -3110
- package/lib-prod/entity-process.ts +0 -286
- package/lib-prod/env/env.angular-node-app.ts +0 -66
- package/lib-prod/env/env.docs-webapp.ts +0 -66
- package/lib-prod/env/env.electron-app.ts +0 -66
- package/lib-prod/env/env.mobile-app.ts +0 -66
- package/lib-prod/env/env.npm-lib-and-cli-tool.ts +0 -66
- package/lib-prod/env/env.vscode-plugin.ts +0 -66
- package/lib-prod/env/index.ts +0 -6
- package/lib-prod/express-types.ts +0 -4
- package/lib-prod/formly/formly.models.ts +0 -7
- package/lib-prod/formly/fromly.ts +0 -261
- package/lib-prod/formly/type-from-entity.ts +0 -80
- package/lib-prod/get-response-value.ts +0 -30
- package/lib-prod/global-state/taon-global-state/index.ts +0 -6
- package/lib-prod/global-state/taon-global-state/taon-global-state.abstract.context.ts +0 -21
- package/lib-prod/global-state/taon-global-state/taon-global-state.constants.ts +0 -9
- package/lib-prod/global-state/taon-global-state/taon-global-state.controller.ts +0 -44
- package/lib-prod/global-state/taon-global-state/taon-global-state.entity.ts +0 -40
- package/lib-prod/global-state/taon-global-state/taon-global-state.middleware.ts +0 -12
- package/lib-prod/global-state/taon-global-state/taon-global-state.models.ts +0 -48
- package/lib-prod/global-state/taon-global-state/taon-global-state.provider.ts +0 -16
- package/lib-prod/global-state/taon-global-state/taon-global-state.repository.ts +0 -47
- package/lib-prod/global-state/taon-global-state/taon-global-state.subscriber.ts +0 -18
- package/lib-prod/global-state/taon-global-state/taon-global-state.utils.ts +0 -21
- package/lib-prod/global-state/taon-transaction-registry/index.ts +0 -11
- package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.abstract.context.ts +0 -23
- package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.constants.ts +0 -7
- package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.controller.ts +0 -38
- package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.entity.ts +0 -54
- package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.middleware.ts +0 -12
- package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.models.ts +0 -6
- package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.provider.ts +0 -16
- package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.repository.ts +0 -29
- package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.subscriber.ts +0 -20
- package/lib-prod/global-state/taon-transaction-registry/taon-transaction-registry.utils.ts +0 -9
- package/lib-prod/helpers/class-helpers.ts +0 -315
- package/lib-prod/helpers/clone-obj.ts +0 -24
- package/lib-prod/helpers/taon-helpers.ts +0 -181
- package/lib-prod/index._auto-generated_.ts +0 -5
- package/lib-prod/index.ts +0 -323
- package/lib-prod/inject.ts +0 -111
- package/lib-prod/lib-info.md +0 -8
- package/lib-prod/migrations/index.ts +0 -2
- package/lib-prod/migrations/migrations-info.md +0 -6
- package/lib-prod/migrations/migrations_index._auto-generated_.ts +0 -5
- package/lib-prod/models.ts +0 -427
- package/lib-prod/orm/columns.ts +0 -121
- package/lib-prod/orm/index.ts +0 -62
- package/lib-prod/realtime/realtime-client.ts +0 -288
- package/lib-prod/realtime/realtime-core.ts +0 -134
- package/lib-prod/realtime/realtime-server.ts +0 -398
- package/lib-prod/realtime/realtime-strategy/index.ts +0 -4
- package/lib-prod/realtime/realtime-strategy/realtime-strategy-ipc.ts +0 -344
- package/lib-prod/realtime/realtime-strategy/realtime-strategy-mock.ts +0 -349
- package/lib-prod/realtime/realtime-strategy/realtime-strategy-socket-io.ts +0 -30
- package/lib-prod/realtime/realtime-strategy/realtime-strategy.ts +0 -21
- package/lib-prod/realtime/realtime-subs-manager.ts +0 -127
- package/lib-prod/realtime/realtime.models.ts +0 -33
- package/lib-prod/symbols.ts +0 -136
- package/lib-prod/ui/index.ts +0 -1
- package/lib-prod/ui/taon-admin-mode-configuration/index.ts +0 -1
- package/lib-prod/validators.ts +0 -103
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __decorateClass = (decorators, target, key, kind) => {
|
|
4
|
+
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
|
|
5
|
+
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
6
|
+
if (decorator = decorators[i])
|
|
7
|
+
result = (kind ? decorator(target, key, result) : decorator(result)) || result;
|
|
8
|
+
if (kind && result) __defProp(target, key, result);
|
|
9
|
+
return result;
|
|
10
|
+
};
|
|
11
|
+
import { TaonRepository } from "../decorators/classes/repository-decorator";
|
|
12
|
+
import { TaonBaseInjector } from "./base-injector";
|
|
13
|
+
let TaonBaseCustomRepository = class extends TaonBaseInjector {
|
|
14
|
+
};
|
|
15
|
+
TaonBaseCustomRepository = __decorateClass([
|
|
16
|
+
TaonRepository({ className: "TaonBaseCustomRepository" })
|
|
17
|
+
], TaonBaseCustomRepository);
|
|
18
|
+
export {
|
|
19
|
+
TaonBaseCustomRepository
|
|
20
|
+
};
|
|
File without changes
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __decorateClass = (decorators, target, key, kind) => {
|
|
4
|
+
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
|
|
5
|
+
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
6
|
+
if (decorator = decorators[i])
|
|
7
|
+
result = (kind ? decorator(target, key, result) : decorator(result)) || result;
|
|
8
|
+
if (kind && result) __defProp(target, key, result);
|
|
9
|
+
return result;
|
|
10
|
+
};
|
|
11
|
+
import { Entity } from "taon-typeorm/lib-prod";
|
|
12
|
+
import { TaonBaseClass } from "./base-class";
|
|
13
|
+
let TaonBaseEntity = class extends TaonBaseClass {
|
|
14
|
+
/**
|
|
15
|
+
* simple check if relation is ok
|
|
16
|
+
*/
|
|
17
|
+
relation(relationName) {
|
|
18
|
+
return relationName;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* simple check if relation is ok
|
|
22
|
+
*/
|
|
23
|
+
relations(relationNames) {
|
|
24
|
+
return relationNames;
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
TaonBaseEntity = __decorateClass([
|
|
28
|
+
Entity()
|
|
29
|
+
], TaonBaseEntity);
|
|
30
|
+
export {
|
|
31
|
+
TaonBaseEntity
|
|
32
|
+
};
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __decorateClass = (decorators, target, key, kind) => {
|
|
4
|
+
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
|
|
5
|
+
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
6
|
+
if (decorator = decorators[i])
|
|
7
|
+
result = (kind ? decorator(target, key, result) : decorator(result)) || result;
|
|
8
|
+
if (kind && result) __defProp(target, key, result);
|
|
9
|
+
return result;
|
|
10
|
+
};
|
|
11
|
+
import * as crypto from "crypto";
|
|
12
|
+
import * as multer from "multer";
|
|
13
|
+
import { crossPlatformPath, fse, path } from "tnp-core/lib-prod";
|
|
14
|
+
import { TaonMiddleware } from "../decorators/classes/middleware-decorator";
|
|
15
|
+
import {
|
|
16
|
+
TaonBaseMiddleware
|
|
17
|
+
} from "./base-middleware";
|
|
18
|
+
let TaonBaseFileUploadMiddleware = class extends TaonBaseMiddleware {
|
|
19
|
+
async interceptServerMethod({ req, res, next }, { methodName, expressPath }) {
|
|
20
|
+
return this.middleware()(req, res, next);
|
|
21
|
+
}
|
|
22
|
+
//#region upload Dir
|
|
23
|
+
uploadDir() {
|
|
24
|
+
return crossPlatformPath([this.ctx.cwd, "uploaded-files"]);
|
|
25
|
+
}
|
|
26
|
+
//#endregion
|
|
27
|
+
//#region storage
|
|
28
|
+
storage() {
|
|
29
|
+
const uploadDir = this.uploadDir();
|
|
30
|
+
if (!fse.existsSync(uploadDir)) {
|
|
31
|
+
try {
|
|
32
|
+
fse.mkdirSync(uploadDir, { recursive: true });
|
|
33
|
+
} catch (error) {
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return multer.diskStorage({
|
|
37
|
+
destination: (_req, _file, cb) => cb(null, uploadDir),
|
|
38
|
+
filename: (_req, file, cb) => {
|
|
39
|
+
const ext = path.extname(file.originalname).toLowerCase();
|
|
40
|
+
const base = path.basename(file.originalname, ext).replace(/[^\w.-]/g, "_");
|
|
41
|
+
const uniq = `${Date.now()}-${crypto.randomBytes(6).toString("hex")}`;
|
|
42
|
+
const filenameToProcess = `${base}-${uniq}${ext}`;
|
|
43
|
+
cb(null, filenameToProcess);
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
//#endregion
|
|
48
|
+
//#region upload
|
|
49
|
+
upload() {
|
|
50
|
+
return multer({
|
|
51
|
+
storage: this.storage(),
|
|
52
|
+
limits: { fileSize: 1024 * 1024 * 1024 }
|
|
53
|
+
// 1 GiB cap; tweak as needed
|
|
54
|
+
// TODO implement file filter if needed
|
|
55
|
+
// fileFilter: (_req, file, cb) => {
|
|
56
|
+
// // accept only .zip by filename extension
|
|
57
|
+
// if (path.extname(file.originalname).toLowerCase() !== '.zip') {
|
|
58
|
+
// return cb(new Error('Only .zip files are allowed'));
|
|
59
|
+
// }
|
|
60
|
+
// cb(null, true);
|
|
61
|
+
// },
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
//#endregion
|
|
65
|
+
//#region middleware
|
|
66
|
+
middleware() {
|
|
67
|
+
return this.upload().any();
|
|
68
|
+
}
|
|
69
|
+
//#endregion
|
|
70
|
+
};
|
|
71
|
+
TaonBaseFileUploadMiddleware = __decorateClass([
|
|
72
|
+
TaonMiddleware({
|
|
73
|
+
className: "TaonBaseFileUploadMiddleware"
|
|
74
|
+
})
|
|
75
|
+
], TaonBaseFileUploadMiddleware);
|
|
76
|
+
export {
|
|
77
|
+
TaonBaseFileUploadMiddleware
|
|
78
|
+
};
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
import { ClassHelpers__NS__getName } from "../helpers/class-helpers";
|
|
2
|
+
import { Symbols__NS__ctxInClassOrClassObj } from "../symbols";
|
|
3
|
+
class TaonBaseInjector {
|
|
4
|
+
//#region proxy dummy function
|
|
5
|
+
/**
|
|
6
|
+
* for proxy purposes
|
|
7
|
+
*/
|
|
8
|
+
getOriginalPrototype;
|
|
9
|
+
/**
|
|
10
|
+
* for proxy purposes
|
|
11
|
+
*/
|
|
12
|
+
getOriginalConstructor;
|
|
13
|
+
//#endregion
|
|
14
|
+
//#region class initialization hook
|
|
15
|
+
/**
|
|
16
|
+
* class initialization hook
|
|
17
|
+
* taon after class instace creation
|
|
18
|
+
*/
|
|
19
|
+
async _() {
|
|
20
|
+
}
|
|
21
|
+
//#endregion
|
|
22
|
+
//#region context
|
|
23
|
+
/**
|
|
24
|
+
* @deprecated use ctx instead
|
|
25
|
+
* Current endpoint context
|
|
26
|
+
*/
|
|
27
|
+
get __endpoint_context__() {
|
|
28
|
+
return this[Symbols__NS__ctxInClassOrClassObj];
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* get current endpoint context
|
|
32
|
+
*/
|
|
33
|
+
get ctx() {
|
|
34
|
+
return this.__endpoint_context__;
|
|
35
|
+
}
|
|
36
|
+
//#endregion
|
|
37
|
+
//#region inject
|
|
38
|
+
//#region inject / repo for entity
|
|
39
|
+
/**
|
|
40
|
+
* inject crud repo for entity
|
|
41
|
+
*/
|
|
42
|
+
injectRepo(entityForCrud) {
|
|
43
|
+
const repoProxy = this.__inject(void 0, {
|
|
44
|
+
localInstance: true,
|
|
45
|
+
resolveClassFromContext: "TaonBaseRepository",
|
|
46
|
+
locaInstanceConstructorArgs: [() => entityForCrud]
|
|
47
|
+
});
|
|
48
|
+
return repoProxy;
|
|
49
|
+
}
|
|
50
|
+
//#endregion
|
|
51
|
+
//#region inject / custom repository
|
|
52
|
+
injectCustomRepository(cutomRepositoryClass) {
|
|
53
|
+
const repoProxy = this.__inject(cutomRepositoryClass, {
|
|
54
|
+
localInstance: true,
|
|
55
|
+
locaInstanceConstructorArgs: [
|
|
56
|
+
() => {
|
|
57
|
+
const classToProcess = this.ctx.allClassesInstances[ClassHelpers__NS__getName(cutomRepositoryClass)];
|
|
58
|
+
return classToProcess.entityClassResolveFn();
|
|
59
|
+
}
|
|
60
|
+
]
|
|
61
|
+
});
|
|
62
|
+
return repoProxy;
|
|
63
|
+
}
|
|
64
|
+
//#endregion
|
|
65
|
+
//#region inject / custom repo
|
|
66
|
+
/**
|
|
67
|
+
* aliast to this.injectRepository()
|
|
68
|
+
*/
|
|
69
|
+
injectCustomRepo(cutomRepositoryClass) {
|
|
70
|
+
const repoProxy = this.injectCustomRepository(cutomRepositoryClass);
|
|
71
|
+
return repoProxy;
|
|
72
|
+
}
|
|
73
|
+
//#endregion
|
|
74
|
+
//#region inject / controller
|
|
75
|
+
/**
|
|
76
|
+
* example usage:
|
|
77
|
+
* ...
|
|
78
|
+
* exampleController = this.injectController(ExampleController);
|
|
79
|
+
* ...
|
|
80
|
+
*/
|
|
81
|
+
injectController(ctor) {
|
|
82
|
+
return this.__inject(ctor, { localInstance: false });
|
|
83
|
+
}
|
|
84
|
+
//#endregion
|
|
85
|
+
//#region inject / ctrl
|
|
86
|
+
/**
|
|
87
|
+
* example usage:
|
|
88
|
+
* ...
|
|
89
|
+
* exampleSubscriber = this.injectSubscriber(ExampleSubscriber)
|
|
90
|
+
* ...
|
|
91
|
+
*/
|
|
92
|
+
injectSubscriber(ctor) {
|
|
93
|
+
return this.__inject(ctor, { localInstance: false });
|
|
94
|
+
}
|
|
95
|
+
//#endregion
|
|
96
|
+
//#region inject / ctrl
|
|
97
|
+
/**
|
|
98
|
+
* aliast to .injectController()
|
|
99
|
+
*/
|
|
100
|
+
injectCtrl(ctor) {
|
|
101
|
+
return this.injectController(ctor);
|
|
102
|
+
}
|
|
103
|
+
//#endregion
|
|
104
|
+
//#region inject / global provider
|
|
105
|
+
/**
|
|
106
|
+
* inject middleware for context
|
|
107
|
+
*/
|
|
108
|
+
injectMiddleware(ctor) {
|
|
109
|
+
return this.__inject(ctor, { localInstance: false });
|
|
110
|
+
}
|
|
111
|
+
//#endregion
|
|
112
|
+
//#region inject / context provider
|
|
113
|
+
/**
|
|
114
|
+
* inject provider for context
|
|
115
|
+
*/
|
|
116
|
+
injectProvider(ctor) {
|
|
117
|
+
return this.__inject(ctor, { localInstance: false });
|
|
118
|
+
}
|
|
119
|
+
//#endregion
|
|
120
|
+
//#region inject / __ inject
|
|
121
|
+
/**
|
|
122
|
+
* Inject: Controllers, Providers, Repositories, Services, etc.
|
|
123
|
+
* TODO addd nest js injecting
|
|
124
|
+
*/
|
|
125
|
+
__inject(ctor, options) {
|
|
126
|
+
if (!options) {
|
|
127
|
+
options = {};
|
|
128
|
+
}
|
|
129
|
+
const contextClassInstance = this;
|
|
130
|
+
return new Proxy(
|
|
131
|
+
{},
|
|
132
|
+
{
|
|
133
|
+
get: (__, propName) => {
|
|
134
|
+
const contextFromClass = ctor && ctor[Symbols__NS__ctxInClassOrClassObj];
|
|
135
|
+
const resultContext = contextFromClass ? contextFromClass : this.__endpoint_context__;
|
|
136
|
+
if (options.resolveClassFromContext) {
|
|
137
|
+
const resolvedClass = resultContext.getClassFunByClassName(
|
|
138
|
+
options.resolveClassFromContext
|
|
139
|
+
);
|
|
140
|
+
ctor = resolvedClass;
|
|
141
|
+
}
|
|
142
|
+
if (resultContext) {
|
|
143
|
+
var instance = resultContext.inject(ctor, {
|
|
144
|
+
...options,
|
|
145
|
+
contextClassInstance,
|
|
146
|
+
parentInstanceThatWillGetInjectedStuff: this
|
|
147
|
+
});
|
|
148
|
+
if (!instance) {
|
|
149
|
+
throw new Error(
|
|
150
|
+
`Not able to inject "${ClassHelpers__NS__getName(ctor) || ctor.name}" inside property "${propName?.toString()}" on class "${ClassHelpers__NS__getName(
|
|
151
|
+
this
|
|
152
|
+
)}".
|
|
153
|
+
|
|
154
|
+
Please add "${ClassHelpers__NS__getName(ctor) || ctor.name}" to (entites or contorllers or providers or repositories or middlewares)
|
|
155
|
+
|
|
156
|
+
`
|
|
157
|
+
);
|
|
158
|
+
}
|
|
159
|
+
const result = typeof instance[propName] === "function" ? instance[propName].bind(instance) : instance[propName];
|
|
160
|
+
return result;
|
|
161
|
+
}
|
|
162
|
+
},
|
|
163
|
+
set: (__, propName, value) => {
|
|
164
|
+
const contextFromClass = ctor && ctor[Symbols__NS__ctxInClassOrClassObj];
|
|
165
|
+
const resultContext = contextFromClass ? contextFromClass : this.__endpoint_context__;
|
|
166
|
+
if (options.resolveClassFromContext) {
|
|
167
|
+
const resolvedClass = resultContext.getClassFunByClassName(
|
|
168
|
+
options.resolveClassFromContext
|
|
169
|
+
);
|
|
170
|
+
ctor = resolvedClass;
|
|
171
|
+
}
|
|
172
|
+
if (resultContext) {
|
|
173
|
+
var instance = resultContext.inject(ctor, {
|
|
174
|
+
...options,
|
|
175
|
+
contextClassInstance,
|
|
176
|
+
parentInstanceThatWillGetInjectedStuff: this
|
|
177
|
+
});
|
|
178
|
+
if (!instance) {
|
|
179
|
+
const classNameNotResolved = ClassHelpers__NS__getName(ctor) || ctor.name;
|
|
180
|
+
throw new Error(
|
|
181
|
+
`Not able to inject "${classNameNotResolved}" inside property "${propName?.toString()}" on class "${ClassHelpers__NS__getName(
|
|
182
|
+
this
|
|
183
|
+
)}".
|
|
184
|
+
|
|
185
|
+
Please add "${ClassHelpers__NS__getName(ctor) || ctor.name}" to (entites or contorllers or providers or repositories or middlewares)
|
|
186
|
+
|
|
187
|
+
`
|
|
188
|
+
);
|
|
189
|
+
}
|
|
190
|
+
instance[propName] = value;
|
|
191
|
+
}
|
|
192
|
+
return true;
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
);
|
|
196
|
+
}
|
|
197
|
+
//#endregion
|
|
198
|
+
//#endregion
|
|
199
|
+
}
|
|
200
|
+
export {
|
|
201
|
+
TaonBaseInjector
|
|
202
|
+
};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { ___NS__startCase } from "tnp-core/lib-prod";
|
|
2
|
+
import { ClassHelpers__NS__getName } from "../helpers/class-helpers";
|
|
3
|
+
import { TaonBaseInjector } from "./base-injector";
|
|
4
|
+
class TaonBaseMigration extends TaonBaseInjector {
|
|
5
|
+
/**
|
|
6
|
+
* by default is READY to run
|
|
7
|
+
*/
|
|
8
|
+
isReadyToRun() {
|
|
9
|
+
return true;
|
|
10
|
+
}
|
|
11
|
+
getDescription() {
|
|
12
|
+
return ___NS__startCase(ClassHelpers__NS__getName(this));
|
|
13
|
+
}
|
|
14
|
+
async up(queryRunner) {
|
|
15
|
+
console.log(`[TaonBaseMigration] Running migration UP "${ClassHelpers__NS__getName(this)}"`);
|
|
16
|
+
}
|
|
17
|
+
async down(queryRunner) {
|
|
18
|
+
console.log(`[TaonBaseMigration] Running migration DOWN "${ClassHelpers__NS__getName(this)}"`);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
export {
|
|
22
|
+
TaonBaseMigration
|
|
23
|
+
};
|