@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.
Files changed (39) hide show
  1. package/dist/cjs/src/controllers.js +1 -1
  2. package/dist/cjs/src/decorator.d.ts +1 -0
  3. package/dist/cjs/src/decorator.js +13 -7
  4. package/dist/cjs/src/decorator.js.map +1 -1
  5. package/dist/cjs/src/filter.js +9 -3
  6. package/dist/cjs/src/filter.js.map +1 -1
  7. package/dist/cjs/src/http.d.ts +1 -0
  8. package/dist/cjs/src/http.js.map +1 -1
  9. package/dist/cjs/src/logger.js.map +1 -1
  10. package/dist/cjs/src/model.d.ts +1 -0
  11. package/dist/cjs/src/model.js +7 -7
  12. package/dist/cjs/src/model.js.map +1 -1
  13. package/dist/cjs/src/router.d.ts +1 -0
  14. package/dist/cjs/src/router.js +18 -9
  15. package/dist/cjs/src/router.js.map +1 -1
  16. package/dist/cjs/src/static-serving.js.map +1 -1
  17. package/dist/cjs/tsconfig.tsbuildinfo +1 -1
  18. package/dist/esm/src/controllers.js +1 -1
  19. package/dist/esm/src/decorator.d.ts +1 -0
  20. package/dist/esm/src/decorator.js +13 -7
  21. package/dist/esm/src/decorator.js.map +1 -1
  22. package/dist/esm/src/filter.js +9 -3
  23. package/dist/esm/src/filter.js.map +1 -1
  24. package/dist/esm/src/http.d.ts +1 -0
  25. package/dist/esm/src/http.js.map +1 -1
  26. package/dist/esm/src/logger.js.map +1 -1
  27. package/dist/esm/src/model.d.ts +1 -0
  28. package/dist/esm/src/model.js +7 -7
  29. package/dist/esm/src/model.js.map +1 -1
  30. package/dist/esm/src/router.d.ts +1 -0
  31. package/dist/esm/src/router.js +19 -10
  32. package/dist/esm/src/router.js.map +1 -1
  33. package/dist/esm/src/static-serving.js.map +1 -1
  34. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  35. package/package.json +12 -11
  36. package/src/decorator.ts +12 -4
  37. package/src/filter.ts +8 -2
  38. package/src/model.ts +6 -9
  39. 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 resolver = routeConfig.resolverForParameterName.get(parameter.getName()) || routeConfig.resolverForToken.get(injectorToken);
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 (resolver && !setParametersFromPath) {
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 (resolver) {
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(resolver)} for ${parameter.getName()}
773
- ${instance} = ${injector}.get(${resolverProvideTokenVar}${moduleVar});
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
  }