{"version":3,"sources":["../../../src/scripts/CreateHooks/HooksTemplate.ts","../../../src/func/MethodIterator/index.ts","../../../src/func/Typescript/TypeNameMaker/index.ts","../../../src/helper/index.ts","../../../src/config/index.ts","../../../src/scripts/CreateHooks/swrTemplate.ts","../../../src/scripts/CreateHooks/ReactQueryTemplate.ts","../../../src/scripts/CreateHooks/ngTemplate.ts"],"sourcesContent":["import {OpenAPIV3} from 'openapi-types';\nimport {MethodIterator} from '../../func/MethodIterator/index.ts';\nimport {pathSplit} from '../../helper/index.ts';\nimport {configStore} from '../../config/index.ts';\nimport {SwrTemplate} from './swrTemplate.ts';\nimport {ReactQueryTemplate} from './ReactQueryTemplate.ts';\nimport {camelCase} from '../../func/Typescript/TypeNameMaker/index.ts';\nimport {NGTemplate} from './ngTemplate.ts';\nlet openedScope: string | undefined = undefined;\n\nexport interface IHooksTemplate {\n  path: string;\n  method: string;\n  media: OpenAPIV3.OperationObject;\n}\ntype PathItemObject = OpenAPIV3.PathItemObject;\nexport function hookTemplate({\n  objectName,\n  objectPath,\n  index,\n  len,\n}: {\n  objectName: string;\n  objectPath: PathItemObject;\n  index: number;\n  len: number;\n}) {\n  const {scopeName} = pathSplit(objectName);\n  const iteratedMathods = MethodIterator(objectPath);\n  const tagName = camelCase(\n    scopeName || iteratedMathods?.[0].objectMethod.tags?.[0] || '_NO_TAG'\n  );\n\n  let apis = '';\n  if (configStore?.hook === 'ReactQuery') {\n    apis = iteratedMathods\n      ?.map(method => {\n        return ReactQueryTemplate({\n          method: method.objectName,\n          path: objectName,\n          media: method.objectMethod,\n        });\n      })\n      .join('') as string;\n  } else if (configStore?.hook === 'SWR') {\n    apis = iteratedMathods\n      ?.map(method => {\n        return SwrTemplate({\n          method: method.objectName,\n          path: objectName,\n          media: method.objectMethod,\n        });\n      })\n      .join('') as string;\n  } else if (configStore?.hook === 'NG') {\n    apis = iteratedMathods\n      ?.map(method => {\n        return NGTemplate({\n          method: method.objectName,\n          path: objectName,\n          media: method.objectMethod,\n        });\n      })\n      .join('') as string;\n  }\n\n  if (openedScope !== tagName) {\n    const result =\n      index === 0\n        ? 'public ' + tagName + '={' + apis\n        : ' \\n}; \\n public ' + tagName + '={' + apis;\n    openedScope = tagName;\n\n    return index + 1 === len ? result + '}; ' : result;\n  } else {\n    return index + 1 === len ? apis + '}; ' : apis;\n  }\n}\n","import {OpenAPIV3} from 'openapi-types';\nimport chalk from 'chalk';\n\ntype PathItemObject = OpenAPIV3.PathItemObject;\ntype IMethod = Omit<\n  PathItemObject,\n  '$ref' | 'description' | 'parameters' | 'servers' | 'summary'\n>;\n\nexport interface MethodIterator {\n  objectName: string;\n  objectMethod: OpenAPIV3.OperationObject;\n}\nexport function MethodIterator(Method: IMethod | undefined) {\n  if (!Method) {\n    console.warn(\n      chalk.yellow(\n        ' └ Path Object must be include at least one method but it is undefined!'\n      )\n    );\n    return;\n  }\n  const entries = Object.entries(Method);\n  const object = entries.map(cur => {\n    return {\n      objectName: cur[0],\n      objectMethod: cur[1] as OpenAPIV3.OperationObject,\n    };\n  });\n\n  return object;\n}\n","import {camelize, capitalize} from '../../../helper/index.ts';\n\nexport function typeNameMaker(name: string, extra = 'Set') {\n  return 'I' + camelCase(name) + extra;\n}\nexport function typeNameSpaceMaker(\n  name: string,\n  namespace: string,\n  extra = 'Set'\n) {\n  return (\n    namespace + '.I' + capitalize(camelize(nameRefineWithDot(name))) + extra\n  );\n}\n\nexport function nameRefine(name: string) {\n  const reg = /[^a-zA-Z0-9]/g;\n\n  return name.toString().replace(reg, '');\n}\nexport function nameRefineWithDot(name: string) {\n  const reg = /[^a-zA-Z0-9.]/g;\n\n  return name.toString().replace(reg, '');\n}\n\nexport function nameStringify(name: string) {\n  return \"'\" + name + \"'\";\n}\n\nexport function camelCase(name: string) {\n  return capitalize(camelize(nameRefine(name)));\n}\n","import {OpenAPIV3} from 'openapi-types';\nimport {typeNameMaker} from '../func/Typescript/TypeNameMaker/index.ts';\nimport {Spec, isReference} from '../types.ts';\nconst repoTypes: string[] = [''];\nexport function capitalize(string: string) {\n  return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nexport function camelize(str: string) {\n  return str\n    .replace(/(?:^\\w|[A-Z]|\\b\\w)/g, (word, index) => {\n      return index === 0 ? word.toLowerCase() : word.toUpperCase();\n    })\n    .replace(/\\s+/g, '');\n}\n\nexport const primitiveJs = (\n  key: 'string' | 'number' | 'boolean' | 'integer' | undefined\n) => {\n  switch (key) {\n    case 'integer':\n      return 'number';\n    case 'number':\n      return 'number';\n    case 'boolean':\n      return 'boolean';\n    case 'string':\n      return 'string';\n\n    default:\n      return 'unknown';\n  }\n};\n\nexport const definitionFullName = (defination: Spec) => {\n  return defination.info.title + '_' + defination.info.version;\n};\n\nexport const isDuplication = (name: string, data: string[]): boolean => {\n  const iName = typeNameMaker(name);\n  const include = repoTypes.some(item => item.includes(iName));\n  const dataInclude = data.some(item => item.includes(iName));\n  if (include && dataInclude) {\n    return true;\n  }\n  repoTypes.push(iName);\n  return false;\n};\n\nexport const isNullable = (\n  schema: OpenAPIV3.ReferenceObject | OpenAPIV3.SchemaObject\n): boolean | undefined => {\n  if (!isReference(schema)) {\n    return schema.nullable;\n  }\n  return undefined;\n};\n\nexport const definationComment = (defination: Spec, data: string[][]) => {\n  data.forEach(fileData => {\n    fileData.push(\n      `\\n/* ${defination.info.title} - ${defination.info.version} */\\n`\n    );\n  });\n};\nexport const getDefinationComment = (defination: Spec) => {\n  return ` ${defination.info.title} - ${defination.info.version}`;\n};\n\nexport function statusString(status: string) {\n  const okReg = /2\\d\\d/g;\n  const badReg = /400/g;\n  if (okReg.test(status)) {\n    return 'Ok';\n  }\n\n  if (badReg) {\n    return 'Bad';\n  }\n\n  return;\n}\n\nexport const pathSplit = (path: string) => {\n  const reg = /\\/{\\w*}/g;\n  const regBracketsParams = /{(.*?)}/g;\n  const refinePath = path.replace(reg, '');\n\n  const bracketsParams = path\n    .match(regBracketsParams)\n    ?.map(params => {\n      const name = params.replace(/{|}/g, '');\n      return 'By' + capitalize(name);\n    })\n    .join('');\n\n  const pathScope = refinePath.split('/') as string[];\n  const definationName = pathScope[1] as string;\n  const scopeName = pathScope[3] as string;\n  const itemName =\n    (((pathScope[pathScope.length - 1] as string) +\n      capitalize(pathScope[pathScope.length - 2])) as string) +\n    (bracketsParams || '');\n\n  return {pathScope, definationName, scopeName, itemName};\n};\n","import chalk from 'chalk';\nimport ora from 'ora';\nimport {cosmiconfig} from 'cosmiconfig';\nimport {IConfig} from '../types.ts';\nimport {ConfigStore} from './store/store.ts';\nconst spinner = ora('get hookgenrc config file');\nconst explorer = () => cosmiconfig('hookgenrc');\n// eslint-disable-next-line prefer-const\nexport let configStore: ConfigStore | undefined = undefined;\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n//@ts-ignore\nexport async function getConfig(): Promise<IConfig | undefined> {\n  spinner.start();\n  try {\n    const configFile = await explorer().load('./hookgenrc.json');\n    if (configFile?.isEmpty) {\n      spinner.warn();\n      console.warn(chalk.yellow(' └ codegen file is empty!'));\n      return Promise.resolve(undefined);\n    } else {\n      spinner.succeed();\n      configStore = new ConfigStore(configFile?.config as IConfig);\n      return configFile?.config as IConfig;\n    }\n  } catch (error) {\n    spinner.fail();\n    console.error(\n      chalk.bgRedBright(error ? error : ' └ Error get config file')\n    );\n    throw new Error(\n      chalk.bgRedBright(error ? error : ' └ Error get config file')\n    );\n  }\n}\n","import {OpenAPIV3} from 'openapi-types';\nimport {pathSplit} from '../../helper/index.ts';\nimport {camelCase} from '../../func/Typescript/TypeNameMaker/index.ts';\nimport {HttpMethodsUpperCase} from '../../types.ts';\n\ninterface SwrTemplate {\n  path: string;\n  method: string;\n  media: OpenAPIV3.OperationObject;\n}\nexport function SwrTemplate({\n  method,\n  path,\n  media: {description, deprecated, tags, summary},\n}: SwrTemplate) {\n  const {definationName, scopeName, itemName} = pathSplit(path);\n  if (!method) {\n    return '';\n  }\n  const name = camelCase(itemName);\n  const methodName = camelCase(method) as HttpMethodsUpperCase;\n  const tagName = camelCase(scopeName || tags?.[0] || '');\n\n  const typeRoot = `${camelCase(definationName)}.${\n    tagName ? tagName + '.' : ''\n  }${methodName}`;\n  const entityName = camelCase(method) + name;\n  const requestType = `${typeRoot}.Request.`;\n  const responseType = `${typeRoot}.Response.`;\n  if (methodName === 'Get') {\n    return `\\n/**\n  ${deprecated ? '* @deprecated' : '* '}\n   * ${description ? description : 'No description'}\n   * @summary  ${summary}\n   * @tags ${tags}\n   * @name ${name}\n   * @request ${methodName}:${path}\n   */\n    use${entityName} :(arg: ${requestType}${name},\n        options?: Partial<PublicConfiguration<\n        ${responseType}${name},\n        unknown,\n        any\n      >>\n       )=> {\n        return useSWR(['${tagName ? tagName + '.' : ''}${entityName}'],() =>\n       this.Api._${tagName ? tagName + '.' : ''}${entityName}(arg),options\n      );\n  },`;\n  } else\n    return `\\n/**\n  ${deprecated ? '* @deprecated' : '* '}\n   * ${description ? description : 'No description'}\n   * @summary  ${summary}\n   * @tags ${tags}\n   * @name ${name}\n   * @request ${methodName}:${path}\n   */\n       use${entityName} :(\n        options?: SWRMutationConfiguration<\n        ${responseType}${name},\n        unknown,\n        string[],\n        ${requestType}${name},\n        any\n      >\n       )=> {\n        return useSWRMutation<\n       ${responseType}${name},\n        unknown,\n        string[],\n        ${requestType}${name}\n      >(['${tagName ? tagName + '.' : ''}${entityName}'], (key, {arg}) =>\n       this.Api._${tagName ? tagName + '.' : ''}${entityName}(arg),options\n      );\n\n  },`;\n}\n","import {pathSplit} from '../../helper/index.ts';\nimport {camelCase} from '../../func/Typescript/TypeNameMaker/index.ts';\nimport {HttpMethodsUpperCase} from '../../types.ts';\nimport {IHooksTemplate} from './HooksTemplate.ts';\nimport {OpenAPIV3} from 'openapi-types';\nimport {configStore} from '../../config/index.ts';\nconst getResourcePicked = (value: string) => {\n  if (configStore?.resourcePick) {\n    return `Pick<${value},'${configStore?.resourcePick}'>['${configStore?.resourcePick}']`;\n  } else {\n    return value;\n  }\n};\nexport function ReactQueryTemplate({\n  method,\n  path,\n  media: {description, deprecated, tags, summary, parameters},\n}: IHooksTemplate) {\n  const {definationName, scopeName, itemName} = pathSplit(path);\n  if (!method) {\n    return '';\n  }\n\n  const isPaging = parameters?.some(param =>\n    (param as OpenAPIV3.ParameterObject).name.includes('PageNumber')\n  );\n  const name = camelCase(itemName);\n  const methodName = camelCase(method) as HttpMethodsUpperCase;\n  const tagName = camelCase(scopeName || tags?.[0] || '');\n\n  const typeRoot = `${camelCase(definationName)}.${\n    tagName ? tagName + '.' : ''\n  }${methodName}`;\n  const entityName = camelCase(method) + name;\n  const requestType = `${typeRoot}.Request.`;\n  const responseType = `${typeRoot}.Response.`;\n\n  if (methodName === 'Get') {\n    const query = getMethod(\n      deprecated,\n      description,\n      summary,\n      tags,\n      name,\n      methodName,\n      path,\n      entityName,\n      responseType,\n      requestType,\n      tagName\n    );\n    const infinit = isPaging\n      ? infiniteMethod(\n          deprecated,\n          description,\n          summary,\n          tags,\n          name,\n          methodName,\n          path,\n          entityName,\n          responseType,\n          requestType,\n          tagName\n        )\n      : '';\n    return query + infinit;\n  } else\n    return `\\n/**\n  ${deprecated ? '* @deprecated' : '* '}\n   * ${description ? description : 'No description'}\n   * @summary  ${summary}\n   * @tags ${tags}\n   * @name ${name}\n   * @request ${methodName}:${path}\n   \n    ${deprecated ? '' : '*/ '}\n use${entityName} :(\n\toptions?: Omit<UseMutationOptions<${getResourcePicked(\n    `${responseType}${name}`\n  )}, unknown,${requestType}${name} | undefined, unknown>, \"mutationFn\">,\n  axiosOptions?: AxiosOpt,\n) => {\n\treturn useMutation((args)=>this.Api._${\n    tagName ? tagName + '.' : ''\n  }${entityName}(args,axiosOptions), options);\n} ,\n${deprecated ? '*/' : ' '}`;\n}\n\nfunction infiniteMethod(\n  deprecated: boolean | undefined,\n  description: string | undefined,\n  summary: string | undefined,\n  tags: string[] | undefined,\n  name: string,\n  methodName: string,\n  path: string,\n  entityName: string,\n  responseType: string,\n  requestType: string,\n  tagName: string\n) {\n  return `\n    \\n/**\n  ${deprecated ? '* @deprecated' : '* '}\n   * ${description ? description : 'No description'}\n   * @summary  ${summary}\n   * @tags ${tags}\n   * @name ${name}\n   * @request ${methodName}:${path}\n   ${deprecated ? '' : '*/ '}\n   use${entityName}Infinit:<T = ${getResourcePicked(`${responseType}${name}`)}>(\n\targs: ${requestType}${name},\n\toptions?:\n\t\t| Omit<\n\t\t\t\tUseInfiniteQueryOptions<${getResourcePicked(\n          `${responseType}${name}`\n        )}, unknown, T, ${getResourcePicked(\n          `${responseType}${name}`\n        )}, (string | ${requestType}${name})[]>,\n\t\t\t\t\"queryFn\" | \"queryKey\"\n\t\t  >\n\t\t| undefined,\n  axiosOptions?: AxiosOpt,\n) => {\n\treturn useInfiniteQuery(['${\n    tagName ? tagName + '.' : ''\n  }${entityName}', args], ({ pageParam = 1 }) => this.Api._${\n    tagName ? tagName + '.' : ''\n  }${entityName}({ ...args, \n   params:{\n              ...args.params,\n              PageNumber: pageParam,\n            }\n  },  axiosOptions), options);\n},\n${deprecated ? '*/' : ' '}`;\n}\n\nfunction getMethod(\n  deprecated: boolean | undefined,\n  description: string | undefined,\n  summary: string | undefined,\n  tags: string[] | undefined,\n  name: string,\n  methodName: string,\n  path: string,\n  entityName: string,\n  responseType: string,\n  requestType: string,\n  tagName: string\n) {\n  return `\\n/**\n  ${deprecated ? '* @deprecated' : '* '}\n   * ${description ? description : 'No description'}\n   * @summary  ${summary}\n   * @tags ${tags}\n   * @name ${name}\n   * @request ${methodName}:${path}\n     ${deprecated ? '' : '*/ '}\n  use${entityName} : <T =  ${getResourcePicked(`${responseType}${name}`)}>(\n\targs:  ${requestType}${name},\n\toptions?: Omit<UseQueryOptions<${getResourcePicked(\n    `${responseType}${name}`\n  )}, unknown, T, (string |${requestType}${name})[]>, \"initialData\" | \"queryFn\" | \"queryKey\">,\n  axiosOptions?: AxiosOpt,\n) => {\n\treturn useQuery(['${\n    tagName ? tagName + '.' : ''\n  }${entityName}', args], () => this.Api._${\n    tagName ? tagName + '.' : ''\n  }${entityName}(args,axiosOptions), options);\n},\n  ${deprecated ? '*/' : ' '}`;\n}\n","import {pathSplit} from '../../helper/index.ts';\nimport {camelCase} from '../../func/Typescript/TypeNameMaker/index.ts';\nimport {HttpMethodsUpperCase} from '../../types.ts';\nimport {IHooksTemplate} from './HooksTemplate.ts';\nimport {OpenAPIV3} from 'openapi-types';\nimport {configStore} from '../../config/index.ts';\nconst getResourcePicked = (value: string) => {\n  if (configStore?.resourcePick) {\n    return `${value}['${configStore?.resourcePick}']`;\n  } else {\n    return value;\n  }\n};\nexport function NGTemplate({\n  method,\n  path,\n  media: {description, deprecated, tags, summary, parameters},\n}: IHooksTemplate) {\n  const {definationName, scopeName, itemName} = pathSplit(path);\n  if (!method) {\n    return '';\n  }\n\n  const isPaging = parameters?.some(param =>\n    (param as OpenAPIV3.ParameterObject).name.includes('PageNumber')\n  );\n  const name = camelCase(itemName);\n  const methodName = camelCase(method) as HttpMethodsUpperCase;\n  const tagName = camelCase(scopeName || tags?.[0] || '');\n  const typeRoot = `${camelCase(definationName)}.${\n    tagName ? tagName + '.' : ''\n  }${methodName}`;\n  const entityName = camelCase(method) + name;\n  const requestType = `${typeRoot}.Request.`;\n  const responseType = `${typeRoot}.Response.`;\n\n  if (methodName === 'Get') {\n    const query = getMethod(\n      deprecated,\n      description,\n      summary,\n      tags,\n      name,\n      methodName,\n      path,\n      entityName,\n      responseType,\n      requestType,\n      tagName\n    );\n    const infinit = isPaging\n      ? infiniteMethod(\n          deprecated,\n          description,\n          summary,\n          tags,\n          name,\n          methodName,\n          path,\n          entityName,\n          responseType,\n          requestType,\n          tagName\n        )\n      : '';\n    return query + infinit;\n  } else\n    return `\\n/**\n  ${deprecated ? '* @deprecated' : '* '}\n   * ${description ? description : 'No description'}\n   * @summary  ${summary}\n   * @tags ${tags}\n   * @name ${name}\n   * @request ${methodName}:${path}\n   \n    ${deprecated ? '' : '*/ '}\n use${entityName} :(\n\t  options?: Omit<MutationObserverOptions<${responseType}${name}, HttpErrorResponse<${responseType}${name}>, ${requestType}${name}| undefined, unknown>, \"mutationFn\"> | undefined,\n  httpOptions?:HttpRequest<${responseType}${name}>,\n) => {\n\treturn this.useMutation((args:${requestType}${name})=>{\n         return this.Api._${\n           tagName ? tagName + '.' : ''\n         }${entityName}(args,httpOptions)\n    }, options);\n} ,\n${deprecated ? '*/' : ' '}`;\n}\n\nfunction infiniteMethod(\n  deprecated: boolean | undefined,\n  description: string | undefined,\n  summary: string | undefined,\n  tags: string[] | undefined,\n  name: string,\n  methodName: string,\n  path: string,\n  entityName: string,\n  responseType: string,\n  requestType: string,\n  tagName: string\n) {\n  return `\n    \\n/**\n  ${deprecated ? '* @deprecated' : '* '}\n   * ${description ? description : 'No description'}\n   * @summary  ${summary}\n   * @tags ${tags}\n   * @name ${name}\n   * @request ${methodName}:${path}\n   * options?:\n\t\t| Omit<\n\t\t\t\tUseInfiniteQueryOptions<${getResourcePicked(\n          `${responseType}${name}`\n        )}, HttpErrorResponse<${responseType}${name}>, T, ${getResourcePicked(\n          `${responseType}${name}`\n        )}, (string | ${requestType}${name})[]>,\n\t\t\t\t\"queryFn\" | \"queryKey\"\n\t\t  >\n\t\t| undefined,\n   ${deprecated ? '' : '*/ '}\n   use${entityName}Infinit:(\n\targs: BehaviorSubject<${requestType}${name}>,\n   httpOptions?:HttpRequest<${responseType}${name}>,\n) => {\n\n   args.pipe(\n        switchMap(arg => {\n          return this.useInfiniteQuery(['${\n            tagName ? tagName + '.' : ''\n          }${entityName}', arg], ({ pageParam = 1 }) => {\n\n                return this.Api._${\n                  tagName ? tagName + '.' : ''\n                }${entityName}({ ...arg, \n                  params:{\n                              ...arg.params,\n                              PageNumber: pageParam,\n                              }\n                  },  httpOptions)\n            }, {\n                  keepPreviousData: true,\n                  refetchOnMount: false,\n                  refetchOnWindowFocus: false,\n                  getNextPageParam: lastPage => {\n                    return lastPage.result.hasNextPage ? lastPage.result.pageNumber + 1 : false;\n                  },\n              }).result$;\n        }))\n        \n\t\n},\n${deprecated ? '*/' : ' '}`;\n}\n\nfunction getMethod(\n  deprecated: boolean | undefined,\n  description: string | undefined,\n  summary: string | undefined,\n  tags: string[] | undefined,\n  name: string,\n  methodName: string,\n  path: string,\n  entityName: string,\n  responseType: string,\n  requestType: string,\n  tagName: string\n) {\n  return `\\n/**\n  ${deprecated ? '* @deprecated' : '* '}\n   * ${description ? description : 'No description'}\n   * @summary  ${summary}\n   * @tags ${tags}\n   * @name ${name}\n   * @request ${methodName}:${path}\n     ${deprecated ? '' : '*/ '}\n  use${entityName} :(\n\n\targs:  BehaviorSubject<${requestType}${name}>,\n    options?: (Omit<NgQueryObserverOptions<${getResourcePicked(\n      `${responseType}${name}`\n    )}, HttpErrorResponse<${responseType}${name}>, ${getResourcePicked(\n      `${responseType}${name}`\n    )}, ${getResourcePicked(\n      `${responseType}${name}`\n    )}, (string|undefined | ${requestType}${name})[]>, \"queryFn\" | \"initialData\">) | undefined,\n  httpOptions?:HttpRequest<${responseType}${name}>,\n    extraKey?:string,\n) => {\n\treturn args.pipe(\n        switchMap(arg => {\n          return this.useQuery(['${\n            tagName ? tagName + '.' : ''\n          }${entityName}', arg,extraKey], () => {\n                  return  this.Api._${\n                    tagName ? tagName + '.' : ''\n                  }${entityName}(arg,httpOptions)\n            }, options).result$;\n\n        }))\n},\n  ${deprecated ? '*/' : ' '}`;\n}\n"],"mappings":"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","names":["chalk","import_chalk","ora","getResourcePicked","getMethod","infiniteMethod"]}