Security News
require(esm) Backported to Node.js 20, Paving the Way for ESM-Only Packages
require(esm) backported to Node.js 20, easing the transition to ESM-only packages and reducing complexity for developers as Node 18 nears end-of-life.
swagger-jscode
Advanced tools
JS Code generation using Swagger 2.x API's
npm install --save-dev swagger-jscode
Codes: https://github.com/Derek-Hu/swagger-jscode/tree/master/example
example
├── index.js
└── swagger-api.json
// content of file index.js
const swagger2JsCode = require('swagger-jscode');
const swaggerDefinitions = require('./swagger-api.json');
swagger2JsCode({
swagger: swaggerDefinitions,
// Provide your own HTTP Client
httpBase: '../utils/fetch',
// Folder which JS Code Generated into
targetFolder: 'src/api',
// Folder which Data Strucuture Code Generated into
difinitionFolder: 'src/api/types'
});
Run codes below will generate codes in folder api
.
example
├── index.js
├── swagger-api.json
└── src
└── api
├── UserController.js
└── types
└── UserEntity.js
// content of file UserController.js
/**
* @typedef { import("./types/UserEntity.js") }
*/
import http from '../utils/fetch';
/**
* Get All Users
* @param {Object} [query] params in url search
* @param {string} [query.name] Search User by name
* @param {Object} headers params in header
* @param {string} headers.authorization JWT Token
* @param {Object} [config] custom attributes
*/
export const getUserList = function (query, headers, config = {}) {
return http.get(`/user`, {
params: query,
headers,
...config,
});
};
/**
* Create or Update User
* @param {Object} data params in http body or form data
* @param {UserEntity} data.user User Detail
* @param {Object} [config] custom attributes
*/
export const createUpdateUser = function (data, config = {}) {
return http.post(`/user`, {
data,
...config,
});
};
/**
* Get User Detail
* @param {Object} params params in url path
* @param {string} params.userId User Id
* @param {Object} [config] custom attributes
*/
export const getUserById = function (params, config = {}) {
return http.get(`/user/${params.userId}`, {
...config,
});
};
// content of file UserEntity.js
/**
* @typedef {Object} UserEntity
* @property {string=} name - User Name
* @property {int=} age - User Age
* @property {Array.<string>=} cards
*/
swagger
swagger api definitions in JSON formaturl
using remote swagger api definitions, conflict with swagger
optiontargetFolder
target folder when generate js code. Default value: src/api
difinitionFolder
target folder when generate swagger definitions(data structure),Default value: src/api/types
httpBase
Promise based HTTP client. Default Value: 'axios'
. The client should support all HTTP methods and has the same signature belowhttpBase.[get|put|post|delete...](url, {
params,
data,
headers,
...customerConfig
})
getAPIFileName
function(name:String) => String
transform generated file name to more friendlygetRequestFunctionName
function(method:Method) => String
transform methods in generated file name to more friendly.Method
has the full method definitions, View Swagger Spec for detail: https://swagger.io/docs/specification/basic-structure/Provided command for swagger js code generate: sjc
// package.json
{
"scripts": {
"generate-by-data":"sjc --swagger swagger-api.json",
"generate-by-url": "sjc --url http://mysite.com/v2/api-docs"
},
"devDependencies": {
"swagger-jscode": "",
}
}
FAQs
A Swagger codegen for JavaScript
The npm package swagger-jscode receives a total of 1 weekly downloads. As such, swagger-jscode popularity was classified as not popular.
We found that swagger-jscode demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
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.
Security News
require(esm) backported to Node.js 20, easing the transition to ESM-only packages and reducing complexity for developers as Node 18 nears end-of-life.
Security News
PyPI now supports iOS and Android wheels, making it easier for Python developers to distribute mobile packages.
Security News
Create React App is officially deprecated due to React 19 issues and lack of maintenance—developers should switch to Vite or other modern alternatives.