JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 183
  • Score
    100M100P100Q91119F
  • License MIT

OpenApi codegen for generating types an mocks from swagger json file

Package Exports

  • openapi-codegen-typescript

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (openapi-codegen-typescript) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

OpenApi-codegen-typescript

Installation

  • yarn add -D openapi-codegen-typescript
  • npm install openapi-codegen-typescript --save-dev

Description

What is this library for?

  • For fetching json file (mostly for "Swagger json")

Example:

const { fetchSwaggerJsonFile } = require('openapi-codegen-typescript');  

async function doSomething() {
    const json = await fetchSwaggerJsonFile('https://custom/swagger.json');
    console.log("Json Result", json)
}
  • For converting swagger.json file to typescript types

Example:

  const { fetchSwaggerJsonFile, convertToTypes } = require('openapi-codegen-typescript');  
  
  async function doSomething() {
      const json = await fetchSwaggerJsonFile('https://custom/swagger.json');
      convertToTypes({ json, fileName: 'dtoAPI', folderPath: 'src/types/generated', swaggerVersion: 3 });
  }

This function ('doSomething()') fetches json file from urls, then converts json to typescript "types" and writes "types" to file ('src/types/generated/dtoAPI') If "swaggerVersion" will not be provided - it will be set to "3" by default.

  • For generating mock files that are using converted types

Example:

    const { fetchSwaggerJsonFile, convertToTypes } = require('openapi-codegen-typescript');  
    
    async function doSomething() {
        const json = await fetchSwaggerJsonFile('https://custom/swagger.json');
        convertToMocks({
                json,
                fileName: 'dtoAPI',
                folderPath: 'src/mocks/generated',
                typesPath: '../../types/generated/dtoAPI',
                swaggerVersion: 3,
            });
    }

This function ('doSomething()') fetches json file from urls, then converts json to "mocks" and writes "mocks" to file ('src/mocks/generated/dtoAPI') with imports from typescript types ('src/types/generated/dtoAPI') If "swaggerVersion" will not be provided - it will be set to "3" by default.

AllInOne Example:

const { fetchSwaggerJsonFile, convertToTypes, convertToMocks } = require('openapi-codegen-typescript');

const petShopLink = 'https://petstore.swagger.io/v2/swagger.json';

async function main() {
    const json = await fetchSwaggerJsonFile(petShopLink);
    convertToTypes({ json, fileName: 'typesAPI', folderPath: 'src/types/generated', swaggerVersion: 3 });
    convertToMocks({
        json,
        fileName: 'mocksAPI',
        folderPath: 'src/mocks/generated',
        typesPath: '../../types/generated/typesAPI',
        swaggerVersion: 3,
    });
}

main();

Methods:

fetchSwaggerJsonFile(url)

url: string - url to swagger json file

Returns a swagger json object;

convertToTypes({ json, fileName, folderPath, swaggerVersion })

json: object - swagger json data; fileName: string - name of the file, where typescript types data will be saved; folderPath: string - folder path the fileName, where typescript types data will be saved; swaggerVersion: number - version of the swagger json file (specification). 3 by default;

Returns void;

convertToMocks({ json, fileName, folderPath, typesPath, swaggerVersion })

json: object - swagger json data; fileName: string - name of the file, where mocks data will be saved; folderPath: string - folder path the fileName, where mocks data will be saved; typesPath: string - folder path to types, where typescript types data are saved. Path to types will be inserted to the type imports in generated mocks (generated -> import {...} from typesPath;); swaggerVersion: number - version of the swagger json file (specification);

Returns void;