{"_id":"@9wick/openapi2aspida","name":"@9wick/openapi2aspida","dist-tags":{"latest":"0.23.2"},"versions":{"0.23.2":{"name":"@9wick/openapi2aspida","version":"0.23.2","description":"Convert OpenAPI 3.0 or Swagger 2.0 definitions into aspida","author":{"name":"Solufa","email":"solufa2020@gmail.com"},"license":"MIT","main":"dist/index.js","bin":{"openapi2aspida":"bin/index.js"},"scripts":{"dev":"npm run build && node samples/rimraf.js && node bin/index.js","build":"npm run rimraf && tsc","rimraf":"node -e \"require('fs').existsSync('dist') && require('fs').rmdirSync('dist', { recursive: true })\"","lint":"eslint --ext .ts . && prettier --check \"./**/*.ts\"","lint:fix":"eslint --ext .ts . --fix && prettier --write \"./**/*.ts\"","test":"jest","typecheck":"tsc --noEmit","prepare":"mkdir -p dist && npm run build"},"homepage":"https://github.com/aspida/openapi2aspida#readme","repository":{"type":"git","url":"git+https://github.com/aspida/openapi2aspida.git"},"bugs":{"url":"https://github.com/aspida/openapi2aspida/issues"},"keywords":["typescript","aspida","openapi","swagger"],"eslintConfig":{"env":{"es6":true,"node":true,"browser":true},"extends":["standard","plugin:@typescript-eslint/recommended","plugin:jest/recommended","prettier"],"parserOptions":{"ecmaVersion":2018,"sourceType":"module"},"root":true,"rules":{"@typescript-eslint/consistent-type-imports":"error","@typescript-eslint/no-non-null-assertion":"off","@typescript-eslint/explicit-function-return-type":"off","@typescript-eslint/ban-ts-comment":"off","@typescript-eslint/explicit-module-boundary-types":"off","@typescript-eslint/no-var-requires":"off","@typescript-eslint/ban-types":"off","@typescript-eslint/camelcase":"off","@typescript-eslint/no-explicit-any":"off"}},"prettier":{"printWidth":100,"arrowParens":"avoid","singleQuote":true,"overrides":[{"files":["*.md","*.yml"],"options":{"singleQuote":false}}]},"dependencies":{"@apidevtools/swagger-parser":"^10.1.0","aspida":"^1.13.3","js-yaml":"^4.1.0","openapi-types":"^12.1.3","swagger2openapi":"^7.0.8"},"devDependencies":{"@types/jest":"^29.5.3","@types/js-yaml":"^4.0.5","@types/minimist":"^1.2.2","@typescript-eslint/eslint-plugin":"^6.2.1","@typescript-eslint/parser":"^6.2.1","eslint":"^8.46.0","eslint-config-prettier":"^8.10.0","eslint-config-standard":"^17.1.0","eslint-plugin-import":"^2.28.0","eslint-plugin-jest":"^27.2.3","eslint-plugin-n":"^16.0.1","eslint-plugin-node":"^11.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-standard":"^5.0.0","jest":"^29.6.2","minimist":"^1.2.8","prettier":"^2.8.8","prettier-plugin-organize-imports":"^3.2.3","ts-jest":"^29.1.1","ts-node":"^10.9.1","typescript":"^5.1.6"},"_id":"@9wick/openapi2aspida@0.23.2","gitHead":"8715685701aaa9fd63b0f2150acc884dcd66f612","types":"./dist/index.d.ts","_nodeVersion":"20.14.0","_npmVersion":"10.7.0","dist":{"integrity":"sha512-4ozolxzC4iCr74pUBVh+/0yoHDe8JpLdIBqaT5v2qIXX2l+1A729ebI8ZXhT0DvAOcP1NrxbP+VapRzjRwUnMg==","shasum":"522d8b2b12e1b7dd019e0f4c1aec630dc8ebc33e","tarball":"https://registry.npmjs.org/@9wick/openapi2aspida/-/openapi2aspida-0.23.2.tgz","fileCount":68,"unpackedSize":120522,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBwT0pWMFuaREkRglJPWP+IEN/8FwXL6ngj/6MCQXNXvAiEA/qFbi4mXWDLIKESqbiVbaqHeW33I1yHkuGA88XYRxNc="}]},"_npmUser":{"name":"kido","email":"kido@9wick.com"},"directories":{},"maintainers":[{"name":"kido","email":"kido@9wick.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/openapi2aspida_0.23.2_1721405950008_0.9379227083078334"},"_hasShrinkwrap":false}},"time":{"created":"2024-07-19T16:19:09.857Z","0.23.2":"2024-07-19T16:19:10.358Z","modified":"2024-07-19T16:19:10.679Z"},"maintainers":[{"name":"kido","email":"kido@9wick.com"}],"description":"Convert OpenAPI 3.0 or Swagger 2.0 definitions into aspida","homepage":"https://github.com/aspida/openapi2aspida#readme","keywords":["typescript","aspida","openapi","swagger"],"repository":{"type":"git","url":"git+https://github.com/aspida/openapi2aspida.git"},"author":{"name":"Solufa","email":"solufa2020@gmail.com"},"bugs":{"url":"https://github.com/aspida/openapi2aspida/issues"},"license":"MIT","readme":"# OpenAPI / Swagger to aspida\n\n<br />\n<img src=\"https://aspida.github.io/aspida/logos/png/logo.png\" alt=\"aspida\" title=\"aspida\" />\n<div align=\"center\">\n  <a href=\"https://www.npmjs.com/package/openapi2aspida\">\n    <img src=\"https://img.shields.io/npm/v/openapi2aspida\" alt=\"npm version\" />\n  </a>\n  <a href=\"https://www.npmjs.com/package/openapi2aspida\">\n    <img src=\"https://img.shields.io/npm/dm/openapi2aspida\" alt=\"npm download\" />\n  </a>\n</div>\n<br />\n<p align=\"center\">Convert OpenAPI 3.0 and Swagger 2.0 definitions into <a href=\"https://github.com/aspida/aspida/tree/master/packages/aspida\">aspida</a>.</p>\n<br />\n<br />\n\n## Breaking change :warning:\n\n### 2022/03/07\n\nSince openapi2aspida >= `0.18.0` , decision whether to be required follows the OpenAPI spec correctly. Dropping the support for original implementation, that was defaulting to required.\n\n### 2021/03/15\n\nSince openapi2aspida >= `0.16.0` , requires TypeSciprt 3.8 or higher for Type-Only Imports.\n\n### 2020/11/26\n\nSince openapi2aspida >= `0.14.0` , request headers are forced to be optional.\n\n### 2020/11/14\n\nSince openapi2aspida >= `0.13.0` , optional for aspida only if the 'required' property of OpenAPI is set to `false`.\n\n## Getting Started\n\nCompatible with yaml/json of OpenAPI3.0/Swagger2.0\n\n```sh\n$ mkdir petstore-api\n$ cd petstore-api\n$ npx openapi2aspida -i https://petstore.swagger.io/v2/swagger.json # or ../local-swagger.yaml\n# api/$api.ts was built successfully.\n\n$ npm init -y\n$ npm install @aspida/axios axios typescript ts-node @types/node\n```\n\n`index.ts`\n\n```ts\nimport axiosClient from \"@aspida/axios\"\nimport api from \"./api/$api\"\nimport type { Pet } from \"./api/@types\"\n;(async () => {\n  const client = api(axiosClient())\n  const petId = 100\n  const body: Pet = {\n    id: petId,\n    name: \"hoge\",\n    photoUrls: [],\n    status: \"available\"\n  }\n\n  await client.pet.$post({ body })\n  const pet = await client.pet._petId(petId).$get()\n  console.log(pet)\n})()\n```\n\n`package.json`\n\n```json\n{\n  \"scripts\": {\n    \"start\": \"ts-node index.ts\"\n  }\n}\n```\n\n```sh\n$ npm start\n# { id: 100, name: 'hoge', photoUrls: [], tags: [], status: 'available' }\n```\n\n## Build from config file\n\nCreate config file in project root\n\n`aspida.config.js`\n\n```js\nmodule.exports = {\n  input: \"api\", // \"input\" of aspida is \"output\" for openapi2aspida\n  outputEachDir: true, // Generate $api.ts in each endpoint directory\n  openapi: { inputFile: \"https://petstore.swagger.io/v2/swagger.json\" }\n}\n```\n\n```sh\n$ npx openapi2aspida\n```\n\n## Cli options\n\n### `-i`, `--input`\n\npath to an OpenAPI spec file for input\n\n### `-o`, `--outputdir`\n\ncan change aspida output directory\n\n### `-c`, `--config`\n\npath to an aspida config file\n\n### `--version`\n\ndisplays version of openapi2aspida\n\n### example\n\n```bash\nnpx openapi2aspida -i=openApi/sample.yaml -o=lib/api/sample\n```\n\n## License\n\nopenapi2aspida is licensed under a [MIT License](https://github.com/aspida/openapi2aspida/blob/master/LICENSE).\n","readmeFilename":"README.md"}