{"version":3,"sources":["../../../src/scripts/CreateHooks/swrTemplate.ts","../../../src/func/Typescript/TypeNameMaker/index.ts","../../../src/helper/index.ts"],"sourcesContent":["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 {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"],"mappings":"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","names":[]}