taon 21.0.51 → 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/fesm2022/taon-browser.mjs +11 -1
- package/browser/fesm2022/taon-browser.mjs.map +1 -1
- package/browser/package.json +1 -1
- package/browser-prod/fesm2022/taon-browser.mjs +11 -1
- package/browser-prod/fesm2022/taon-browser.mjs.map +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/endpoint-context.d.ts +1 -1
- package/lib/endpoint-context.js +11 -6
- package/lib/endpoint-context.js.map +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/fesm2022/taon-websql.mjs +11 -1
- package/websql/fesm2022/taon-websql.mjs.map +1 -1
- package/websql/package.json +1 -1
- package/websql-prod/fesm2022/taon-websql.mjs +11 -1
- package/websql-prod/fesm2022/taon-websql.mjs.map +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 -3105
- 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
package/websql-prod/package.json
CHANGED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { Entity, VersionColumn } from 'taon-typeorm/lib-prod'; // @websql
|
|
2
|
-
|
|
3
|
-
import {
|
|
4
|
-
Generated,
|
|
5
|
-
GeneratedColumn,
|
|
6
|
-
PrimaryColumn,
|
|
7
|
-
PrimaryGeneratedColumn,
|
|
8
|
-
VirtualColumn,
|
|
9
|
-
} from '../orm';
|
|
10
|
-
|
|
11
|
-
import type { TaonBaseClass } from './base-class';
|
|
12
|
-
import { TaonBaseEntity } from './base-entity';
|
|
13
|
-
|
|
14
|
-
//#region @websql
|
|
15
|
-
@Entity()
|
|
16
|
-
//#endregion
|
|
17
|
-
export abstract class TaonBaseAbstractEntity<
|
|
18
|
-
CloneT extends TaonBaseClass = any,
|
|
19
|
-
> extends TaonBaseEntity<CloneT> {
|
|
20
|
-
//#region @websql
|
|
21
|
-
@PrimaryGeneratedColumn()
|
|
22
|
-
//#endregion
|
|
23
|
-
id: string;
|
|
24
|
-
|
|
25
|
-
//#region @websql
|
|
26
|
-
@VersionColumn()
|
|
27
|
-
//#endregion
|
|
28
|
-
version: number;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
export type AbstractEntityOmitKeys<ENTITY> = Omit<
|
|
32
|
-
ENTITY,
|
|
33
|
-
'id' | 'version' | '_' | 'clone'
|
|
34
|
-
>;
|
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
/* */
|
|
2
|
-
/* */
|
|
3
|
-
/* */
|
|
4
|
-
|
|
5
|
-
import {
|
|
6
|
-
CURRENT_HOST_BACKEND_PORT,
|
|
7
|
-
CURRENT_HOST_URL,
|
|
8
|
-
TAON_CONTEXT,
|
|
9
|
-
} from '../constants';
|
|
10
|
-
import { TaonContext } from '../create-context';
|
|
11
|
-
import { inject as taonInject } from '../inject';
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* TODO prevent calling methods when not initialized
|
|
15
|
-
* with init(ctx)
|
|
16
|
-
*/
|
|
17
|
-
/* */
|
|
18
|
-
/* */
|
|
19
|
-
|
|
20
|
-
export abstract class TaonBaseAngularService {
|
|
21
|
-
/* */
|
|
22
|
-
/* */
|
|
23
|
-
/* */
|
|
24
|
-
/* */
|
|
25
|
-
/* */
|
|
26
|
-
/* */
|
|
27
|
-
/* */
|
|
28
|
-
/* */
|
|
29
|
-
/* */
|
|
30
|
-
/* */
|
|
31
|
-
/* */
|
|
32
|
-
/* */
|
|
33
|
-
/* */
|
|
34
|
-
/* */
|
|
35
|
-
/* */
|
|
36
|
-
/* */
|
|
37
|
-
/* */
|
|
38
|
-
|
|
39
|
-
constructor() {
|
|
40
|
-
/* */
|
|
41
|
-
/* */
|
|
42
|
-
/* */
|
|
43
|
-
/* */
|
|
44
|
-
/* */
|
|
45
|
-
/* */
|
|
46
|
-
/* */
|
|
47
|
-
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
/**
|
|
51
|
-
* Returns true if the application is running in SSR (server-side rendering) mode only.
|
|
52
|
-
*/
|
|
53
|
-
public get isSsrPlatform(): boolean {
|
|
54
|
-
/* */
|
|
55
|
-
/* */
|
|
56
|
-
|
|
57
|
-
return false;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
/**
|
|
61
|
-
* Returns true if the application is running in browser-only mode.
|
|
62
|
-
*/
|
|
63
|
-
public get isBrowserPlatform(): boolean {
|
|
64
|
-
/* */
|
|
65
|
-
/* */
|
|
66
|
-
|
|
67
|
-
return false;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
/**
|
|
71
|
-
* @deprecated
|
|
72
|
-
* Returns the host URL for the backend service
|
|
73
|
-
* that is running on localhost (normal NodeJS/ExpressJS mode).
|
|
74
|
-
*/
|
|
75
|
-
get host(): string {
|
|
76
|
-
/* */
|
|
77
|
-
/* */
|
|
78
|
-
/* */
|
|
79
|
-
/* */
|
|
80
|
-
/* */
|
|
81
|
-
|
|
82
|
-
return void 0;
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
injectController<T>(
|
|
86
|
-
ctor: new (...args: any[]) => T,
|
|
87
|
-
/**
|
|
88
|
-
* optional override context
|
|
89
|
-
*/
|
|
90
|
-
overrideCurrentContext?: TaonContext,
|
|
91
|
-
): T {
|
|
92
|
-
return taonInject(() => {
|
|
93
|
-
let currentContext: TaonContext;
|
|
94
|
-
/* */
|
|
95
|
-
/* */
|
|
96
|
-
/* */
|
|
97
|
-
/* */
|
|
98
|
-
|
|
99
|
-
if (!currentContext) {
|
|
100
|
-
throw new Error(
|
|
101
|
-
'No context available. Make sure to initialize the context before injecting controllers.',
|
|
102
|
-
);
|
|
103
|
-
}
|
|
104
|
-
return currentContext ? currentContext.getClass(ctor) : void 0;
|
|
105
|
-
}) as T;
|
|
106
|
-
}
|
|
107
|
-
}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
//#region imports
|
|
2
|
-
import { walk } from 'lodash-walk-object/lib-prod';
|
|
3
|
-
import { ___NS__add, ___NS__after, ___NS__ary, ___NS__assign, ___NS__assignIn, ___NS__assignInWith, ___NS__assignWith, ___NS__at, ___NS__attempt, ___NS__before, ___NS__bind, ___NS__bindAll, ___NS__bindKey, ___NS__camelCase, ___NS__capitalize, ___NS__castArray, ___NS__ceil, ___NS__chain, ___NS__chunk, ___NS__clamp, ___NS__clone, ___NS__cloneDeep, ___NS__cloneDeepWith, ___NS__cloneWith, ___NS__compact, ___NS__concat, ___NS__cond, ___NS__conforms, ___NS__conformsTo, ___NS__constant, ___NS__countBy, ___NS__create, ___NS__curry, ___NS__curryRight, ___NS__debounce, ___NS__deburr, ___NS__defaults, ___NS__defaultsDeep, ___NS__defaultTo, ___NS__defer, ___NS__delay, ___NS__difference, ___NS__differenceBy, ___NS__differenceWith, ___NS__divide, ___NS__drop, ___NS__dropRight, ___NS__dropRightWhile, ___NS__dropWhile, ___NS__each, ___NS__eachRight, ___NS__endsWith, ___NS__entries, ___NS__entriesIn, ___NS__eq, ___NS__escape, ___NS__escapeRegExp, ___NS__every, ___NS__extend, ___NS__extendWith, ___NS__fill, ___NS__filter, ___NS__find, ___NS__findIndex, ___NS__findKey, ___NS__findLast, ___NS__findLastIndex, ___NS__findLastKey, ___NS__first, ___NS__flatMap, ___NS__flatMapDeep, ___NS__flatMapDepth, ___NS__flatten, ___NS__flattenDeep, ___NS__flattenDepth, ___NS__flip, ___NS__floor, ___NS__flow, ___NS__flowRight, ___NS__forEach, ___NS__forEachRight, ___NS__forIn, ___NS__forInRight, ___NS__forOwn, ___NS__forOwnRight, ___NS__fromPairs, ___NS__functions, ___NS__functionsIn, ___NS__get, ___NS__groupBy, ___NS__gt, ___NS__gte, ___NS__has, ___NS__hasIn, ___NS__head, ___NS__identity, ___NS__includes, ___NS__indexOf, ___NS__initial, ___NS__inRange, ___NS__intersection, ___NS__intersectionBy, ___NS__intersectionWith, ___NS__invert, ___NS__invertBy, ___NS__invoke, ___NS__invokeMap, ___NS__isArguments, ___NS__isArray, ___NS__isArrayBuffer, ___NS__isArrayLike, ___NS__isArrayLikeObject, ___NS__isBoolean, ___NS__isBuffer, ___NS__isDate, ___NS__isElement, ___NS__isEmpty, ___NS__isEqual, ___NS__isEqualWith, ___NS__isError, ___NS__isFinite, ___NS__isFunction, ___NS__isInteger, ___NS__isLength, ___NS__isMap, ___NS__isMatch, ___NS__isMatchWith, ___NS__isNaN, ___NS__isNative, ___NS__isNil, ___NS__isNull, ___NS__isNumber, ___NS__isObject, ___NS__isObjectLike, ___NS__isPlainObject, ___NS__isRegExp, ___NS__isSafeInteger, ___NS__isSet, ___NS__isString, ___NS__isSymbol, ___NS__isTypedArray, ___NS__isUndefined, ___NS__isWeakMap, ___NS__isWeakSet, ___NS__iteratee, ___NS__join, ___NS__kebabCase, ___NS__keyBy, ___NS__keys, ___NS__keysIn, ___NS__last, ___NS__lastIndexOf, ___NS__lowerCase, ___NS__lowerFirst, ___NS__lt, ___NS__lte, ___NS__map, ___NS__mapKeys, ___NS__mapValues, ___NS__matches, ___NS__matchesProperty, ___NS__max, ___NS__maxBy, ___NS__mean, ___NS__meanBy, ___NS__memoize, ___NS__merge, ___NS__mergeWith, ___NS__method, ___NS__methodOf, ___NS__min, ___NS__minBy, ___NS__mixin, ___NS__multiply, ___NS__negate, ___NS__noop, ___NS__now, ___NS__nth, ___NS__nthArg, ___NS__omit, ___NS__omitBy, ___NS__once, ___NS__orderBy, ___NS__over, ___NS__overArgs, ___NS__overEvery, ___NS__overSome, ___NS__pad, ___NS__padEnd, ___NS__padStart, ___NS__parseInt, ___NS__partial, ___NS__partialRight, ___NS__partition, ___NS__pick, ___NS__pickBy, ___NS__property, ___NS__propertyOf, ___NS__pull, ___NS__pullAll, ___NS__pullAllBy, ___NS__pullAllWith, ___NS__pullAt, ___NS__random, ___NS__range, ___NS__rangeRight, ___NS__rearg, ___NS__reduce, ___NS__reduceRight, ___NS__reject, ___NS__remove, ___NS__repeat, ___NS__replace, ___NS__rest, ___NS__result, ___NS__reverse, ___NS__round, ___NS__sample, ___NS__sampleSize, ___NS__set, ___NS__setWith, ___NS__shuffle, ___NS__size, ___NS__slice, ___NS__snakeCase, ___NS__some, ___NS__sortBy, ___NS__sortedIndex, ___NS__sortedIndexBy, ___NS__sortedIndexOf, ___NS__sortedLastIndex, ___NS__sortedLastIndexBy, ___NS__sortedLastIndexOf, ___NS__sortedUniq, ___NS__sortedUniqBy, ___NS__split, ___NS__spread, ___NS__startCase, ___NS__startsWith, ___NS__stubArray, ___NS__stubFalse, ___NS__stubObject, ___NS__stubString, ___NS__stubTrue, ___NS__subtract, ___NS__sum, ___NS__sumBy, ___NS__tail, ___NS__take, ___NS__takeRight, ___NS__takeRightWhile, ___NS__takeWhile, ___NS__tap, ___NS__template, ___NS__templateSettings, ___NS__throttle, ___NS__thru, ___NS__times, ___NS__toArray, ___NS__toFinite, ___NS__toInteger, ___NS__toLength, ___NS__toLower, ___NS__toNumber, ___NS__toPairs, ___NS__toPairsIn, ___NS__toPath, ___NS__toPlainObject, ___NS__toSafeInteger, ___NS__toString, ___NS__toUpper, ___NS__transform, ___NS__trim, ___NS__trimEnd, ___NS__trimStart, ___NS__truncate, ___NS__unary, ___NS__unescape, ___NS__union, ___NS__unionBy, ___NS__unionWith, ___NS__uniq, ___NS__uniqBy, ___NS__uniqueId, ___NS__uniqWith, ___NS__unset, ___NS__unzip, ___NS__unzipWith, ___NS__update, ___NS__updateWith, ___NS__upperCase, ___NS__upperFirst, ___NS__values, ___NS__valuesIn, ___NS__without, ___NS__words, ___NS__wrap, ___NS__xor, ___NS__xorBy, ___NS__xorWith, ___NS__zip, ___NS__zipObject, ___NS__zipObjectDeep, ___NS__zipWith } from 'tnp-core/lib-prod';
|
|
4
|
-
|
|
5
|
-
import { ClassHelpers__NS__asyncHandler, ClassHelpers__NS__ensureClassConfig, ClassHelpers__NS__ensureMethodConfig, ClassHelpers__NS__getClassConfig, ClassHelpers__NS__getClassFnFromObject, ClassHelpers__NS__getControllerConfigs, ClassHelpers__NS__getFullInternalName, ClassHelpers__NS__getMethodsNames, ClassHelpers__NS__getName, ClassHelpers__NS__getOrginalClass, ClassHelpers__NS__getUniqueKey, ClassHelpers__NS__hasParentClassWithName, ClassHelpers__NS__isContextClassObject, ClassHelpers__NS__setName } from '../helpers/class-helpers';
|
|
6
|
-
import { cloneObj } from '../helpers/clone-obj';
|
|
7
|
-
|
|
8
|
-
//#endregion
|
|
9
|
-
|
|
10
|
-
export class TaonBaseClass<CloneT extends TaonBaseClass = any> {
|
|
11
|
-
//#region class initialization hook
|
|
12
|
-
/**
|
|
13
|
-
* class initialization hook
|
|
14
|
-
* taon after class instance creation
|
|
15
|
-
*/
|
|
16
|
-
async _(): Promise<void> {}
|
|
17
|
-
//#endregion
|
|
18
|
-
|
|
19
|
-
//#region clone
|
|
20
|
-
/**
|
|
21
|
-
*
|
|
22
|
-
* @param overrideObjOrFn if object is provided it will override values in cloned object,
|
|
23
|
-
* if function is provided it will be called with old cloned values and should return
|
|
24
|
-
* object with values to override
|
|
25
|
-
* @returns cloned instance of the class
|
|
26
|
-
*/
|
|
27
|
-
public clone(
|
|
28
|
-
overrideObjOrFn?:
|
|
29
|
-
| Partial<CloneT>
|
|
30
|
-
| ((oldValues: Partial<CloneT>) => Partial<CloneT>),
|
|
31
|
-
): CloneT {
|
|
32
|
-
if(___NS__isString(overrideObjOrFn)) {
|
|
33
|
-
console.log(overrideObjOrFn);
|
|
34
|
-
throw new Error('String is not supported as .clone() method argument');
|
|
35
|
-
}
|
|
36
|
-
const classFn = ClassHelpers__NS__getClassFnFromObject(this);
|
|
37
|
-
if (___NS__isFunction(overrideObjOrFn)) {
|
|
38
|
-
// console.log('clone with fn');
|
|
39
|
-
const oldValues = (___NS__cloneDeep(this) || {}) as any as Partial<CloneT>;
|
|
40
|
-
return cloneObj<CloneT>(overrideObjOrFn(oldValues), classFn);
|
|
41
|
-
}
|
|
42
|
-
// console.log('clone normal');
|
|
43
|
-
return cloneObj<CloneT>(overrideObjOrFn as any, classFn);
|
|
44
|
-
}
|
|
45
|
-
//#endregion
|
|
46
|
-
}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { createContext } from '../create-context';
|
|
2
|
-
import { TaonGlobalStateContext } from '../global-state/taon-global-state/taon-global-state.abstract.context';
|
|
3
|
-
import { TaonBaseFileUploadMiddleware } from './base-file-upload.middleware';
|
|
4
|
-
import { TaonBaseRepository } from './base-repository';
|
|
5
|
-
|
|
6
|
-
const TaonBaseContext = createContext(() => ({
|
|
7
|
-
contextName: 'TaonBaseContext',
|
|
8
|
-
abstract: true,
|
|
9
|
-
contexts: {
|
|
10
|
-
TaonGlobalStateContext,
|
|
11
|
-
},
|
|
12
|
-
middlewares: {
|
|
13
|
-
TaonBaseFileUploadMiddleware,
|
|
14
|
-
},
|
|
15
|
-
repositories: {
|
|
16
|
-
// @ts-ignore
|
|
17
|
-
TaonBaseRepository,
|
|
18
|
-
},
|
|
19
|
-
}));
|
|
20
|
-
|
|
21
|
-
export { TaonBaseContext };
|
|
@@ -1,240 +0,0 @@
|
|
|
1
|
-
import * as FormData from 'form-data'; // @backend
|
|
2
|
-
import {
|
|
3
|
-
RestErrorResponseWrapper,
|
|
4
|
-
RestResponseWrapper,
|
|
5
|
-
HttpResponseError,
|
|
6
|
-
} from 'ng2-rest/lib-prod';
|
|
7
|
-
import { Models__NS__BackendError as Ng2RestModels__NS__BackendError, Models__NS__BaseBody as Ng2RestModels__NS__BaseBody, Models__NS__BaseResponse as Ng2RestModels__NS__BaseResponse, Models__NS__ErrorBody as Ng2RestModels__NS__ErrorBody, Models__NS__FnMethodsHttp as Ng2RestModels__NS__FnMethodsHttp, Models__NS__FnMethodsHttpWithMock as Ng2RestModels__NS__FnMethodsHttpWithMock, Models__NS__HandleResultOptions as Ng2RestModels__NS__HandleResultOptions, Models__NS__HandleResultSourceRequestOptions as Ng2RestModels__NS__HandleResultSourceRequestOptions, Models__NS__HttpBody as Ng2RestModels__NS__HttpBody, Models__NS__HttpCode as Ng2RestModels__NS__HttpCode, Models__NS__HttpResponse as Ng2RestModels__NS__HttpResponse, Models__NS__MetaRequest as Ng2RestModels__NS__MetaRequest, Models__NS__MethodWithBody as Ng2RestModels__NS__MethodWithBody, Models__NS__MockController as Ng2RestModels__NS__MockController, Models__NS__MockHttp as Ng2RestModels__NS__MockHttp, Models__NS__MockResponse as Ng2RestModels__NS__MockResponse, Models__NS__NestedParams as Ng2RestModels__NS__NestedParams, Models__NS__Ng2RestAxiosRequestConfig as Ng2RestModels__NS__Ng2RestAxiosRequestConfig, Models__NS__Ng2RestMethods as Ng2RestModels__NS__Ng2RestMethods, Models__NS__PromiseObservableMix as Ng2RestModels__NS__PromiseObservableMix, Models__NS__ReplayData as Ng2RestModels__NS__ReplayData, Models__NS__ReqParams as Ng2RestModels__NS__ReqParams, Models__NS__ResourceModel as Ng2RestModels__NS__ResourceModel, Models__NS__ResponseTypeAxios as Ng2RestModels__NS__ResponseTypeAxios, Models__NS__UrlParams as Ng2RestModels__NS__UrlParams } from 'ng2-rest/lib-prod';
|
|
8
|
-
import { crossPlatformPath, fse, path, CoreModels__NS__BaseProjectType, CoreModels__NS__BaseProjectTypeArr, CoreModels__NS__CfontAlign, CoreModels__NS__CfontStyle, CoreModels__NS__ClassNameStaticProperty, CoreModels__NS__ContentType, CoreModels__NS__ContentTypeKeys, CoreModels__NS__CoreLibCategory, CoreModels__NS__CutableFileExt, CoreModels__NS__DatabaseType, CoreModels__NS__EnvironmentName, CoreModels__NS__EnvironmentNameTaon, CoreModels__NS__ExecuteOptions, CoreModels__NS__FileEvent, CoreModels__NS__FileExtension, CoreModels__NS__FrameworkVersion, CoreModels__NS__GlobalDependencies, CoreModels__NS__HttpMethod, CoreModels__NS__ImageFileExtension, CoreModels__NS__ImageFileExtensionArr, CoreModels__NS__InstalationType, CoreModels__NS__InstalationTypeArr, CoreModels__NS__LibType, CoreModels__NS__localhostDomain, CoreModels__NS__localhostIp127, CoreModels__NS__ManifestIcon, CoreModels__NS__MediaType, CoreModels__NS__MediaTypeAllArr, CoreModels__NS__MimeType, CoreModels__NS__mimeTypes, CoreModels__NS__MimeTypesObj, CoreModels__NS__NewFactoryType, CoreModels__NS__NpmInstallOptions, CoreModels__NS__NpmSpecialVersions, CoreModels__NS__OrignalClassKey, CoreModels__NS__OutFolder, CoreModels__NS__Package, CoreModels__NS__ParamType, CoreModels__NS__parentLocation, CoreModels__NS__pathToChildren, CoreModels__NS__Position, CoreModels__NS__PreReleaseVersionTag, CoreModels__NS__PROGRESS_DATA_TYPE, CoreModels__NS__PUSHTYPE, CoreModels__NS__PwaManifest, CoreModels__NS__ReleaseVersionType, CoreModels__NS__ReleaseVersionTypeEnum, CoreModels__NS__RunOptions, CoreModels__NS__Size, CoreModels__NS__SPECIAL_APP_READY_MESSAGE, CoreModels__NS__SPECIAL_WORKER_READY_MESSAGE, CoreModels__NS__tagForTaskName, CoreModels__NS__TaonHttpErrorCustomProp, CoreModels__NS__TsUsage, CoreModels__NS__UIFramework, CoreModels__NS__UploadedBackendFile, CoreModels__NS__VSCodeSettings, Helpers__NS___fixCommand, Helpers__NS__bigMaxBuffer, Helpers__NS__checkProcess, Helpers__NS__cleanExit, Helpers__NS__clearConsole, Helpers__NS__command, Helpers__NS__commandOutputAsString, Helpers__NS__commandOutputAsStringAsync, Helpers__NS__compilationWrapper, Helpers__NS__contain, Helpers__NS__createFolder, Helpers__NS__createSymLink, Helpers__NS__error, Helpers__NS__execute, Helpers__NS__exists, Helpers__NS__filesFrom, Helpers__NS__foldersFrom, Helpers__NS__getFilesFrom, Helpers__NS__getFoldersFrom, Helpers__NS__getIsBrowser, Helpers__NS__getIsElectron, Helpers__NS__getIsNode, Helpers__NS__getIsRunningInGitBash, Helpers__NS__getIsSupportedTaonTerminal, Helpers__NS__getIsVerboseMode, Helpers__NS__getIsWebSQL, Helpers__NS__getIsWsl, Helpers__NS__getStdio, Helpers__NS__hideNodeWarnings, Helpers__NS__info, Helpers__NS__isBlob, Helpers__NS__isBuffer, Helpers__NS__isClass, Helpers__NS__isExistedSymlink, Helpers__NS__isFile, Helpers__NS__isFolder, Helpers__NS__isRunningInDocker, Helpers__NS__isRunningInLinuxGraphicsCapableEnvironment, Helpers__NS__isSymlinkFileExitedOrUnexisted, Helpers__NS__isSymlinkThatMatchesUrl, Helpers__NS__isUnexistedLink, Helpers__NS__killOnPort, Helpers__NS__killProcess, Helpers__NS__killProcessByPort, Helpers__NS__linksToFolderFrom, Helpers__NS__linksToFoldersFrom, Helpers__NS__log, Helpers__NS__logError, Helpers__NS__logInfo, Helpers__NS__logProc, Helpers__NS__logSuccess, Helpers__NS__logWarn, Helpers__NS__mediaTypeFromSrc, Helpers__NS__mkdirp, Helpers__NS__modifyLineByLine, Helpers__NS__msgCacheClear, Helpers__NS__openFolderInFileExplorer, Helpers__NS__parse, Helpers__NS__pathContainLink, Helpers__NS__questionYesNo, Helpers__NS__readFile, Helpers__NS__readJson, Helpers__NS__readJson5, Helpers__NS__readJsonC, Helpers__NS__relative, Helpers__NS__remove, Helpers__NS__removeEmptyLineFromString, Helpers__NS__removeFileIfExists, Helpers__NS__removeFolderIfExists, Helpers__NS__removeIfExists, Helpers__NS__removeSlashAtBegin, Helpers__NS__removeSlashAtEnd, Helpers__NS__removeSymlinks, Helpers__NS__renderError, Helpers__NS__replaceLinesInFile, Helpers__NS__run, Helpers__NS__runAsyncIn, Helpers__NS__runSyncIn, Helpers__NS__runSyncOrAsync, Helpers__NS__sleep, Helpers__NS__stopApplication, Helpers__NS__stringify, Helpers__NS__success, Helpers__NS__taskDone, Helpers__NS__taskStarted, Helpers__NS__throwError, Helpers__NS__timeout, Helpers__NS__tryCatchError, Helpers__NS__tryReadFile, Helpers__NS__tryRemoveDir, Helpers__NS__values, Helpers__NS__wait, Helpers__NS__warn, Helpers__NS__writeFile, Helpers__NS__writeJson, Helpers__NS__writeJson5, Helpers__NS__writeJsonC, UtilsTerminal__NS__clearConsole, UtilsTerminal__NS__confirm, UtilsTerminal__NS__drawBigText, UtilsTerminal__NS__getTerminalHeight, UtilsTerminal__NS__input, UtilsTerminal__NS__isVerboseModeTaon, UtilsTerminal__NS__multiselect, UtilsTerminal__NS__multiselectActionAndExecute, UtilsTerminal__NS__pipeEnterToStdin, UtilsTerminal__NS__pressAnyKey, UtilsTerminal__NS__pressAnyKeyToContinueAsync, UtilsTerminal__NS__pressAnyKeyToTryAgainErrorOccurred, UtilsTerminal__NS__pressKeyAndContinueSync, UtilsTerminal__NS__previewLongList, UtilsTerminal__NS__previewLongListGitLogLike, UtilsTerminal__NS__select, UtilsTerminal__NS__selectActionAndExecute, UtilsTerminal__NS__SelectChoice, UtilsTerminal__NS__SelectChoiceValue, UtilsTerminal__NS__wait, UtilsTerminal__NS__waitForUserAnyKey, UtilsTerminal__NS__waitMilliseconds } from 'tnp-core/lib-prod';
|
|
9
|
-
|
|
10
|
-
import { TaonController } from '../decorators/classes/controller-decorator';
|
|
11
|
-
import { POST } from '../decorators/http/http-methods-decorators';
|
|
12
|
-
import { Body, Path, Query } from '../decorators/http/http-params-decorators';
|
|
13
|
-
import type { EndpointContext } from '../endpoint-context';
|
|
14
|
-
import type { ContextsEndpointStorage } from '../endpoint-context-storage';
|
|
15
|
-
import type { Models__NS__ClassType, Models__NS__ClassTypeKey, Models__NS__ConnectionOptionsLogs, Models__NS__ContextOptions, Models__NS__DatabaseConfig, Models__NS__DatabaseConfigTypeOrm, Models__NS__DatabasesFolder, Models__NS__DBRecreateMode, Models__NS__FrameworkMode, Models__NS__Http__NS__AsyncResponse, Models__NS__Http__NS__AuthCallBack, Models__NS__Http__NS__ClientAction, Models__NS__Http__NS__ContextENDPOINT, Models__NS__Http__NS__ExpressContext, Models__NS__Http__NS__FormlyFromType, Models__NS__Http__NS__MixResponse, Models__NS__Http__NS__Response, Models__NS__Http__NS__ResponseFuncOpt, Models__NS__Http__NS__SyncResponse, Models__NS__Http__NS__SyncResponseFunc, Models__NS__ISession, Models__NS__MiddlewareType, Models__NS__StartParams, Models__NS__TaonCtxCloneParams, Models__NS__TaonInitializeParams } from '../models';
|
|
16
|
-
|
|
17
|
-
import { TaonBaseFileUploadMiddleware } from './base-file-upload.middleware';
|
|
18
|
-
import { TaonBaseInjector } from './base-injector';
|
|
19
|
-
|
|
20
|
-
export interface MulterFileUploadResponse {
|
|
21
|
-
ok: boolean;
|
|
22
|
-
originalName: string;
|
|
23
|
-
/**
|
|
24
|
-
* name change to this to avoid confusion with originalname
|
|
25
|
-
* (similar to originalname with added uniq part)
|
|
26
|
-
*/
|
|
27
|
-
savedAs: string;
|
|
28
|
-
size: number;
|
|
29
|
-
mimetype: string;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
@TaonController<TaonBaseController>({
|
|
33
|
-
className: 'TaonBaseController',
|
|
34
|
-
})
|
|
35
|
-
export class TaonBaseController<
|
|
36
|
-
UPLOAD_FILE_QUERY_PARAMS = {},
|
|
37
|
-
> extends TaonBaseInjector {
|
|
38
|
-
/**
|
|
39
|
-
* Hook that is called when taon app is inited
|
|
40
|
-
* (all contexts are created and inited)
|
|
41
|
-
*/
|
|
42
|
-
async afterAllCtxInited(options: {
|
|
43
|
-
ctxStorage: ContextsEndpointStorage;
|
|
44
|
-
}): Promise<void> {}
|
|
45
|
-
|
|
46
|
-
//#region upload form data to server
|
|
47
|
-
@POST({
|
|
48
|
-
overrideContentType: 'multipart/form-data',
|
|
49
|
-
middlewares: ({ parentMiddlewares }) => ({
|
|
50
|
-
...parentMiddlewares,
|
|
51
|
-
TaonBaseFileUploadMiddleware,
|
|
52
|
-
}),
|
|
53
|
-
})
|
|
54
|
-
uploadFormDataToServer(
|
|
55
|
-
@Body() formData: FormData,
|
|
56
|
-
@Query() queryParams?: UPLOAD_FILE_QUERY_PARAMS,
|
|
57
|
-
): Models__NS__Http__NS__Response<MulterFileUploadResponse[]> {
|
|
58
|
-
//#region @backendFunc
|
|
59
|
-
return async (req, res) => {
|
|
60
|
-
const files = req.files;
|
|
61
|
-
if (!files) {
|
|
62
|
-
throw 'No file(s) received';
|
|
63
|
-
}
|
|
64
|
-
const responseArr = (files as any[]).map(f => {
|
|
65
|
-
const savedAbs = crossPlatformPath(path.resolve(f.path));
|
|
66
|
-
// const savedRel = crossPlatformPath(
|
|
67
|
-
// path.relative(this.ctx.cwd, savedAbs),
|
|
68
|
-
// );
|
|
69
|
-
return {
|
|
70
|
-
ok: true,
|
|
71
|
-
originalName: f.originalname,
|
|
72
|
-
savedAs: path.basename(savedAbs),
|
|
73
|
-
// savedPath: void 0, // not needed
|
|
74
|
-
size: f.size,
|
|
75
|
-
mimetype: f.mimetype,
|
|
76
|
-
};
|
|
77
|
-
});
|
|
78
|
-
// console.log(responseArr);
|
|
79
|
-
for (const res of responseArr) {
|
|
80
|
-
await this.afterFileUploadAction(res, queryParams || ({} as any));
|
|
81
|
-
}
|
|
82
|
-
return responseArr;
|
|
83
|
-
};
|
|
84
|
-
//#endregion
|
|
85
|
-
}
|
|
86
|
-
//#endregion
|
|
87
|
-
|
|
88
|
-
//#region after file upload hook
|
|
89
|
-
/**
|
|
90
|
-
* Hook after file is uploaded
|
|
91
|
-
* through `uploadFormDataToServer` or `uploadLocalFileToServer`
|
|
92
|
-
*/
|
|
93
|
-
protected afterFileUploadAction(
|
|
94
|
-
file?: MulterFileUploadResponse,
|
|
95
|
-
queryParams?: UPLOAD_FILE_QUERY_PARAMS,
|
|
96
|
-
): void | Promise<void> {
|
|
97
|
-
// empty
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
//#region upload local file to server
|
|
101
|
-
async uploadLocalFileToServer(
|
|
102
|
-
absFilePath: string,
|
|
103
|
-
options?: Pick<Ng2RestModels__NS__Ng2RestAxiosRequestConfig, 'onUploadProgress'>,
|
|
104
|
-
queryParams?: UPLOAD_FILE_QUERY_PARAMS,
|
|
105
|
-
): Promise<MulterFileUploadResponse[]> {
|
|
106
|
-
//#region @backendFunc
|
|
107
|
-
const stat = fse.statSync(absFilePath);
|
|
108
|
-
const stream = fse.createReadStream(absFilePath);
|
|
109
|
-
|
|
110
|
-
const form = new FormData();
|
|
111
|
-
form.append('file', stream, {
|
|
112
|
-
filename: path.basename(absFilePath),
|
|
113
|
-
knownLength: stat.size,
|
|
114
|
-
});
|
|
115
|
-
|
|
116
|
-
const data = await this.uploadFormDataToServer(form, queryParams).request(
|
|
117
|
-
options || {},
|
|
118
|
-
);
|
|
119
|
-
return data.body.json;
|
|
120
|
-
//#endregion
|
|
121
|
-
}
|
|
122
|
-
//#endregion
|
|
123
|
-
|
|
124
|
-
// async check() {
|
|
125
|
-
// await this._waitForProperStatusChange({
|
|
126
|
-
// request: () => this.uploadFormDataToServer(void 0, void 0).request(),
|
|
127
|
-
// statusCheck: resp => resp.body.json[0].ok,
|
|
128
|
-
// });
|
|
129
|
-
// }
|
|
130
|
-
|
|
131
|
-
/**
|
|
132
|
-
* Easy way to wait for status change with http (1s default) pooling.
|
|
133
|
-
*
|
|
134
|
-
* example (in sub class):
|
|
135
|
-
* ```ts
|
|
136
|
-
async check() {
|
|
137
|
-
await this.waitForProperStatusChange({
|
|
138
|
-
request: () => this.uploadFormDataToServer(void 0, void 0).request(),
|
|
139
|
-
statusCheck: resp => resp.body.json[0].ok,
|
|
140
|
-
});
|
|
141
|
-
}
|
|
142
|
-
* ```
|
|
143
|
-
*/
|
|
144
|
-
public async _waitForProperStatusChange<T>(options: {
|
|
145
|
-
actionName: string;
|
|
146
|
-
/**
|
|
147
|
-
* Request for pooling
|
|
148
|
-
*/
|
|
149
|
-
request: (opt?: {
|
|
150
|
-
/**
|
|
151
|
-
* optional index number to identify request in logs
|
|
152
|
-
* (starts from 0 and increments by 1 on each try)
|
|
153
|
-
*/
|
|
154
|
-
reqIndexNum?: number;
|
|
155
|
-
httpErrorsCount?: number;
|
|
156
|
-
}) => ReturnType<Models__NS__Http__NS__Response<T>['request']>;
|
|
157
|
-
poolingInterval?: number;
|
|
158
|
-
/**
|
|
159
|
-
* default infinite tries
|
|
160
|
-
*/
|
|
161
|
-
maxTries?: number;
|
|
162
|
-
/**
|
|
163
|
-
* default infiniti allowed http errors
|
|
164
|
-
*/
|
|
165
|
-
allowedHttpErrors?: number;
|
|
166
|
-
/**
|
|
167
|
-
* condition to be met
|
|
168
|
-
*/
|
|
169
|
-
statusCheck?: (
|
|
170
|
-
response: Awaited<ReturnType<typeof options.request>>,
|
|
171
|
-
) => boolean;
|
|
172
|
-
/**
|
|
173
|
-
* if return true.. loop will continue
|
|
174
|
-
* if false .. will exit the loop
|
|
175
|
-
*/
|
|
176
|
-
loopRequestsOnBackendError?: (opt: {
|
|
177
|
-
unknownError: Error;
|
|
178
|
-
unknownHttpError: HttpResponseError<any>;
|
|
179
|
-
taonError: HttpResponseError<RestErrorResponseWrapper>;
|
|
180
|
-
reqIndexNum?: number;
|
|
181
|
-
httpErrorsCount?: number;
|
|
182
|
-
}) => boolean | Promise<boolean>;
|
|
183
|
-
}): Promise<void> {
|
|
184
|
-
const poolingInterval = options.poolingInterval || 1000;
|
|
185
|
-
const taonRequest = options.request;
|
|
186
|
-
let maxTries = options.maxTries || Number.POSITIVE_INFINITY;
|
|
187
|
-
let i = 0;
|
|
188
|
-
let httpErrorsCount = 0;
|
|
189
|
-
while (true) {
|
|
190
|
-
await UtilsTerminal__NS__waitMilliseconds(poolingInterval);
|
|
191
|
-
try {
|
|
192
|
-
const resp = await taonRequest({
|
|
193
|
-
reqIndexNum: i,
|
|
194
|
-
httpErrorsCount,
|
|
195
|
-
});
|
|
196
|
-
if (options.statusCheck && options.statusCheck(resp)) {
|
|
197
|
-
return;
|
|
198
|
-
}
|
|
199
|
-
} catch (error: Error | HttpResponseError | any) {
|
|
200
|
-
httpErrorsCount++;
|
|
201
|
-
if (options.loopRequestsOnBackendError) {
|
|
202
|
-
const isProperTaonError =
|
|
203
|
-
error instanceof HttpResponseError &&
|
|
204
|
-
error.body.json[CoreModels__NS__TaonHttpErrorCustomProp];
|
|
205
|
-
const isHttpError =
|
|
206
|
-
error instanceof HttpResponseError && !isProperTaonError;
|
|
207
|
-
const isUnknownError = !(error instanceof HttpResponseError);
|
|
208
|
-
|
|
209
|
-
const resBool = await options.loopRequestsOnBackendError({
|
|
210
|
-
taonError: isProperTaonError ? error : void 0,
|
|
211
|
-
unknownHttpError: isHttpError ? error : void 0,
|
|
212
|
-
unknownError: isUnknownError ? (error as Error) : void 0,
|
|
213
|
-
reqIndexNum: i,
|
|
214
|
-
httpErrorsCount,
|
|
215
|
-
});
|
|
216
|
-
if (resBool) {
|
|
217
|
-
i++;
|
|
218
|
-
continue;
|
|
219
|
-
} else {
|
|
220
|
-
return;
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
if (
|
|
224
|
-
httpErrorsCount >
|
|
225
|
-
(options.allowedHttpErrors || Number.POSITIVE_INFINITY)
|
|
226
|
-
) {
|
|
227
|
-
throw new Error(
|
|
228
|
-
`Too many http errors (${httpErrorsCount}) for "${options.actionName}".`,
|
|
229
|
-
);
|
|
230
|
-
}
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
if (i++ > maxTries) {
|
|
234
|
-
throw new Error(
|
|
235
|
-
`Timeout waiting for "${options.actionName}" to be finished. Waited for ${maxTries} seconds`,
|
|
236
|
-
);
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
}
|
|
240
|
-
}
|