
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
@codegena/oapi3ts
Advanced tools
This is an experimental library. Now supporting TypeScript data types and model. Also, generating experimental Angular2+ services.
Supporting of other languages and frameworks might be possible in the future.
It's a part of @codegena scope.
See in action: https://codegena-playground.stackblitz.io/ / https://stackblitz.com/edit/codegena-playground.
Install this package:
npm i @codegena/oapi3ts
You can use API of @codegena/oapi3ts to convert whole OAS3 schema object to data type descriptions. Example for TypeScript:
import { Convertor } from '@codegena/oapi3ts';
const convertor: Convertor = new Convertor();
const context = {};
/**
* Base models of specification:
* - Requests bodies models
* - Requests params sets models
* - Responses models
*
* Converting starts from entry points and extracts
* referred types and dependencies. It s why we need
* to get "entry points".
*/
const entryPoints = convertor.getOAPI3EntryPoints(context);
/**
* Rendering each type: every entry point and each of
* theirs related types.
*/
Convertor.renderRecursive(
entryPoints,
(descriptor: DataTypeDescriptor, text) => {
// Here your code: you get text and type descriptor.
// Example of using:
// https://github.com/koshevy/codegena/blob/master/libs/oapi3ts-cli/src/abstract-application.ts#L57
}
);
And also, you can convert just a JSON-schema into type descriptor and render it:
import { Convertor } from 'oapi3codegen';
// you need prettier to beautify result of rendering
import * as prettier from 'prettier';
// provides `_.each(...)` for our example
import * as _ from 'lodash';
const convertor: Convertor = new Convertor();
const anotherJsonSchemaObject = {
"title": "Person",
"description": "Information about person you have to register in your system.",
"type": "object",
"properties": {
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
},
"age": {
"description": "Age in years",
"type": "integer",
"minimum": 0
}
},
"required": ["firstName", "lastName"]
};
const convertResult = convertor.convert(
anotherJsonSchemaObject,
{},
'AnotherType'
);
_.each(convertResult, typeDescriptor => {
const typeCode = prettier.format(
typeDescriptor.render([]),
{parser: 'typescript'}
);
console.log(typeCode);
});
It will output:
/**
* ## Person
* Information about person you have to register in your system.
*/
export interface AnotherType {
firstName: string;
lastName: string;
/**
* Age in years
*/
age?: number;
}
FAQs
Codegeneration from OAS3 to TypeScript
We found that @codegena/oapi3ts 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
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.