Security News
tea.xyz Spam Plagues npm and RubyGems Package Registries
Tea.xyz, a crypto project aimed at rewarding open source contributions, is once again facing backlash due to an influx of spam packages flooding public package registries.
astraea
Advanced tools
Readme
help developer output the typescript interfaces of api by swagger.json
or json
npm install astraea
input
, swagger.jsondir
, output directoryopt
,
blackList
, filter path
optional
, boolean, all params are optinaolsuffix
, file format, eg: ts
or d.ts
const astraea = require('astraea');
const swagger = require('./swagger.json');
astraea.swagger(
swagger,
'./example/swagger',
{
blackList: ['DELETE/pet/:petId']
}
)
input
, json descriptiondir
, output directoryopt
,
blackList
, filter path
optional
, boolean, all params are optinaolsuffix
, file format, eg: ts
or d.ts
const astraea = require('astraea');
astraea.json(
{
get: {
'/api/persion/detail': {
a: 1,
},
'/api/pet/detail': {
a: 1,
}
},
post: {
'/api/persion/create': () => [{
a: 1,
b: [
{
v: 1
}
]
}],
}
},
'./example/json',
{
blackList: [ 'GET/api/persion/detail'],
optional: true,
}
)
astraea.scan
based on astraea.json
, it will scan all .js
files of inputDir
.
inputDir
, .js diroutputDir
, output directoryopt
,
blackList
, filter path
optional
, boolean, all params are optinaolsuffix
, file format, eg: ts
or d.ts
const astraea = require('../index.js');
const path = require('path');
astraea.scan({
inputDir: path.resolve(__dirname, './scanData'),
outputDir: path.resolve(__dirname, '../example/scan'),
request: {
optional: true,
},
response: {},
});
this is a simple example, you need to rework if use in prod!
import {
IGetRoutes as ISwaggerGetRoutes,
IPostRoutes as ISwaggerPostRoutes,
IPutRoutes as ISwaggerPutRoutes,
IDeleteRoutes as ISwaggerDeleteRoutes,
} from './swagger/routes';
import {
IGetRoutes as IJsonGetRoutes,
IPostRoutes as IJsonPostRoutes,
IPutRoutes as IJsonPutRoutes,
IDeleteRoutes as IJsonDeleteRoutes,
} from './json/routes';
export interface IGetRoutes extends ISwaggerGetRoutes, IJsonGetRoutes {}
export interface IPostRoutes extends ISwaggerPostRoutes, IJsonPostRoutes {}
export interface IPutRoutes extends ISwaggerPutRoutes, IJsonPutRoutes {}
export interface IDeleteRoutes extends ISwaggerDeleteRoutes, IJsonDeleteRoutes {}
const get: <K extends keyof IGetRoutes>(url: K) => IGetRoutes[K];
const post: <K extends keyof IPostRoutes>(url: K) => IPostRoutes[K];
const dl: <K extends keyof IPutRoutes>(url: K) => IPutRoutes[K];
const put: <K extends keyof IDeleteRoutes>(url: K) => IDeleteRoutes[K];
get('/pet/:petId').category.id;
post('/api/persion/create');
dl('/pet');
put('/store/order/:orderId');
import { RootObject as GetPetFindByStatus } from './GET/pet/findByStatus';
import { RootObject as GetPetFindByTags } from './GET/pet/findByTags';
import { RootObject as GetPetPetId } from './GET/pet/:petId';
import { RootObject as GetStoreInventory } from './GET/store/inventory';
import { RootObject as GetStoreOrderOrderId } from './GET/store/order/:orderId';
import { RootObject as GetUserLogin } from './GET/user/login';
import { RootObject as GetUserLogout } from './GET/user/logout';
import { RootObject as GetUserUsername } from './GET/user/:username';
import { RootObject as PostPet } from './POST/pet';
import { RootObject as PostPetPetId } from './POST/pet/:petId';
import { RootObject as PostPetPetIdUploadImage } from './POST/pet/:petId/uploadImage';
import { RootObject as PostStoreOrder } from './POST/store/order';
import { RootObject as PostUser } from './POST/user';
import { RootObject as PostUserCreateWithArray } from './POST/user/createWithArray';
import { RootObject as PostUserCreateWithList } from './POST/user/createWithList';
import { RootObject as PutPet } from './PUT/pet';
import { RootObject as PutUserUsername } from './PUT/user/:username';
import { RootObject as DeletePetPetId } from './DELETE/pet/:petId';
import { RootObject as DeleteStoreOrderOrderId } from './DELETE/store/order/:orderId';
import { RootObject as DeleteUserUsername } from './DELETE/user/:username';
export interface IGetRoutes {
'/pet/findByStatus': GetPetFindByStatus;
'/pet/findByTags': GetPetFindByTags;
'/pet/:petId': GetPetPetId;
'/store/inventory': GetStoreInventory;
'/store/order/:orderId': GetStoreOrderOrderId;
'/user/login': GetUserLogin;
'/user/logout': GetUserLogout;
'/user/:username': GetUserUsername;
}
export interface IPostRoutes {
'/pet': PostPet;
'/pet/:petId': PostPetPetId;
'/pet/:petId/uploadImage': PostPetPetIdUploadImage;
'/store/order': PostStoreOrder;
'/user': PostUser;
'/user/createWithArray': PostUserCreateWithArray;
'/user/createWithList': PostUserCreateWithList;
}
export interface IPutRoutes {
'/pet': PutPet;
'/user/:username': PutUserUsername;
}
export interface IDeleteRoutes {
'/pet/:petId': DeletePetPetId;
'/store/order/:orderId': DeleteStoreOrderOrderId;
'/user/:username': DeleteUserUsername;
}
FAQs
help developer output the typescript interfaces of api by swagger or json
The npm package astraea receives a total of 19 weekly downloads. As such, astraea popularity was classified as not popular.
We found that astraea 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
Tea.xyz, a crypto project aimed at rewarding open source contributions, is once again facing backlash due to an influx of spam packages flooding public package registries.
Security News
As cyber threats become more autonomous, AI-powered defenses are crucial for businesses to stay ahead of attackers who can exploit software vulnerabilities at scale.
Security News
UnitedHealth Group disclosed that the ransomware attack on Change Healthcare compromised protected health information for millions in the U.S., with estimated costs to the company expected to reach $1 billion.