@tsed/formio 7.0.0-beta.13 → 7.0.0-beta.14
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/lib/cjs/FormioModule.js +6 -13
- package/lib/cjs/FormioModule.js.map +1 -1
- package/lib/cjs/components/AlterActions.js +27 -23
- package/lib/cjs/components/AlterActions.js.map +1 -1
- package/lib/esm/FormioModule.js +6 -13
- package/lib/esm/FormioModule.js.map +1 -1
- package/lib/esm/components/AlterActions.js +28 -24
- package/lib/esm/components/AlterActions.js.map +1 -1
- package/lib/types/components/AlterActions.d.ts +2 -4
- package/package.json +7 -7
package/lib/cjs/FormioModule.js
CHANGED
|
@@ -35,8 +35,7 @@ let FormioModule = class FormioModule {
|
|
|
35
35
|
}
|
|
36
36
|
async $onRoutesInit() {
|
|
37
37
|
if (this.formio.isInit()) {
|
|
38
|
-
|
|
39
|
-
router.use(this.baseUrl, this.formio.middleware.restrictRequestTypes, this.formio.router);
|
|
38
|
+
this.app.use(this.baseUrl, this.formio.middleware.restrictRequestTypes, this.formio.router);
|
|
40
39
|
if (await this.shouldInstall()) {
|
|
41
40
|
await this.installer.install(this.template, this.root);
|
|
42
41
|
}
|
|
@@ -56,17 +55,11 @@ let FormioModule = class FormioModule {
|
|
|
56
55
|
Object.entries(spec.paths).forEach(([path, methods]) => {
|
|
57
56
|
Object.entries(methods).forEach(([method, operation]) => {
|
|
58
57
|
routes.push({
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
className: "formio",
|
|
65
|
-
methodClassName: operation.operationId,
|
|
66
|
-
parameters: [],
|
|
67
|
-
rawBody: false
|
|
68
|
-
};
|
|
69
|
-
}
|
|
58
|
+
method,
|
|
59
|
+
name: operation.operationId,
|
|
60
|
+
url: (0, common_1.normalizePath)(baseUrl, path.replace(/\/{(.*)}/gi, "/:$1")),
|
|
61
|
+
className: "formio",
|
|
62
|
+
methodClassName: operation.operationId
|
|
70
63
|
});
|
|
71
64
|
});
|
|
72
65
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormioModule.js","sourceRoot":"","sources":["../../src/FormioModule.ts"],"names":[],"mappings":";;;;AAAA,yCASsB;AACtB,qCAAqC;AACrC,iCAAgC;AAChC,4DAAuD;AACvD,wDAAmD;AACnD,sDAAiD;AACjD,oDAA+C;AAC/C,sDAAiD;AACjD,oFAA+E;AAC/E,oFAA+E;AAG/E,oEAA+D;AAC/D,sEAAiE;AACjE,gEAA2D;AAC3D,4DAAuD;AAgBvD,IAAa,YAAY,GAAzB,MAAa,YAAY;IAEb,MAAM,CAAgB;IAGtB,KAAK,CAAqB;IAG1B,SAAS,CAAkB;IAG3B,GAAG,CAAsB;IAGzB,QAAQ,CAAkB;IAG1B,QAAQ,CAAe;IAGvB,OAAO,CAAS;IAGhB,WAAW,CAAU;IAGrB,QAAQ,CAAkB;IAG1B,IAAI,CAAO;IAErB,OAAO;QACL,OAAO,IAAI,CAAC,IAAI,CAAC,IAAA,gBAAS,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAqB;QAC9B,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE;YACxB,
|
|
1
|
+
{"version":3,"file":"FormioModule.js","sourceRoot":"","sources":["../../src/FormioModule.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Constant,\n Inject,\n InjectorService,\n normalizePath,\n OnReady,\n OnRoutesInit,\n PlatformApplication,\n PlatformRouteDetails\n} from \"@tsed/common\";\nimport {deepClone} from \"@tsed/core\";\nimport {Module} from \"@tsed/di\";\nimport {AlterActions} from \"./components/AlterActions\";\nimport {AlterAudit} from \"./components/AlterAudit\";\nimport {AlterHost} from \"./components/AlterHost\";\nimport {AlterLog} from \"./components/AlterLog\";\nimport {AlterSkip} from \"./components/AlterSkip\";\nimport {AlterTemplateExportSteps} from \"./components/AlterTemplateExportSteps\";\nimport {AlterTemplateImportSteps} from \"./components/AlterTemplateImportSteps\";\nimport {FormioConfig} from \"./domain/FormioConfig\";\nimport {FormioTemplate} from \"./domain/FormioTemplate\";\nimport {FormioAuthService} from \"./services/FormioAuthService\";\nimport {FormioHooksService} from \"./services/FormioHooksService\";\nimport {FormioInstaller} from \"./services/FormioInstaller\";\nimport {FormioService} from \"./services/FormioService\";\n\n@Module({\n imports: [\n FormioService,\n FormioHooksService,\n FormioAuthService,\n AlterActions,\n AlterHost,\n AlterAudit,\n AlterLog,\n AlterSkip,\n AlterTemplateImportSteps,\n AlterTemplateExportSteps\n ]\n})\nexport class FormioModule implements OnRoutesInit, OnReady {\n @Inject()\n protected formio: FormioService;\n\n @Inject()\n protected hooks: FormioHooksService;\n\n @Inject()\n protected installer: FormioInstaller;\n\n @Inject()\n protected app: PlatformApplication;\n\n @Inject()\n protected injector: InjectorService;\n\n @Constant(\"formio\", {})\n protected settings: FormioConfig;\n\n @Constant(\"formio.baseUrl\", \"/\")\n protected baseUrl: string;\n\n @Constant(\"formio.skipInstall\", false)\n protected skipInstall: boolean;\n\n @Constant(\"formio.template\")\n protected template?: FormioTemplate;\n\n @Constant(\"formio.root\")\n protected root?: any;\n\n $onInit() {\n return this.init(deepClone(this.settings));\n }\n\n async init(options: FormioConfig) {\n return this.formio.init(options, this.hooks.getHooks());\n }\n\n async $onRoutesInit() {\n if (this.formio.isInit()) {\n this.app.use(this.baseUrl, this.formio.middleware.restrictRequestTypes, this.formio.router);\n\n if (await this.shouldInstall()) {\n await this.installer.install(this.template!, this.root);\n }\n }\n }\n\n async $logRoutes(routes: PlatformRouteDetails[]): Promise<PlatformRouteDetails[]> {\n if (this.formio.isInit()) {\n const spec = (await this.formio.swagger(\n {\n $ctx: {\n request: {\n protocol: \"http\",\n host: \"localhost\"\n }\n }\n },\n this.formio.router\n )) as any;\n const {baseUrl} = this;\n\n Object.entries(spec.paths).forEach(([path, methods]: [string, any]) => {\n Object.entries(methods).forEach(([method, operation]: [string, any]) => {\n routes.push({\n method,\n name: operation.operationId,\n url: normalizePath(baseUrl, path.replace(/\\/{(.*)}/gi, \"/:$1\")),\n className: \"formio\",\n methodClassName: operation.operationId\n });\n });\n });\n }\n\n return routes;\n }\n\n // istanbul ignore next\n async $onReady(): Promise<void> {\n if (this.formio.isInit() && \"getBestHost\" in this.injector.settings) {\n const {injector} = this;\n // @ts-ignore\n const host = injector.settings.getBestHost();\n const url = host.toString();\n\n injector.logger.info(`Form.io API is available on ${url}${this.baseUrl || \"/\"}`);\n }\n }\n\n protected async shouldInstall() {\n const hasForms = await this.installer.hasForms();\n return this.template && !(hasForms || this.skipInstall);\n }\n}\n"]}
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.AlterActions = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
|
+
const common_1 = require("@tsed/common");
|
|
6
|
+
const core_1 = require("@tsed/core");
|
|
5
7
|
const di_1 = require("@tsed/di");
|
|
6
|
-
const schema_1 = require("@tsed/schema");
|
|
7
8
|
const platform_params_1 = require("@tsed/platform-params");
|
|
8
9
|
const platform_response_filter_1 = require("@tsed/platform-response-filter");
|
|
9
|
-
const
|
|
10
|
-
const common_1 = require("@tsed/common");
|
|
10
|
+
const schema_1 = require("@tsed/schema");
|
|
11
11
|
const alter_1 = require("../decorators/alter");
|
|
12
12
|
const FormioService_1 = require("../services/FormioService");
|
|
13
13
|
let AlterActions = class AlterActions {
|
|
@@ -46,39 +46,43 @@ let AlterActions = class AlterActions {
|
|
|
46
46
|
return this.injector.getProviders("formio:action");
|
|
47
47
|
}
|
|
48
48
|
createHandler(provider, propertyKey) {
|
|
49
|
-
const
|
|
49
|
+
const compiledHandler = this.params.compileHandler({
|
|
50
50
|
token: provider.token,
|
|
51
51
|
propertyKey
|
|
52
52
|
});
|
|
53
53
|
return async (action, handler, method, req, res, next, setActionItemMessage) => {
|
|
54
|
-
const $ctx =
|
|
55
|
-
$ctx
|
|
56
|
-
|
|
57
|
-
|
|
54
|
+
const $ctx = (0, di_1.getContext)();
|
|
55
|
+
if ($ctx) {
|
|
56
|
+
$ctx.set("ACTION_CTX", { handler, method, setActionItemMessage, action });
|
|
57
|
+
$ctx.endpoint = schema_1.EndpointMetadata.get(provider.useClass, "resolve");
|
|
58
58
|
try {
|
|
59
|
-
|
|
60
|
-
const handler = await promisedHandler;
|
|
61
|
-
const { state, data, status, headers } = await resolver.call(() => handler({ $ctx }));
|
|
62
|
-
if (state === core_1.AnyToPromiseStatus.RESOLVED) {
|
|
63
|
-
if (status) {
|
|
64
|
-
$ctx.response.status(status);
|
|
65
|
-
}
|
|
66
|
-
if (headers) {
|
|
67
|
-
$ctx.response.setHeaders(headers);
|
|
68
|
-
}
|
|
69
|
-
if (data !== undefined) {
|
|
70
|
-
$ctx.data = data;
|
|
71
|
-
return await this.flush($ctx.data, $ctx);
|
|
72
|
-
}
|
|
59
|
+
if (await this.onRequest(compiledHandler, $ctx)) {
|
|
73
60
|
next();
|
|
74
61
|
}
|
|
75
62
|
}
|
|
76
63
|
catch (er) {
|
|
77
64
|
next(er);
|
|
78
65
|
}
|
|
79
|
-
}
|
|
66
|
+
}
|
|
80
67
|
};
|
|
81
68
|
}
|
|
69
|
+
async onRequest(handler, $ctx) {
|
|
70
|
+
const resolver = new core_1.AnyToPromise();
|
|
71
|
+
const { state, data, status, headers } = await resolver.call(() => handler({ $ctx }));
|
|
72
|
+
if (state === core_1.AnyToPromiseStatus.RESOLVED) {
|
|
73
|
+
if (status) {
|
|
74
|
+
$ctx.response.status(status);
|
|
75
|
+
}
|
|
76
|
+
if (headers) {
|
|
77
|
+
$ctx.response.setHeaders(headers);
|
|
78
|
+
}
|
|
79
|
+
if (data !== undefined) {
|
|
80
|
+
$ctx.data = data;
|
|
81
|
+
return await this.flush($ctx.data, $ctx);
|
|
82
|
+
}
|
|
83
|
+
return true;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
82
86
|
async flush(data, $ctx) {
|
|
83
87
|
const { response } = $ctx;
|
|
84
88
|
if (!response.isDone()) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AlterActions.js","sourceRoot":"","sources":["../../../src/components/AlterActions.ts"],"names":[],"mappings":";;;;AAAA,
|
|
1
|
+
{"version":3,"file":"AlterActions.js","sourceRoot":"","sources":["../../../src/components/AlterActions.ts"],"names":[],"mappings":"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","sourcesContent":["import {PlatformContext, setResponseHeaders} from \"@tsed/common\";\nimport {AnyToPromise, AnyToPromiseStatus} from \"@tsed/core\";\nimport {getContext, Inject, InjectorService, Provider} from \"@tsed/di\";\nimport {FormioActionInfo} from \"@tsed/formio-types\";\nimport {PlatformParams} from \"@tsed/platform-params\";\nimport {PlatformResponseFilter} from \"@tsed/platform-response-filter\";\nimport {EndpointMetadata} from \"@tsed/schema\";\nimport {Alter} from \"../decorators/alter\";\nimport {AlterHook} from \"../domain/AlterHook\";\nimport {SetActionItemMessage} from \"../domain/FormioAction\";\nimport {FormioActions} from \"../domain/FormioActionsIndex\";\nimport {FormioService} from \"../services/FormioService\";\n\n@Alter(\"actions\")\nexport class AlterActions implements AlterHook {\n @Inject()\n protected injector: InjectorService;\n\n @Inject()\n protected formio: FormioService;\n\n @Inject()\n protected params: PlatformParams;\n\n @Inject()\n protected responseFilter: PlatformResponseFilter;\n\n transform(actions: FormioActions): FormioActions {\n const {Action} = this.formio;\n\n return this.getActions().reduce((actions, provider) => {\n const instance = this.injector.invoke<any>(provider.token);\n const options = provider.store.get<FormioActionInfo>(\"formio:action\");\n const resolveHandler = this.createHandler(provider, \"resolve\");\n\n return {\n ...actions,\n [options.name]: class extends Action {\n static access = options.access;\n\n static async info(req: any, res: any, next: Function) {\n let opts = {...options};\n\n if (instance.info) {\n opts = await instance.info(opts, req, res);\n }\n\n next(null, opts);\n }\n\n static async settingsForm(req: any, res: any, next: Function) {\n next(null, await instance.settingsForm(req, res));\n }\n\n resolve(handler: string, method: string, req: any, res: any, next: Function, setActionItemMessage: SetActionItemMessage): void {\n resolveHandler(this, handler, method, req, res, next, setActionItemMessage);\n }\n }\n };\n }, actions);\n }\n\n protected getActions() {\n return this.injector.getProviders(\"formio:action\");\n }\n\n protected createHandler(provider: Provider, propertyKey: string | symbol) {\n const compiledHandler = this.params.compileHandler({\n token: provider.token,\n propertyKey\n });\n\n return async (\n action: any,\n handler: string,\n method: string,\n req: any,\n res: any,\n next: any,\n setActionItemMessage: SetActionItemMessage\n ) => {\n const $ctx = getContext<PlatformContext>();\n\n if ($ctx) {\n $ctx.set(\"ACTION_CTX\", {handler, method, setActionItemMessage, action});\n $ctx.endpoint = EndpointMetadata.get(provider.useClass, \"resolve\");\n\n try {\n if (await this.onRequest(compiledHandler, $ctx)) {\n next();\n }\n } catch (er) {\n next(er);\n }\n }\n };\n }\n\n private async onRequest(handler: any, $ctx: PlatformContext) {\n const resolver = new AnyToPromise();\n const {state, data, status, headers} = await resolver.call(() => handler({$ctx}));\n\n if (state === AnyToPromiseStatus.RESOLVED) {\n if (status) {\n $ctx.response.status(status);\n }\n\n if (headers) {\n $ctx.response.setHeaders(headers);\n }\n\n if (data !== undefined) {\n $ctx.data = data;\n\n return await this.flush($ctx.data, $ctx);\n }\n\n return true;\n }\n }\n\n private async flush(data: any, $ctx: PlatformContext) {\n const {response} = $ctx;\n\n if (!response.isDone()) {\n setResponseHeaders($ctx);\n\n data = await this.responseFilter.serialize(data, $ctx as any);\n data = await this.responseFilter.transform(data, $ctx as any);\n\n response.body(data);\n }\n\n return response;\n }\n}\n"]}
|
package/lib/esm/FormioModule.js
CHANGED
|
@@ -32,8 +32,7 @@ let FormioModule = class FormioModule {
|
|
|
32
32
|
}
|
|
33
33
|
async $onRoutesInit() {
|
|
34
34
|
if (this.formio.isInit()) {
|
|
35
|
-
|
|
36
|
-
router.use(this.baseUrl, this.formio.middleware.restrictRequestTypes, this.formio.router);
|
|
35
|
+
this.app.use(this.baseUrl, this.formio.middleware.restrictRequestTypes, this.formio.router);
|
|
37
36
|
if (await this.shouldInstall()) {
|
|
38
37
|
await this.installer.install(this.template, this.root);
|
|
39
38
|
}
|
|
@@ -53,17 +52,11 @@ let FormioModule = class FormioModule {
|
|
|
53
52
|
Object.entries(spec.paths).forEach(([path, methods]) => {
|
|
54
53
|
Object.entries(methods).forEach(([method, operation]) => {
|
|
55
54
|
routes.push({
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
className: "formio",
|
|
62
|
-
methodClassName: operation.operationId,
|
|
63
|
-
parameters: [],
|
|
64
|
-
rawBody: false
|
|
65
|
-
};
|
|
66
|
-
}
|
|
55
|
+
method,
|
|
56
|
+
name: operation.operationId,
|
|
57
|
+
url: normalizePath(baseUrl, path.replace(/\/{(.*)}/gi, "/:$1")),
|
|
58
|
+
className: "formio",
|
|
59
|
+
methodClassName: operation.operationId
|
|
67
60
|
});
|
|
68
61
|
});
|
|
69
62
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormioModule.js","sourceRoot":"","sources":["../../src/FormioModule.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,QAAQ,EACR,MAAM,EACN,eAAe,EACf,aAAa,EAGb,mBAAmB,EAEpB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAC,SAAS,EAAC,MAAM,YAAY,CAAC;AACrC,OAAO,EAAC,MAAM,EAAC,MAAM,UAAU,CAAC;AAChC,OAAO,EAAC,YAAY,EAAC,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAC,UAAU,EAAC,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAC,SAAS,EAAC,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAC,QAAQ,EAAC,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAC,SAAS,EAAC,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAC,wBAAwB,EAAC,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAC,wBAAwB,EAAC,MAAM,uCAAuC,CAAC;AAG/E,OAAO,EAAC,iBAAiB,EAAC,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAC,kBAAkB,EAAC,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAC,eAAe,EAAC,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAC,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAgBvD,IAAa,YAAY,GAAzB,MAAa,YAAY;IAEb,MAAM,CAAgB;IAGtB,KAAK,CAAqB;IAG1B,SAAS,CAAkB;IAG3B,GAAG,CAAsB;IAGzB,QAAQ,CAAkB;IAG1B,QAAQ,CAAe;IAGvB,OAAO,CAAS;IAGhB,WAAW,CAAU;IAGrB,QAAQ,CAAkB;IAG1B,IAAI,CAAO;IAErB,OAAO;QACL,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAqB;QAC9B,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE;YACxB,
|
|
1
|
+
{"version":3,"file":"FormioModule.js","sourceRoot":"","sources":["../../src/FormioModule.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Constant,\n Inject,\n InjectorService,\n normalizePath,\n OnReady,\n OnRoutesInit,\n PlatformApplication,\n PlatformRouteDetails\n} from \"@tsed/common\";\nimport {deepClone} from \"@tsed/core\";\nimport {Module} from \"@tsed/di\";\nimport {AlterActions} from \"./components/AlterActions\";\nimport {AlterAudit} from \"./components/AlterAudit\";\nimport {AlterHost} from \"./components/AlterHost\";\nimport {AlterLog} from \"./components/AlterLog\";\nimport {AlterSkip} from \"./components/AlterSkip\";\nimport {AlterTemplateExportSteps} from \"./components/AlterTemplateExportSteps\";\nimport {AlterTemplateImportSteps} from \"./components/AlterTemplateImportSteps\";\nimport {FormioConfig} from \"./domain/FormioConfig\";\nimport {FormioTemplate} from \"./domain/FormioTemplate\";\nimport {FormioAuthService} from \"./services/FormioAuthService\";\nimport {FormioHooksService} from \"./services/FormioHooksService\";\nimport {FormioInstaller} from \"./services/FormioInstaller\";\nimport {FormioService} from \"./services/FormioService\";\n\n@Module({\n imports: [\n FormioService,\n FormioHooksService,\n FormioAuthService,\n AlterActions,\n AlterHost,\n AlterAudit,\n AlterLog,\n AlterSkip,\n AlterTemplateImportSteps,\n AlterTemplateExportSteps\n ]\n})\nexport class FormioModule implements OnRoutesInit, OnReady {\n @Inject()\n protected formio: FormioService;\n\n @Inject()\n protected hooks: FormioHooksService;\n\n @Inject()\n protected installer: FormioInstaller;\n\n @Inject()\n protected app: PlatformApplication;\n\n @Inject()\n protected injector: InjectorService;\n\n @Constant(\"formio\", {})\n protected settings: FormioConfig;\n\n @Constant(\"formio.baseUrl\", \"/\")\n protected baseUrl: string;\n\n @Constant(\"formio.skipInstall\", false)\n protected skipInstall: boolean;\n\n @Constant(\"formio.template\")\n protected template?: FormioTemplate;\n\n @Constant(\"formio.root\")\n protected root?: any;\n\n $onInit() {\n return this.init(deepClone(this.settings));\n }\n\n async init(options: FormioConfig) {\n return this.formio.init(options, this.hooks.getHooks());\n }\n\n async $onRoutesInit() {\n if (this.formio.isInit()) {\n this.app.use(this.baseUrl, this.formio.middleware.restrictRequestTypes, this.formio.router);\n\n if (await this.shouldInstall()) {\n await this.installer.install(this.template!, this.root);\n }\n }\n }\n\n async $logRoutes(routes: PlatformRouteDetails[]): Promise<PlatformRouteDetails[]> {\n if (this.formio.isInit()) {\n const spec = (await this.formio.swagger(\n {\n $ctx: {\n request: {\n protocol: \"http\",\n host: \"localhost\"\n }\n }\n },\n this.formio.router\n )) as any;\n const {baseUrl} = this;\n\n Object.entries(spec.paths).forEach(([path, methods]: [string, any]) => {\n Object.entries(methods).forEach(([method, operation]: [string, any]) => {\n routes.push({\n method,\n name: operation.operationId,\n url: normalizePath(baseUrl, path.replace(/\\/{(.*)}/gi, \"/:$1\")),\n className: \"formio\",\n methodClassName: operation.operationId\n });\n });\n });\n }\n\n return routes;\n }\n\n // istanbul ignore next\n async $onReady(): Promise<void> {\n if (this.formio.isInit() && \"getBestHost\" in this.injector.settings) {\n const {injector} = this;\n // @ts-ignore\n const host = injector.settings.getBestHost();\n const url = host.toString();\n\n injector.logger.info(`Form.io API is available on ${url}${this.baseUrl || \"/\"}`);\n }\n }\n\n protected async shouldInstall() {\n const hasForms = await this.installer.hasForms();\n return this.template && !(hasForms || this.skipInstall);\n }\n}\n"]}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { __decorate, __metadata } from "tslib";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { setResponseHeaders } from "@tsed/common";
|
|
3
|
+
import { AnyToPromise, AnyToPromiseStatus } from "@tsed/core";
|
|
4
|
+
import { getContext, Inject, InjectorService } from "@tsed/di";
|
|
4
5
|
import { PlatformParams } from "@tsed/platform-params";
|
|
5
6
|
import { PlatformResponseFilter } from "@tsed/platform-response-filter";
|
|
6
|
-
import {
|
|
7
|
-
import { setResponseHeaders } from "@tsed/common";
|
|
7
|
+
import { EndpointMetadata } from "@tsed/schema";
|
|
8
8
|
import { Alter } from "../decorators/alter.js";
|
|
9
9
|
import { FormioService } from "../services/FormioService.js";
|
|
10
10
|
let AlterActions = class AlterActions {
|
|
@@ -43,39 +43,43 @@ let AlterActions = class AlterActions {
|
|
|
43
43
|
return this.injector.getProviders("formio:action");
|
|
44
44
|
}
|
|
45
45
|
createHandler(provider, propertyKey) {
|
|
46
|
-
const
|
|
46
|
+
const compiledHandler = this.params.compileHandler({
|
|
47
47
|
token: provider.token,
|
|
48
48
|
propertyKey
|
|
49
49
|
});
|
|
50
50
|
return async (action, handler, method, req, res, next, setActionItemMessage) => {
|
|
51
|
-
const $ctx =
|
|
52
|
-
$ctx
|
|
53
|
-
|
|
54
|
-
|
|
51
|
+
const $ctx = getContext();
|
|
52
|
+
if ($ctx) {
|
|
53
|
+
$ctx.set("ACTION_CTX", { handler, method, setActionItemMessage, action });
|
|
54
|
+
$ctx.endpoint = EndpointMetadata.get(provider.useClass, "resolve");
|
|
55
55
|
try {
|
|
56
|
-
|
|
57
|
-
const handler = await promisedHandler;
|
|
58
|
-
const { state, data, status, headers } = await resolver.call(() => handler({ $ctx }));
|
|
59
|
-
if (state === AnyToPromiseStatus.RESOLVED) {
|
|
60
|
-
if (status) {
|
|
61
|
-
$ctx.response.status(status);
|
|
62
|
-
}
|
|
63
|
-
if (headers) {
|
|
64
|
-
$ctx.response.setHeaders(headers);
|
|
65
|
-
}
|
|
66
|
-
if (data !== undefined) {
|
|
67
|
-
$ctx.data = data;
|
|
68
|
-
return await this.flush($ctx.data, $ctx);
|
|
69
|
-
}
|
|
56
|
+
if (await this.onRequest(compiledHandler, $ctx)) {
|
|
70
57
|
next();
|
|
71
58
|
}
|
|
72
59
|
}
|
|
73
60
|
catch (er) {
|
|
74
61
|
next(er);
|
|
75
62
|
}
|
|
76
|
-
}
|
|
63
|
+
}
|
|
77
64
|
};
|
|
78
65
|
}
|
|
66
|
+
async onRequest(handler, $ctx) {
|
|
67
|
+
const resolver = new AnyToPromise();
|
|
68
|
+
const { state, data, status, headers } = await resolver.call(() => handler({ $ctx }));
|
|
69
|
+
if (state === AnyToPromiseStatus.RESOLVED) {
|
|
70
|
+
if (status) {
|
|
71
|
+
$ctx.response.status(status);
|
|
72
|
+
}
|
|
73
|
+
if (headers) {
|
|
74
|
+
$ctx.response.setHeaders(headers);
|
|
75
|
+
}
|
|
76
|
+
if (data !== undefined) {
|
|
77
|
+
$ctx.data = data;
|
|
78
|
+
return await this.flush($ctx.data, $ctx);
|
|
79
|
+
}
|
|
80
|
+
return true;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
79
83
|
async flush(data, $ctx) {
|
|
80
84
|
const { response } = $ctx;
|
|
81
85
|
if (!response.isDone()) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AlterActions.js","sourceRoot":"","sources":["../../../src/components/AlterActions.ts"],"names":[],"mappings":";AAAA,OAAO,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"AlterActions.js","sourceRoot":"","sources":["../../../src/components/AlterActions.ts"],"names":[],"mappings":"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","sourcesContent":["import {PlatformContext, setResponseHeaders} from \"@tsed/common\";\nimport {AnyToPromise, AnyToPromiseStatus} from \"@tsed/core\";\nimport {getContext, Inject, InjectorService, Provider} from \"@tsed/di\";\nimport {FormioActionInfo} from \"@tsed/formio-types\";\nimport {PlatformParams} from \"@tsed/platform-params\";\nimport {PlatformResponseFilter} from \"@tsed/platform-response-filter\";\nimport {EndpointMetadata} from \"@tsed/schema\";\nimport {Alter} from \"../decorators/alter\";\nimport {AlterHook} from \"../domain/AlterHook\";\nimport {SetActionItemMessage} from \"../domain/FormioAction\";\nimport {FormioActions} from \"../domain/FormioActionsIndex\";\nimport {FormioService} from \"../services/FormioService\";\n\n@Alter(\"actions\")\nexport class AlterActions implements AlterHook {\n @Inject()\n protected injector: InjectorService;\n\n @Inject()\n protected formio: FormioService;\n\n @Inject()\n protected params: PlatformParams;\n\n @Inject()\n protected responseFilter: PlatformResponseFilter;\n\n transform(actions: FormioActions): FormioActions {\n const {Action} = this.formio;\n\n return this.getActions().reduce((actions, provider) => {\n const instance = this.injector.invoke<any>(provider.token);\n const options = provider.store.get<FormioActionInfo>(\"formio:action\");\n const resolveHandler = this.createHandler(provider, \"resolve\");\n\n return {\n ...actions,\n [options.name]: class extends Action {\n static access = options.access;\n\n static async info(req: any, res: any, next: Function) {\n let opts = {...options};\n\n if (instance.info) {\n opts = await instance.info(opts, req, res);\n }\n\n next(null, opts);\n }\n\n static async settingsForm(req: any, res: any, next: Function) {\n next(null, await instance.settingsForm(req, res));\n }\n\n resolve(handler: string, method: string, req: any, res: any, next: Function, setActionItemMessage: SetActionItemMessage): void {\n resolveHandler(this, handler, method, req, res, next, setActionItemMessage);\n }\n }\n };\n }, actions);\n }\n\n protected getActions() {\n return this.injector.getProviders(\"formio:action\");\n }\n\n protected createHandler(provider: Provider, propertyKey: string | symbol) {\n const compiledHandler = this.params.compileHandler({\n token: provider.token,\n propertyKey\n });\n\n return async (\n action: any,\n handler: string,\n method: string,\n req: any,\n res: any,\n next: any,\n setActionItemMessage: SetActionItemMessage\n ) => {\n const $ctx = getContext<PlatformContext>();\n\n if ($ctx) {\n $ctx.set(\"ACTION_CTX\", {handler, method, setActionItemMessage, action});\n $ctx.endpoint = EndpointMetadata.get(provider.useClass, \"resolve\");\n\n try {\n if (await this.onRequest(compiledHandler, $ctx)) {\n next();\n }\n } catch (er) {\n next(er);\n }\n }\n };\n }\n\n private async onRequest(handler: any, $ctx: PlatformContext) {\n const resolver = new AnyToPromise();\n const {state, data, status, headers} = await resolver.call(() => handler({$ctx}));\n\n if (state === AnyToPromiseStatus.RESOLVED) {\n if (status) {\n $ctx.response.status(status);\n }\n\n if (headers) {\n $ctx.response.setHeaders(headers);\n }\n\n if (data !== undefined) {\n $ctx.data = data;\n\n return await this.flush($ctx.data, $ctx);\n }\n\n return true;\n }\n }\n\n private async flush(data: any, $ctx: PlatformContext) {\n const {response} = $ctx;\n\n if (!response.isDone()) {\n setResponseHeaders($ctx);\n\n data = await this.responseFilter.serialize(data, $ctx as any);\n data = await this.responseFilter.transform(data, $ctx as any);\n\n response.body(data);\n }\n\n return response;\n }\n}\n"]}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { InjectorService, Provider } from "@tsed/di";
|
|
2
2
|
import { PlatformParams } from "@tsed/platform-params";
|
|
3
3
|
import { PlatformResponseFilter } from "@tsed/platform-response-filter";
|
|
4
|
-
import { PlatformContext } from "@tsed/common";
|
|
5
4
|
import { AlterHook } from "../domain/AlterHook";
|
|
6
5
|
import { SetActionItemMessage } from "../domain/FormioAction";
|
|
7
6
|
import { FormioActions } from "../domain/FormioActionsIndex";
|
|
@@ -13,8 +12,7 @@ export declare class AlterActions implements AlterHook {
|
|
|
13
12
|
protected responseFilter: PlatformResponseFilter;
|
|
14
13
|
transform(actions: FormioActions): FormioActions;
|
|
15
14
|
protected getActions(): Provider<any>[];
|
|
16
|
-
protected createHandler(provider: Provider, propertyKey: string | symbol): (action: any, handler: string, method: string, req:
|
|
17
|
-
|
|
18
|
-
}, res: any, next: any, setActionItemMessage: SetActionItemMessage) => Promise<void>;
|
|
15
|
+
protected createHandler(provider: Provider, propertyKey: string | symbol): (action: any, handler: string, method: string, req: any, res: any, next: any, setActionItemMessage: SetActionItemMessage) => Promise<void>;
|
|
16
|
+
private onRequest;
|
|
19
17
|
private flush;
|
|
20
18
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tsed/formio",
|
|
3
|
-
"version": "7.0.0-beta.
|
|
3
|
+
"version": "7.0.0-beta.14",
|
|
4
4
|
"description": "Formio package for Ts.ED framework",
|
|
5
5
|
"private": false,
|
|
6
6
|
"keywords": [
|
|
@@ -30,14 +30,14 @@
|
|
|
30
30
|
"test": "cross-env NODE_ENV=test yarn jest --max-workers=2"
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"@tsed/formio-types": "7.0.0-beta.
|
|
33
|
+
"@tsed/formio-types": "7.0.0-beta.14",
|
|
34
34
|
"tslib": "2.4.0"
|
|
35
35
|
},
|
|
36
36
|
"devDependencies": {
|
|
37
|
-
"@tsed/common": "7.0.0-beta.
|
|
38
|
-
"@tsed/core": "7.0.0-beta.
|
|
39
|
-
"@tsed/di": "7.0.0-beta.
|
|
40
|
-
"@tsed/mongoose": "7.0.0-beta.
|
|
37
|
+
"@tsed/common": "7.0.0-beta.14",
|
|
38
|
+
"@tsed/core": "7.0.0-beta.14",
|
|
39
|
+
"@tsed/di": "7.0.0-beta.14",
|
|
40
|
+
"@tsed/mongoose": "7.0.0-beta.14",
|
|
41
41
|
"@types/async": "3.2.12",
|
|
42
42
|
"express": "^4.17.1",
|
|
43
43
|
"formio": "^2.0.0",
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
"mongoose": "^6.1.7"
|
|
46
46
|
},
|
|
47
47
|
"peerDependencies": {
|
|
48
|
-
"@tsed/common": "^7.0.0-beta.
|
|
48
|
+
"@tsed/common": "^7.0.0-beta.14",
|
|
49
49
|
"express": "^4.17.1",
|
|
50
50
|
"formio": "^2.0.0",
|
|
51
51
|
"lodash": "^4.17.21",
|