New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details
Socket
Book a DemoSign in
Socket

openapi-to-ts2

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

openapi-to-ts2

A tool to generate typings and service file based on openapi

latest
Source
npmnpm
Version
1.0.0
Version published
Maintainers
1
Created
Source

openapi-to-ts2

English | 简体中文

openapi-to-ts2 is a tool to generate typings and service file based on openapi.

If you like it, please give me a star. Thanks a lot!

Features

  • Compatible with bath OAS2 and OAS3
  • Support major HTTP Client(axios and umi-request so far)
  • Support generating js or ts file
  • Support type system when generate ts file
  • Plugin system to add global-level functionality

Install

npm install openapi-to-ts2

Example

note: CommonJS usage

In order to gain the TypeScript typings (for intellisense / autocomplete) while using CommonJS imports with require() use the following approach:

const OpenApiTool = require('openapi-to-ts2').default;

PS: Typing .default is merely used to gain the TypeScript typings. Please remove .default when you launch the project, otherwise it will throw an error.

Usage

const OpenApiTool = require('openapi-to-ts2');
const { resolve } = require('path');

const url = 'https://gw.alipayobjects.com/os/antfincdn/M%24jrzTTYJN/oneapi.json';
const outputDir = resolve(__dirname, 'service');

const openApiTool = new OpenApiTool({url});
openApiTool.generateService({
  template: 'axios',
  importText: `const axios = require('axios');`,
  typescript: true,
  outputDir,
});

API

new OpenApiTool(options: Options)

Create a new OpenApiTool instance.

Options:

PropertyDescriptionTypeDefaultrequired
urlThe url of swagger documentstring-either url or data
dataThe json of swagger documentstring-either url or data

generateService(options: ServiceGeneratorOptions): void

Generate service files, the name of file will be the tag's name.

ServiceGeneratorOptions:

PropertyDescriptionTypeDefaultrequired
outputDirOutput directorystring-true
templateHTTP client template which you want to generatestring'umi-request'false
importTextImport statementsstringdefault statementsfalse
typescriptGenerate ts file and typingsbooleanfalsefalse
formatFormat content of OpenApi(openapi: OpenApi) => OpenApi-false

getOpenApi(): Promise<OpenApi>

Get OpenApi that transformed from OAS2/OAS3.

Plugin

openapi-to-ts2 have a flexible plugin system which can add global-level functionality.

Using Plugin

Use plugins by calling the OpenApiTool.use() global method. This has to be done before you start your app by calling new OpenApiTool():

// calls `MyPlugin.install(OpenApiTool)`
OpenApiTool.use(MyPlugin)

new OpenApiTool({
  //... options
})

You can optionally pass in some options:

OpenApiTool.use(MyPlugin, { someOption: true })

Writing a plugin

A plugin should be a method. The method will be called with the OpenApiTool constructor as the first argument, along with possible options:

const logPlugin = (OpenApiTool, option) => {
  OpenApiTool.prototype.log = async function() {
    const openapi = await this.getOpenApi();
    console.log(`the length of apis: ${openapi.apis.length}`);
    console.log('option', option);
  }
}

then you can use it like this:

const openApiTool = new OpenApiTool({
  //... options
});
openApiTool.log();

License

MIT

Keywords

node

FAQs

Package last updated on 16 Apr 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts