@danstackme/apity
Version:
Type-safe API client generator for React applications with file-based routing and runtime validation
1 lines • 44.1 kB
Source Map (JSON)
{"version":3,"sources":["../../scripts/import-openapi.ts"],"names":["value","swagger2openapi","mkdir","writeFile","Command","readFile"],"mappings":"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","file":"import-openapi.cjs","sourcesContent":["#!/usr/bin/env node\nimport { Command } from \"commander\";\nimport { mkdir, readFile, writeFile } from \"fs/promises\";\nimport swagger2openapi from \"swagger2openapi\";\nimport type { OpenAPIV3 } from \"openapi-types\";\n\n// Simple YAML parser to avoid node:process dependency\nfunction parseYaml(yamlString: string): any {\n try {\n // Very basic YAML parser for simple YAML structures\n const lines = yamlString.split(\"\\n\");\n const result: any = {};\n let currentObject = result;\n const stack: any[] = [result];\n let currentIndent = 0;\n let currentArray: any[] | null = null;\n let arrayIndent = -1;\n\n for (let i = 0; i < lines.length; i++) {\n const line = lines[i];\n // Skip empty lines and comments\n if (line.trim() === \"\" || line.trim().startsWith(\"#\")) continue;\n\n // Calculate indent\n const indent = line.search(/\\S/);\n if (indent < 0) continue;\n\n // Check if this is an array item\n if (line.trim().startsWith(\"-\")) {\n // Array item\n const arrayItemMatch = line.trim().match(/^-\\s*(.*)$/);\n if (!arrayItemMatch) continue;\n\n const value = arrayItemMatch[1].trim();\n\n // Starting a new array\n if (arrayIndent === -1 || indent !== arrayIndent) {\n // Find the array key from the previous line\n let j = i - 1;\n while (j >= 0) {\n const prevLine = lines[j].trim();\n if (prevLine === \"\" || prevLine.startsWith(\"#\")) {\n j--;\n continue;\n }\n\n const keyMatch = prevLine.match(/^([\\w-]+):(?:\\s*)?$/);\n if (keyMatch) {\n const arrayKey = keyMatch[1];\n currentObject[arrayKey] = [];\n currentArray = currentObject[arrayKey];\n arrayIndent = indent;\n break;\n }\n j--;\n }\n }\n\n if (currentArray) {\n if (value === \"\") {\n // This is an object in the array\n const newObj = {};\n currentArray.push(newObj);\n stack.push(currentObject);\n currentObject = newObj;\n currentIndent = indent;\n currentArray = null; // We're now working with an object\n } else {\n // Simple value in array\n let parsedValue: any = value;\n if (parsedValue === \"true\") parsedValue = true;\n else if (parsedValue === \"false\") parsedValue = false;\n else if (!isNaN(Number(parsedValue)) && parsedValue !== \"\")\n parsedValue = Number(parsedValue);\n else if (parsedValue.startsWith(\"'\") && parsedValue.endsWith(\"'\"))\n parsedValue = parsedValue.slice(1, -1);\n else if (parsedValue.startsWith('\"') && parsedValue.endsWith('\"'))\n parsedValue = parsedValue.slice(1, -1);\n\n currentArray.push(parsedValue);\n }\n }\n continue;\n } else {\n // If we're back to regular objects after array\n if (indent <= arrayIndent) {\n arrayIndent = -1;\n currentArray = null;\n }\n }\n\n // Get key and value for objects\n const match = line.trim().match(/^([\\w-]+):(?:\\s(.+))?$/);\n if (!match) continue;\n\n const [_, key, value] = match;\n\n if (value === undefined || value.trim() === \"\") {\n // New object\n currentObject[key] = {};\n if (indent > currentIndent) {\n stack.push(currentObject);\n currentObject = currentObject[key];\n currentIndent = indent;\n } else if (indent < currentIndent) {\n // Go back up the stack\n while (stack.length > 1 && indent <= currentIndent) {\n stack.pop();\n currentObject = stack[stack.length - 1];\n currentIndent -= 2; // Assuming 2-space indentation\n }\n currentObject[key] = {};\n stack.push(currentObject);\n currentObject = currentObject[key];\n } else {\n currentObject = stack[stack.length - 1];\n currentObject[key] = {};\n currentObject = currentObject[key];\n }\n } else {\n // Simple key-value pair\n // Handle string, number, boolean values\n let parsedValue: any = value.trim();\n if (parsedValue === \"true\") parsedValue = true;\n else if (parsedValue === \"false\") parsedValue = false;\n else if (!isNaN(Number(parsedValue)) && parsedValue !== \"\")\n parsedValue = Number(parsedValue);\n else if (parsedValue.startsWith(\"'\") && parsedValue.endsWith(\"'\"))\n parsedValue = parsedValue.slice(1, -1);\n else if (parsedValue.startsWith('\"') && parsedValue.endsWith('\"'))\n parsedValue = parsedValue.slice(1, -1);\n\n currentObject[key] = parsedValue;\n }\n }\n\n return result;\n } catch (error) {\n console.error(\"Error parsing YAML:\", error);\n throw error;\n }\n}\n\ninterface GenerateOptions {\n outDir?: string;\n}\n\nexport async function convertToOpenAPI3(doc: any): Promise<OpenAPIV3.Document> {\n if (doc.openapi && doc.openapi.startsWith(\"3.\")) {\n return doc as OpenAPIV3.Document;\n }\n\n const result = await swagger2openapi.convert(doc, {});\n return result.openapi;\n}\n\nexport function isReferenceObject(obj: any): obj is OpenAPIV3.ReferenceObject {\n return obj !== null && obj !== undefined && \"$ref\" in obj;\n}\n\n// Function to extract the schema name from a reference\nexport function getRefName(ref: string): string {\n if (!ref) return \"\";\n const parts = ref.split(\"/\");\n return parts[parts.length - 1];\n}\n\n// Function to resolve references in the OpenAPI schema\nexport function resolveRef(\n ref: string,\n spec: OpenAPIV3.Document\n): OpenAPIV3.SchemaObject | undefined {\n if (!ref.startsWith(\"#/\")) return undefined;\n\n const parts = ref.substring(2).split(\"/\");\n let current: any = spec;\n\n for (const part of parts) {\n if (!current[part]) return undefined;\n current = current[part];\n }\n\n return current as OpenAPIV3.SchemaObject;\n}\n\n// Process schema definitions from the OpenAPI spec\nexport function processSchemaDefinitions(\n spec: OpenAPIV3.Document\n): Map<string, OpenAPIV3.SchemaObject> {\n const schemas = new Map<string, OpenAPIV3.SchemaObject>();\n\n // Extract schemas from components section\n if (spec.components?.schemas) {\n for (const [name, schema] of Object.entries(spec.components.schemas)) {\n if (!isReferenceObject(schema)) {\n schemas.set(name, schema);\n }\n }\n }\n\n return schemas;\n}\n\nexport async function generateRoutes(\n spec: OpenAPIV3.Document,\n options: GenerateOptions\n) {\n const routes = new Map<string, Record<string, any>>();\n const schemas = processSchemaDefinitions(spec);\n\n // Process each path in the OpenAPI spec\n for (const [path, pathItem] of Object.entries(spec.paths || {})) {\n if (!pathItem) continue;\n\n const routePath = path.replace(/{([^}]+)}/g, \"[$1]\");\n const methods: Record<string, any> = {};\n\n // Process each HTTP method\n for (const [method, operation] of Object.entries(pathItem)) {\n if (\n method === \"parameters\" ||\n !operation ||\n typeof operation === \"string\" ||\n Array.isArray(operation)\n )\n continue;\n\n const upperMethod = method.toUpperCase();\n const response = operation.responses?.[200];\n const requestBody = operation.requestBody;\n\n methods[upperMethod] = {\n method: upperMethod,\n response: processResponseSchema(response, spec),\n body: processRequestBodySchema(requestBody, spec),\n query: {},\n params: {},\n };\n\n // Extract query parameters\n const queryParams =\n operation.parameters?.filter((p) => {\n if (!p || typeof p === \"string\") return false;\n return \"in\" in p && p.in === \"query\";\n }) || [];\n\n if (queryParams.length > 0) {\n methods[upperMethod].query = {\n type: \"object\",\n properties: Object.fromEntries(\n queryParams.map((p) => {\n if (typeof p === \"string\" || isReferenceObject(p))\n return [\"\", {}];\n return [\"name\" in p ? p.name : \"\", \"schema\" in p ? p.schema : {}];\n })\n ),\n };\n }\n\n // Extract path parameters\n const pathParams =\n operation.parameters?.filter((p) => {\n if (!p || typeof p === \"string\") return false;\n return \"in\" in p && p.in === \"path\";\n }) || [];\n\n if (pathParams.length > 0) {\n methods[upperMethod].params = {\n type: \"object\",\n properties: Object.fromEntries(\n pathParams.map((p) => [\n \"name\" in p ? p.name : \"\",\n \"schema\" in p ? p.schema : {},\n ])\n ),\n };\n }\n }\n\n routes.set(routePath, methods);\n }\n\n await generateSingleFile(\n routes,\n schemas,\n options.outDir || \"src\",\n spec.servers?.[0]?.url || \"\"\n );\n}\n\n// Process response schema and resolve any references\nfunction processResponseSchema(\n response: OpenAPIV3.ReferenceObject | OpenAPIV3.ResponseObject | undefined,\n spec: OpenAPIV3.Document\n): OpenAPIV3.SchemaObject {\n if (!response) return {};\n\n if (isReferenceObject(response)) {\n const resolvedSchema = resolveRef(response.$ref, spec);\n return resolvedSchema || {};\n }\n\n const contentSchema = response.content?.[\"application/json\"]?.schema;\n\n if (!contentSchema) return {};\n\n if (isReferenceObject(contentSchema)) {\n const resolvedSchema = resolveRef(contentSchema.$ref, spec);\n return resolvedSchema || {};\n }\n\n // Process allOf if present in the schema\n if (contentSchema.allOf) {\n return processAllOf(contentSchema, spec);\n }\n\n // Process oneOf if present in the schema (keep as is for later Zod union conversion)\n if (contentSchema.oneOf) {\n return contentSchema;\n }\n\n return contentSchema;\n}\n\n// Process request body schema and resolve any references\nfunction processRequestBodySchema(\n requestBody:\n | OpenAPIV3.ReferenceObject\n | OpenAPIV3.RequestBodyObject\n | undefined,\n spec: OpenAPIV3.Document\n): OpenAPIV3.SchemaObject {\n if (!requestBody) return {};\n\n if (isReferenceObject(requestBody)) {\n const resolvedSchema = resolveRef(requestBody.$ref, spec);\n return resolvedSchema || {};\n }\n\n const contentSchema = requestBody.content?.[\"application/json\"]?.schema;\n\n if (!contentSchema) return {};\n\n if (isReferenceObject(contentSchema)) {\n const resolvedSchema = resolveRef(contentSchema.$ref, spec);\n return resolvedSchema || {};\n }\n\n // Process allOf if present in the schema\n if (contentSchema.allOf) {\n return processAllOf(contentSchema, spec);\n }\n\n // Process oneOf if present in the schema (keep as is for later Zod union conversion)\n if (contentSchema.oneOf) {\n return contentSchema;\n }\n\n return contentSchema;\n}\n\n// Process allOf keyword by merging schemas\nfunction processAllOf(\n schema: OpenAPIV3.SchemaObject,\n spec: OpenAPIV3.Document\n): OpenAPIV3.SchemaObject {\n if (\n !schema.allOf ||\n !Array.isArray(schema.allOf) ||\n schema.allOf.length === 0\n ) {\n return schema;\n }\n\n // Create a copy of the schema without the allOf property\n const { allOf, ...baseSchema } = schema;\n const mergedSchema = { ...baseSchema };\n\n // Merge all sub-schemas\n for (const subSchema of allOf) {\n let resolvedSubSchema: OpenAPIV3.SchemaObject;\n\n if (isReferenceObject(subSchema)) {\n const resolved = resolveRef(subSchema.$ref, spec);\n if (!resolved) continue;\n resolvedSubSchema = resolved;\n } else {\n resolvedSubSchema = subSchema;\n }\n\n // Recursively process nested allOf\n if (resolvedSubSchema.allOf) {\n resolvedSubSchema = processAllOf(resolvedSubSchema, spec);\n }\n\n // Merge properties\n if (resolvedSubSchema.properties) {\n mergedSchema.properties = {\n ...mergedSchema.properties,\n ...resolvedSubSchema.properties,\n };\n }\n\n // Merge required fields\n if (resolvedSubSchema.required && resolvedSubSchema.required.length > 0) {\n mergedSchema.required = [\n ...(mergedSchema.required || []),\n ...resolvedSubSchema.required,\n ];\n }\n\n // Merge other attributes (type, format, etc.)\n if (resolvedSubSchema.type && !mergedSchema.type) {\n // @ts-expect-error - We're carefully handling schema type merging\n mergedSchema.type = resolvedSubSchema.type;\n }\n if (resolvedSubSchema.format && !mergedSchema.format) {\n mergedSchema.format = resolvedSubSchema.format;\n }\n if (resolvedSubSchema.description && !mergedSchema.description) {\n mergedSchema.description = resolvedSubSchema.description;\n }\n }\n\n return mergedSchema;\n}\n\n// Add helper function to convert OpenAPI schema to Zod type\nfunction convertToZodSchema(\n schema: OpenAPIV3.SchemaObject | OpenAPIV3.ReferenceObject | undefined,\n _isRequired = false,\n schemas: Map<string, OpenAPIV3.SchemaObject> = new Map()\n): string {\n if (!schema) return \"z.void()\";\n\n // Handle reference objects\n if (isReferenceObject(schema)) {\n const refName = getRefName(schema.$ref);\n if (schemas.has(refName)) {\n // For referenced schemas, create a reusable Zod schema\n return `z.lazy(() => ${refName}Schema)`;\n }\n return \"z.unknown()\";\n }\n\n // Process allOf if present and didn't get merged earlier\n if (schema.allOf) {\n // Convert each subSchema in allOf to a Zod schema\n const allOfSchemas = schema.allOf.map((subSchema) =>\n convertToZodSchema(subSchema, _isRequired, schemas)\n );\n\n // For a single schema, just return it\n if (allOfSchemas.length === 1) {\n return allOfSchemas[0];\n }\n\n // For multiple schemas, nest the intersections\n // z.intersection takes exactly two arguments, so we need to nest them for 3+ schemas\n let result = `z.intersection(${allOfSchemas[0]}, ${allOfSchemas[1]})`;\n\n // Add additional schemas by nesting intersections\n for (let i = 2; i < allOfSchemas.length; i++) {\n result = `z.intersection(${result}, ${allOfSchemas[i]})`;\n }\n\n return result;\n }\n\n // Process oneOf schemas using Zod union\n if (schema.oneOf && schema.oneOf.length > 0) {\n // Convert each subSchema in oneOf to a Zod schema\n const oneOfSchemas = schema.oneOf.map((subSchema) =>\n convertToZodSchema(subSchema, _isRequired, schemas)\n );\n\n // For a single schema, just return it\n if (oneOfSchemas.length === 1) {\n return oneOfSchemas[0];\n }\n\n // For multiple schemas, use z.union\n // z.union([A, B]) is equivalent to A.or(B)\n return oneOfSchemas.reduce((acc, current, index) => {\n if (index === 0) return current;\n return `${acc}.or(${current})`;\n }, \"\");\n }\n\n let numberType: string;\n let itemType: string;\n let properties: string[];\n let zodSchema: string;\n\n // Handle nullable types using union type syntax\n if (Array.isArray(schema.type)) {\n if (schema.type.includes(\"null\")) {\n const nonNullTypes = schema.type.filter((t) => t !== \"null\");\n if (nonNullTypes.length === 1) {\n const nonNullSchema = { ...schema, type: nonNullTypes[0] };\n return `${convertToZodSchema(nonNullSchema, _isRequired, schemas)}.nullable()`;\n }\n }\n // Default to string if multiple non-null types\n schema.type = \"string\";\n }\n\n switch (schema.type) {\n case \"string\":\n if (schema.enum) {\n zodSchema = `z.enum([${schema.enum.map((e) => `'${e}'`).join(\", \")}])`;\n } else if (schema.format === \"date-time\") {\n zodSchema = \"z.string().datetime()\";\n } else if (schema.format === \"email\") {\n zodSchema = \"z.string().email()\";\n } else {\n zodSchema = \"z.string()\";\n if (schema.minLength !== undefined) {\n zodSchema += `.min(${schema.minLength})`;\n }\n if (schema.maxLength !== undefined) {\n zodSchema += `.max(${schema.maxLength})`;\n }\n }\n break;\n\n case \"number\":\n case \"integer\":\n numberType = \"z.number()\";\n if (schema.minimum !== undefined) {\n numberType += `.min(${schema.minimum})`;\n }\n if (schema.maximum !== undefined) {\n numberType += `.max(${schema.maximum})`;\n }\n zodSchema = numberType;\n break;\n\n case \"boolean\":\n zodSchema = \"z.boolean()\";\n break;\n\n case \"array\":\n if (schema.items) {\n itemType = convertToZodSchema(schema.items, true, schemas);\n zodSchema = `z.array(${itemType})`;\n } else {\n zodSchema = \"z.array(z.unknown())\";\n }\n break;\n\n case \"object\":\n if (!schema.properties) return \"z.object({})\";\n\n properties = Object.entries(schema.properties).map(([key, prop]) => {\n const propIsRequired = schema.required?.includes(key);\n const propType = convertToZodSchema(prop, propIsRequired, schemas);\n return `${key}: ${propIsRequired ? propType : `${propType}.optional()`}`;\n });\n\n zodSchema = `z.object({\\n ${properties.join(\",\\n \")}\\n })`;\n break;\n\n default:\n zodSchema = \"z.unknown()\";\n }\n\n if (schema.nullable) {\n zodSchema += \".nullable()\";\n }\n\n if (schema.description) {\n const escapedDescription = schema.description.replace(/[`'\\\\]/g, \"\\\\$&\");\n zodSchema += `.describe(\\`${escapedDescription}\\`)`;\n }\n\n return zodSchema;\n}\n\nexport async function generateSingleFile(\n routes: Map<string, Record<string, any>>,\n schemas: Map<string, OpenAPIV3.SchemaObject>,\n outDir: string,\n baseUrl: string\n) {\n await mkdir(outDir, { recursive: true });\n\n const getRoutes = new Map<string, Map<string, any>>();\n const otherRoutes = new Map<string, Map<string, any>>();\n\n // Separate GET methods from other methods\n for (const [path, methods] of routes) {\n for (const [method, schema] of Object.entries(methods)) {\n if (method === \"GET\") {\n if (!getRoutes.has(path)) {\n getRoutes.set(path, new Map());\n }\n getRoutes.get(path)?.set(method, schema);\n } else {\n if (!otherRoutes.has(path)) {\n otherRoutes.set(path, new Map());\n }\n otherRoutes.get(path)?.set(method, schema);\n }\n }\n }\n\n let content = `import { createApi, createApiEndpoint } from '@danstackme/apity';\\n`;\n content += `import { z } from 'zod';\\n\\n`;\n\n // Generate schema type definitions first\n if (schemas.size > 0) {\n content += `// Schema definitions\\n`;\n for (const [name, schema] of schemas) {\n content += `export const ${name}Schema = ${convertToZodSchema(schema, true, schemas)};\\n\\n`;\n }\n }\n\n const fetchEndpointNames = new Map<string, string[]>();\n\n for (const [path, methods] of getRoutes) {\n const endpointNames = [];\n\n for (const [method, schema] of methods) {\n const pathParams = Object.keys(schema.params.properties || {});\n const endpointName = `${method}_${path.replace(/\\//g, \"\").replace(/\\[.*?\\]/g, \"\")}${pathParams.length > 0 ? `_${pathParams.join(\"_\")}` : \"\"}`;\n endpointNames.push(endpointName);\n\n content += `const ${endpointName} = createApiEndpoint({\\n`;\n content += ` method: '${method}',\\n`;\n\n // Convert response schema\n if (Object.keys(schema.response).length > 0) {\n if (isReferenceObject(schema.response)) {\n const refName = getRefName(schema.response.$ref);\n content += ` response: ${refName}Schema,\\n`;\n } else {\n content += ` response: ${convertToZodSchema(schema.response, true, schemas)},\\n`;\n }\n } else {\n content += ` response: z.void(),\\n`;\n }\n\n // Convert query parameters\n if (Object.keys(schema.query).length > 0) {\n content += ` query: ${convertToZodSchema(schema.query, false, schemas)},\\n`;\n }\n\n content += `});\\n\\n`;\n }\n\n if (endpointNames.length > 0) {\n fetchEndpointNames.set(path, endpointNames);\n }\n }\n\n const mutateEndpointNames = new Map<string, string[]>();\n\n for (const [path, methods] of otherRoutes) {\n const endpointNames = [];\n\n for (const [method, schema] of methods) {\n const pathParams = Object.keys(schema.params.properties || {});\n const endpointName = `${method}_${path.replace(/\\//g, \"\").replace(/\\[.*?\\]/g, \"\")}${pathParams.length > 0 ? `_${pathParams.join(\"_\")}` : \"\"}`;\n endpointNames.push(endpointName);\n\n content += `const ${endpointName} = createApiEndpoint({\\n`;\n content += ` method: '${method}',\\n`;\n\n // Convert response schema\n if (Object.keys(schema.response).length > 0) {\n if (isReferenceObject(schema.response)) {\n const refName = getRefName(schema.response.$ref);\n content += ` response: ${refName}Schema,\\n`;\n } else {\n content += ` response: ${convertToZodSchema(schema.response, true, schemas)},\\n`;\n }\n } else {\n content += ` response: z.void(),\\n`;\n }\n\n // Convert request body schema\n if (Object.keys(schema.body).length > 0) {\n if (isReferenceObject(schema.body)) {\n const refName = getRefName(schema.body.$ref);\n content += ` body: ${refName}Schema,\\n`;\n } else {\n content += ` body: ${convertToZodSchema(schema.body, false, schemas)},\\n`;\n }\n }\n\n // Convert query parameters\n if (Object.keys(schema.query).length > 0) {\n content += ` query: ${convertToZodSchema(schema.query, false, schemas)},\\n`;\n }\n\n content += `});\\n\\n`;\n }\n\n if (endpointNames.length > 0) {\n mutateEndpointNames.set(path, endpointNames);\n }\n }\n\n content += `export const fetchEndpoints = {\\n`;\n for (const [path, endpointNames] of fetchEndpointNames) {\n content += ` '${path}': [${endpointNames.join(\", \")}],\\n`;\n }\n content += `} as const;\\n\\n`;\n\n content += `export const mutateEndpoints = {\\n`;\n for (const [path, endpointNames] of mutateEndpointNames) {\n content += ` '${path}': [${endpointNames.join(\", \")}],\\n`;\n }\n content += `} as const;\\n\\n`;\n\n content += `export const api = createApi({\\n`;\n content += ` baseUrl: '${baseUrl}',\\n`;\n content += ` fetchEndpoints,\\n`;\n content += ` mutateEndpoints,\\n`;\n content += `});\\n`;\n\n await writeFile(`${outDir}/endpoints.ts`, content);\n}\n\nasync function main() {\n const program = new Command();\n\n program\n .name(\"import-openapi\")\n .description(\"Import OpenAPI/Swagger specification and generate API routes\")\n .argument(\"<file>\", \"OpenAPI/Swagger specification file (JSON or YAML)\")\n .option(\"-d, --outDir <directory>\", \"Output directory\", undefined);\n\n program.parse();\n\n const options = program.opts();\n const [file] = program.args;\n\n try {\n const content = await readFile(file, \"utf-8\");\n const doc =\n file.endsWith(\".yaml\") || file.endsWith(\".yml\")\n ? parseYaml(content)\n : JSON.parse(content);\n\n const openapi = await convertToOpenAPI3(doc);\n await generateRoutes(openapi, {\n outDir: options.outDir,\n });\n\n console.log(\"Successfully generated API routes!\");\n } catch (error) {\n console.error(\"Error:\", error);\n process.exit(1);\n }\n}\n\n// Only run main() if not in test mode\nif (process.env.NODE_ENV !== \"test\") {\n main();\n}\n"]}