@deepkit/http 1.0.1-alpha.74 → 1.0.1-alpha.77
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/dist/cjs/src/controllers.js +1 -1
- package/dist/cjs/src/decorator.d.ts +1 -0
- package/dist/cjs/src/decorator.js +13 -7
- package/dist/cjs/src/decorator.js.map +1 -1
- package/dist/cjs/src/filter.js +9 -3
- package/dist/cjs/src/filter.js.map +1 -1
- package/dist/cjs/src/http.d.ts +1 -0
- package/dist/cjs/src/http.js.map +1 -1
- package/dist/cjs/src/logger.js.map +1 -1
- package/dist/cjs/src/model.d.ts +1 -0
- package/dist/cjs/src/model.js +7 -7
- package/dist/cjs/src/model.js.map +1 -1
- package/dist/cjs/src/router.d.ts +1 -0
- package/dist/cjs/src/router.js +18 -9
- package/dist/cjs/src/router.js.map +1 -1
- package/dist/cjs/src/static-serving.js.map +1 -1
- package/dist/cjs/tsconfig.tsbuildinfo +1 -1
- package/dist/esm/src/controllers.js +1 -1
- package/dist/esm/src/decorator.d.ts +1 -0
- package/dist/esm/src/decorator.js +13 -7
- package/dist/esm/src/decorator.js.map +1 -1
- package/dist/esm/src/filter.js +9 -3
- package/dist/esm/src/filter.js.map +1 -1
- package/dist/esm/src/http.d.ts +1 -0
- package/dist/esm/src/http.js.map +1 -1
- package/dist/esm/src/logger.js.map +1 -1
- package/dist/esm/src/model.d.ts +1 -0
- package/dist/esm/src/model.js +7 -7
- package/dist/esm/src/model.js.map +1 -1
- package/dist/esm/src/router.d.ts +1 -0
- package/dist/esm/src/router.js +19 -10
- package/dist/esm/src/router.js.map +1 -1
- package/dist/esm/src/static-serving.js.map +1 -1
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/package.json +12 -11
- package/src/decorator.ts +12 -4
- package/src/filter.ts +8 -2
- package/src/model.ts +6 -9
- package/src/router.ts +17 -7
package/src/router.ts
CHANGED
|
@@ -19,6 +19,7 @@ import {
|
|
|
19
19
|
ReflectionFunction,
|
|
20
20
|
ReflectionKind,
|
|
21
21
|
ReflectionParameter,
|
|
22
|
+
resolveReceiveType,
|
|
22
23
|
SerializationOptions,
|
|
23
24
|
serializer,
|
|
24
25
|
Serializer,
|
|
@@ -307,6 +308,7 @@ export interface RouteParameterResolverContext {
|
|
|
307
308
|
|
|
308
309
|
query: HttpRequestQuery;
|
|
309
310
|
parameters: HttpRequestResolvedParameters;
|
|
311
|
+
type: ReflectionParameter;
|
|
310
312
|
}
|
|
311
313
|
|
|
312
314
|
function filterMiddlewaresForRoute(middlewareRawConfigs: MiddlewareRegistryEntry[], routeConfig: RouteConfig, fullPath: string): { config: HttpMiddlewareConfig, module: InjectorModule<any> }[] {
|
|
@@ -751,10 +753,10 @@ export class HttpRouter {
|
|
|
751
753
|
|
|
752
754
|
setParameters.push(`${parameterResolverFoundVar} = false;`);
|
|
753
755
|
|
|
754
|
-
const
|
|
756
|
+
const resolverType = routeConfig.resolverForParameterName.get(parameter.getName()) || routeConfig.resolverForToken.get(injectorToken);
|
|
755
757
|
|
|
756
758
|
//make sure all parameter values from the path are available
|
|
757
|
-
if (
|
|
759
|
+
if (resolverType && !setParametersFromPath) {
|
|
758
760
|
for (const i in parsedRoute.pathParameterNames) {
|
|
759
761
|
setParametersFromPath += `parameters.${i} = _match[${1 + parsedRoute.pathParameterNames[i]}];`;
|
|
760
762
|
}
|
|
@@ -763,14 +765,21 @@ export class HttpRouter {
|
|
|
763
765
|
let injector = '_injector';
|
|
764
766
|
const moduleVar = routeConfig.module ? ', ' + compiler.reserveConst(routeConfig.module, 'module') : '';
|
|
765
767
|
|
|
766
|
-
if (
|
|
767
|
-
const resolverProvideTokenVar = compiler.reserveVariable('resolverProvideToken', resolver);
|
|
768
|
+
if (resolverType) {
|
|
768
769
|
requiresAsyncParameters = true;
|
|
770
|
+
let instanceFetcher = '';
|
|
771
|
+
if (routeConfig.module && routeConfig.module.injector) {
|
|
772
|
+
const resolverResolverVar = compiler.reserveVariable('resolverProvideToken', routeConfig.module.injector.createResolver(resolveReceiveType(resolverType)));
|
|
773
|
+
instanceFetcher = `${resolverResolverVar}(${injector}.scope)`;
|
|
774
|
+
} else {
|
|
775
|
+
const resolverProvideTokenVar = compiler.reserveVariable('resolverProvideToken', resolverType);
|
|
776
|
+
instanceFetcher = `${injector}.get(${resolverProvideTokenVar}${moduleVar})`;
|
|
777
|
+
}
|
|
769
778
|
const instance = compiler.reserveVariable('resolverInstance');
|
|
770
779
|
|
|
771
780
|
setParameters.push(`
|
|
772
|
-
//resolver ${getClassName(
|
|
773
|
-
${instance} = ${
|
|
781
|
+
//resolver ${getClassName(resolverType)} for ${parameter.getName()}
|
|
782
|
+
${instance} = ${instanceFetcher};
|
|
774
783
|
if (!${parameterResolverFoundVar}) {
|
|
775
784
|
${parameterResolverFoundVar} = true;
|
|
776
785
|
parameters.${parameter.parameter.name} = await ${instance}.resolve({
|
|
@@ -780,7 +789,8 @@ export class HttpRouter {
|
|
|
780
789
|
name: ${JSON.stringify(parameter.parameter.name)},
|
|
781
790
|
value: parameters.${parameter.parameter.name},
|
|
782
791
|
query: _query,
|
|
783
|
-
parameters: parameters
|
|
792
|
+
parameters: parameters,
|
|
793
|
+
type: ${compiler.reserveVariable('parameterType', parameter.parameter)}
|
|
784
794
|
});
|
|
785
795
|
}`);
|
|
786
796
|
}
|