{"version":3,"file":"ngx-http-annotations.mjs","sources":["../../../../libs/ngx-http-annotations/src/lib/ngx-http-annotations.const.ts","../../../../libs/ngx-http-annotations/src/lib/ngx-http-annotations.utils.ts","../../../../libs/ngx-http-annotations/src/lib/ngx-http-annotations.module.ts","../../../../libs/ngx-http-annotations/src/public_api.ts","../../../../libs/ngx-http-annotations/src/ngx-http-annotations.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport const HTTP_ANNOTATIONS_USE_MOCKS: InjectionToken<boolean> = new InjectionToken('HTTP_ANNOTATIONS_USE_MOCKS');\nexport const HTTP_ANNOTATIONS_USE_DELAY: InjectionToken<number> = new InjectionToken('HTTP_ANNOTATIONS_USE_DELAY');\nexport const RESOURCE_METADATA_ROOT = 'resources_metadata';\n// @dynamic\nexport const NO_DELAY = 0;\nexport const MOCK_DEFAULT_DELAY = 500;\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { HttpClient } from '@angular/common/http';\nimport { Injector } from '@angular/core';\nimport { MonoTypeOperatorFunction } from 'rxjs';\nimport { delay } from 'rxjs/operators';\n// noinspection ES6PreferShortImport\nimport {\n  HTTP_ANNOTATIONS_USE_DELAY,\n  HTTP_ANNOTATIONS_USE_MOCKS,\n  MOCK_DEFAULT_DELAY,\n  NO_DELAY,\n  RESOURCE_METADATA_ROOT\n} from './ngx-http-annotations.const';\n\n\ninterface CallConfig {url: string; requestMethodName: string; params: any; args: any[]; }\ntype MockFunction = (url: string, requestMethodName: string, params: any, args: any[]) => any;\ntype DelayFunction = (url: string, requestMethodName: string, params: any, args: any[]) => any;\n\n\nexport function observe(annotations: any) {\n  return (...args: any[]) => HttpRestUtils.decorate('observe', annotations, ...args);\n}\nexport function path(annotations: any) {\n  return (...args: any[]) => {\n    return HttpRestUtils.decorate('path', annotations, ...args);\n  };\n}\nexport function body(annotations: any) {\n  return (...args: any[]) => HttpRestUtils.decorate('body', annotations, ...args);\n}\n\nexport function response(annotations: any) {\n  return (...args: any[]) => HttpRestUtils.decorate('response', annotations, ...args);\n}\n\nexport function query(annotations: any) {\n  return (...args: any[]) => HttpRestUtils.decorate('query', annotations, ...args);\n}\nexport function headers(annotations: any) {\n  return (...args: any[]) => HttpRestUtils.decorate('headers', annotations, ...args);\n}\nexport function produces(annotations: 'arraybuffer' | 'blob' | 'json' | 'text') {\n  return (...args: any[]) => HttpRestUtils.decorate('produces', annotations, ...args);\n}\n\ntype ResourceMetadataType = 'class'|'methods'|'params'|'props';\ninterface ExtraEntityData {\n  keyName: string;\n  index?: number;\n}\n\nexport enum RequestMethodParams {\n  get = 'Get',\n  post = 'Post',\n  put = 'Put',\n  delete = 'Delete',\n  options = 'Options',\n  head = 'Head',\n  patch = 'Patch'\n}\n\nexport class HttpRestUtils {\n\n  public static http: HttpClient;\n  public static appInjector: Injector;\n\n  public static decorate(decoratorName: string, annotations: any, ...args: any[]) {\n     switch (args.length) {\n        case 1: {\n          const [target] = args;\n          HttpRestUtils.constructMetadata( decoratorName, 'class', annotations, target.prototype );\n          break;\n        }\n        case 2: {\n          // eslint-disable-next-line @typescript-eslint/no-unused-vars\n          const [target, __key] = args;\n          HttpRestUtils.constructMetadata( decoratorName, 'props', annotations, target );\n          break;\n        }\n        case 3:\n          if (typeof args[2] === 'number') {\n            const [target, keyName, index] = args;\n            HttpRestUtils.constructMetadata( decoratorName, 'params', annotations, target, { keyName, index } );\n            break;\n          } else {\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            const [target, keyName, __descriptor] = args;\n            HttpRestUtils.constructMetadata( decoratorName, 'methods', annotations, target, { keyName } );\n            break;\n          }\n        default:\n          throw new Error('Decorators are not valid here!');\n      }\n  }\n\n  /**\n   * Set up metadata\n   * @param entityType\n   * @param value Value of metadata\n   * @param target Prototype of current object\n   * @param metaName Decorator name\n   * @param entityData Entity extra data\n   */\n  private static constructMetadata(\n    metaName: string,\n    entityType: ResourceMetadataType,\n    value: any,\n    target: any,\n    entityData?: ExtraEntityData) {\n\n    target[RESOURCE_METADATA_ROOT] = target[RESOURCE_METADATA_ROOT] || {};\n    target[RESOURCE_METADATA_ROOT][entityType] = target[RESOURCE_METADATA_ROOT][entityType] || {};\n\n   const metadataObj = target[RESOURCE_METADATA_ROOT][entityType];\n    if (entityData && entityData.keyName) {\n      metadataObj[entityData.keyName] = metadataObj[entityData.keyName] || {};\n    }\n    if (entityData && entityData.index != null) {\n      metadataObj[entityData.keyName][metaName] = metadataObj[entityData.keyName][metaName] || {};\n    }\n    switch (entityType) {\n      case 'class': metadataObj[metaName] = value; break;\n      case 'props': metadataObj[metaName] = value; break;\n      case 'methods':\n        (entityData)? metadataObj[entityData.keyName][metaName] = value : undefined;\n      break;\n      case 'params':\n        (entityData)? metadataObj[entityData.keyName][metaName][value || 'default'] = entityData.index: undefined;\n        break;\n    }\n\n    target[RESOURCE_METADATA_ROOT][entityType] = metadataObj;\n  }\n\n  public static requestMethod(requestMethodName: RequestMethodParams): any {\n      // @dynamic\n    return (target: any, key: string, descriptor: any) => {\n      const originalFunction = descriptor.value;\n\n        descriptor.value = function (...args: any[]) {\n          const url = HttpRestUtils.collectUrl(target, key, args);\n          // tslint:disable-next-line:no-shadowed-variable\n          const body = HttpRestUtils.collectBodyContent(target, key, args);\n          const search = HttpRestUtils.collectQueryParams(target, key, args);\n          // tslint:disable-next-line:no-shadowed-variable\n          const headers = HttpRestUtils.collectHttpHeaders(target, key, args);\n          const producesType = HttpRestUtils.produce(target, key, args);\n          // tslint:disable-next-line:no-shadowed-variable\n          const observe = HttpRestUtils.getHttpClientObserve(target, key, args);\n          const params: any = {\n            body,\n            params: search,\n            headers,\n            responseType: producesType,\n            observe\n          };\n          const newArgs = args;\n          const responseIndex = HttpRestUtils.collectResponseIndex(target, key, args);\n          const callConfig: CallConfig = {\n            url,\n            requestMethodName,\n            params,\n            args: newArgs,\n          };\n\n          if (HttpRestUtils.ifUseMock(callConfig)) { // If \"use mock\" is true, call original function, to get mock directly from function\n            return HttpRestUtils.processIfUseMock(responseIndex, args, newArgs, originalFunction);\n          }\n          const request = HttpRestUtils.getRequest(callConfig);\n\n\n\n          if (responseIndex >= 0) {\n            if (args.length > responseIndex) {\n              newArgs[responseIndex] = request;\n            } else {\n              newArgs.splice(responseIndex, 0, request);\n            }\n\n            return originalFunction(...newArgs).pipe(HttpRestUtils.getDelay(callConfig));\n          }\n\n          return request.pipe(HttpRestUtils.getDelay(callConfig));\n        };\n\n    };\n  }\n\n  private static getRequest(callConfig: CallConfig) {\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    const {body: any, ...params} =  callConfig.params;\n    const requestBody = callConfig.params?.body ?? undefined;\n    switch (callConfig.requestMethodName) {\n      case RequestMethodParams.get:\n        return HttpRestUtils.http.get(callConfig.url, callConfig.params);\n      case RequestMethodParams.post:\n        return HttpRestUtils.http.post(callConfig.url, requestBody, params);\n      case RequestMethodParams.put:\n        return HttpRestUtils.http.put(callConfig.url, requestBody, params);\n      case RequestMethodParams.delete:\n        return HttpRestUtils.http.delete(callConfig.url, callConfig.params);\n      case RequestMethodParams.options:\n        return HttpRestUtils.http.options(callConfig.url, callConfig.params);\n      case RequestMethodParams.head:\n        return HttpRestUtils.http.head(callConfig.url, callConfig.params);\n      case RequestMethodParams.patch:\n        return HttpRestUtils.http.patch(callConfig.url, requestBody, params);\n      default:\n        return HttpRestUtils.http.request(callConfig.requestMethodName, callConfig.url, callConfig.params);\n    }\n  }\n\n  private static ifUseMock(callConfig: CallConfig): boolean | MockFunction {\n    let useMock: boolean | MockFunction = HttpRestUtils.appInjector?.get(HTTP_ANNOTATIONS_USE_MOCKS, false);\n    if (typeof useMock === 'function') {\n      const useMockFunction = useMock as MockFunction;\n      useMock = useMockFunction(callConfig.url, callConfig.requestMethodName, callConfig.params, callConfig.args);\n    }\n    return useMock;\n  }\n\n  private static processIfUseMock(responseIndex: number, args: any[], newArgs: any[], originalFunction: any): any {\n    if (responseIndex >= 0) {\n      if (args.length > responseIndex) {\n        newArgs[responseIndex] = undefined;\n      } else {\n        newArgs.splice(responseIndex, 0, undefined);\n      }\n    }\n    return originalFunction(...newArgs).pipe(this.getDelay(null, MOCK_DEFAULT_DELAY));\n  }\n\n  private static getDelay(callConfig: CallConfig | null, defaultDelay: number = NO_DELAY): MonoTypeOperatorFunction<unknown> {\n    let useDelay: number | DelayFunction = HttpRestUtils.appInjector.get(HTTP_ANNOTATIONS_USE_DELAY, defaultDelay);\n    if (typeof useDelay === 'function' && callConfig) {\n      const useGetDelayFunction = useDelay as DelayFunction;\n      useDelay = useGetDelayFunction(callConfig.url, callConfig.requestMethodName, callConfig.params, callConfig.args);\n    }\n    return delay(useDelay as number);\n  }\n\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  private static getHttpClientObserve(target: any, methodName: string, __args: any[]) {\n    if (target[RESOURCE_METADATA_ROOT].methods\n      && target[RESOURCE_METADATA_ROOT].methods[methodName]) {\n       return target[RESOURCE_METADATA_ROOT].methods[methodName].observe;\n     }\n     return undefined;\n  }\n\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  private static produce(target: any, methodName: string, __args: any[]) {\n    if (target[RESOURCE_METADATA_ROOT].methods\n     && target[RESOURCE_METADATA_ROOT].methods[methodName]) {\n      return target[RESOURCE_METADATA_ROOT].methods[methodName].produces;\n    }\n    return 'json';\n  }\n\n  private static collectUrl(target: any, methodName: string, args: any[]) {\n    const baseUrl = target[RESOURCE_METADATA_ROOT] && target[RESOURCE_METADATA_ROOT].class\n                  ? target[RESOURCE_METADATA_ROOT].class.path\n                  : '';\n    const methodUrl = target[RESOURCE_METADATA_ROOT].methods && target[RESOURCE_METADATA_ROOT].methods[methodName]\n                    ? target[RESOURCE_METADATA_ROOT].methods[methodName].path\n                    : '';\n    const isRelativePath = `${baseUrl}${methodUrl}`[0] === '/';\n    const methodUrlWithParams\n      = [baseUrl, methodUrl]\n        .filter(pathToFilter => pathToFilter)\n        .join('/')\n        .split('/')\n        .map(pathParams => {\n          if ( pathParams[0] === ':') {\n            const paramName = pathParams.substring(1);\n            const index = target[RESOURCE_METADATA_ROOT].params\n                       && target[RESOURCE_METADATA_ROOT].params[methodName]\n                       && target[RESOURCE_METADATA_ROOT].params[methodName].path\n                        ? target[RESOURCE_METADATA_ROOT].params[methodName].path[paramName]\n                        : '';\n            return args[index];\n          }\n          return pathParams;\n        })\n        .filter(pathToFilter => pathToFilter)\n        .join('/');\n\n    if (!isRelativePath) {\n      const [absolutePrefix, ...paths] = methodUrlWithParams.split('/');\n      return `${ absolutePrefix }//${ paths.join('/') }`;\n    }\n    return `/${ methodUrlWithParams }`;\n  }\n\n  private static collectBodyContent(target: any, methodName: string, args: any[]) {\n    if (!target[RESOURCE_METADATA_ROOT].params\n     || !target[RESOURCE_METADATA_ROOT].params[methodName]\n     || !target[RESOURCE_METADATA_ROOT].params[methodName].body) { return undefined; }\n\n    const index = target[RESOURCE_METADATA_ROOT].params[methodName].body.default;\n    return args[index];\n  }\n\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  private static collectResponseIndex(target: any, methodName: string, __args: any[]) {\n    if (!target[RESOURCE_METADATA_ROOT].params\n     || !target[RESOURCE_METADATA_ROOT].params[methodName]\n     || !target[RESOURCE_METADATA_ROOT].params[methodName].response) { return undefined; }\n\n    return target[RESOURCE_METADATA_ROOT].params[methodName].response.default;\n  }\n\n  private static collectQueryParams(target: any, methodName: string, args: any[]) {\n    if (!target[RESOURCE_METADATA_ROOT].params\n     || !target[RESOURCE_METADATA_ROOT].params[methodName]\n     || !target[RESOURCE_METADATA_ROOT].params[methodName].query) { return undefined; }\n\n    const queryParams: {[key: string]: any} = {};\n    const queryParamsObjectIndex = target[RESOURCE_METADATA_ROOT].params[methodName].query.default;\n    const queryMetadata = target[RESOURCE_METADATA_ROOT].params[methodName].query;\n    const queryParamsCollection = queryParamsObjectIndex !== undefined\n                                ? args[queryParamsObjectIndex]\n                                : Object.keys(queryMetadata).reduce((mergedObj, paramName) =>\n                                  Object.assign(mergedObj, { [paramName]: args[queryMetadata[paramName]] }), {}\n                                );\n\n    Object.keys(queryParamsCollection)\n      .forEach((paramName: string) => {\n        let value = queryParamsCollection[paramName];\n        if (!Array.isArray(value)) { value = [ value ]; }\n        value.forEach((curParam: any) => {\n          return queryParams [paramName] = curParam;\n        });\n      });\n    return queryParams;\n  }\n\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  private static collectHttpHeaders(target: any, methodName: string, __args: any[]) {\n    const classHeaders = target[RESOURCE_METADATA_ROOT].class ? target[RESOURCE_METADATA_ROOT].class.headers : {};\n    const methodHeaders = target[RESOURCE_METADATA_ROOT].methods && target[RESOURCE_METADATA_ROOT].methods[methodName]\n                        ? target[RESOURCE_METADATA_ROOT].methods[methodName].headers\n                        : {};\n    return Object.assign({}, classHeaders, methodHeaders);\n  }\n}\n","import {NgModule, APP_INITIALIZER, Inject, Injector} from '@angular/core';\nimport {HttpRestUtils} from \"./ngx-http-annotations.utils\";\nimport { HttpClient } from \"@angular/common/http\";\nimport { HttpClientModule } from \"@angular/common/http\";\nimport {CommonModule} from \"@angular/common\";\nimport { HTTP_ANNOTATIONS_USE_MOCKS } from './ngx-http-annotations.const';\n\n\n\n// @dynamic\n@NgModule({\n    imports: [CommonModule, HttpClientModule],\n    providers: [\n      { provide: APP_INITIALIZER, useFactory: onAppInit, multi: true, deps: [HttpClient] },\n      { provide: HTTP_ANNOTATIONS_USE_MOCKS, useValue: false }\n    ]\n})\nexport class NgxHttpAnnotationsModule {\n\n  constructor(private injector: Injector) {\n    HttpRestUtils.appInjector = this.injector;\n  }\n}\n\nexport function onAppInit(http: HttpClient) {\n  return function () {\n    HttpRestUtils.http = http;\n  }\n}\n","/* eslint-disable prefer-const */\n// noinspection JSUnusedGlobalSymbols\n\nimport { NgxHttpAnnotationsModule } from \"./lib/ngx-http-annotations.module\";\n\nexport * from './lib/ngx-http-annotations.module';\nexport * from './lib/ngx-http-annotations.const';\nimport {\n  body,\n  headers,\n  HttpRestUtils,\n  observe,\n  path,\n  produces,\n  query,\n  RequestMethodParams,\n  response\n} from './lib/ngx-http-annotations.utils';\n\n/**\n * @deprecated replace HttpRestModule by NgxHttpAnnotationsModule\n */\nexport let HttpRestModule = NgxHttpAnnotationsModule;\nexport let Path = path;\nexport let PathParam = path;\nexport let Body = body(null);\nexport let ResponseObservable = response(null);\nexport let Query = query(null);\nexport let QueryParam = query;\nexport let QueryParams = query;\nexport let Observe = observe;\n\n// Headers\nexport let Headers = headers;\n\n// Produces\nexport let Produces = produces;\n\n// Request methods\nexport let GET = HttpRestUtils.requestMethod(RequestMethodParams.get);\nexport let POST = HttpRestUtils.requestMethod(RequestMethodParams.post);\nexport let PUT = HttpRestUtils.requestMethod(RequestMethodParams.put);\nexport let DELETE = HttpRestUtils.requestMethod(RequestMethodParams.delete);\nexport let OPTIONS = HttpRestUtils.requestMethod(RequestMethodParams.options);\nexport let HEAD = HttpRestUtils.requestMethod(RequestMethodParams.head);\nexport let PATCH = HttpRestUtils.requestMethod(RequestMethodParams.patch);\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}