1.1.1 • Published 2 years ago
joi2types v1.1.1
joi2types
a converter transforms @hapi/joi schema into TypeScript types.
Quick start
Install
$ npm i joi2types @hapi/joi -S
use in your project
const Joi = require("@hapi/joi");
const joi2Types = require("joi2types").default;
// example for react-router-config
const schema = Joi.array().items(
Joi.object({
path: Joi.string().description("Any valid URL path"),
component: Joi.string().description(
"A React component to render only when the location matches."
),
redirect: Joi.string().description("navigate to a new location"),
exact: Joi.boolean().description(
"When true, the active class/style will only be applied if the location is matched exactly."
)
}).unknown()
);
(async () => {
const types = await joi2Types(schema, {
bannerComment: "/** comment for test */",
interfaceName: "IRoute"
});
console.log('types', types)
})();
It will convert into types as follows:
/** comment for test */
export type IRoute = {
/**
* Any valid URL path
*/
path?: string;
/**
* A React component to render only when the location matches.
*/
component?: string;
/**
* navigate to a new location
*/
redirect?: string;
/**
* When true, the active class/style will only be applied if the location is matched exactly.
*/
exact?: boolean;
[k: string]: any;
}[];
TODO
- support custom type definitions using
tsType
1.1.1
2 years ago
1.1.0
4 years ago
1.0.8
4 years ago
1.0.7
5 years ago
1.0.6
5 years ago
1.0.5
5 years ago
1.0.4
5 years ago
1.0.2
5 years ago
1.0.3
5 years ago
1.0.1
5 years ago
1.0.0
5 years ago
1.0.0-beta.10
5 years ago
1.0.0-beta.7
5 years ago
1.0.0-beta.8
5 years ago
1.0.0-beta.9
5 years ago
1.0.0-beta.6
5 years ago
1.0.0-beta.5
5 years ago
1.0.0-beta.4
5 years ago
1.0.0-beta.3
5 years ago
1.0.0-beta.2
5 years ago
1.0.0-beta.1
5 years ago