1.1.1 • Published 1 year 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
1 year ago
1.1.0
3 years ago
1.0.8
3 years ago
1.0.7
4 years ago
1.0.6
4 years ago
1.0.5
4 years ago
1.0.4
4 years ago
1.0.2
4 years ago
1.0.3
4 years ago
1.0.1
4 years ago
1.0.0
4 years ago
1.0.0-beta.10
4 years ago
1.0.0-beta.7
4 years ago
1.0.0-beta.8
4 years ago
1.0.0-beta.9
4 years ago
1.0.0-beta.6
4 years ago
1.0.0-beta.5
4 years ago
1.0.0-beta.4
4 years ago
1.0.0-beta.3
4 years ago
1.0.0-beta.2
4 years ago
1.0.0-beta.1
4 years ago