@hyperweb/ts-json-schema
is a wrapper around ts-json-schema-generator, designed to simplify the process of generating JSON schemas from TypeScript files in Hyperweb projects.
- Simple API for generating JSON schemas from TypeScript
- Customizable schema generation options
- Built-in support for common Hyperweb project configurations
npm install @hyperweb/ts-json-schema
Here's a basic example of how to use Hyperweb TS JSON Schema:
import { generateSchema } from '@hyperweb/ts-json-schema';
// Generate schema for all types in a file
await generateSchema({
sourcePath: 'path/to/source/file.ts',
tsconfigPath: 'path/to/tsconfig.json',
outputPath: 'path/to/output/schema.json'
});
// Generate schema for a specific type
await generateSchema({
sourcePath: 'path/to/source/file.ts',
tsconfigPath: 'path/to/tsconfig.json',
outputPath: 'path/to/output/schema.json',
type: 'User'
});
Generates a JSON schema from TypeScript files using the provided options.
options
: An object containing the following properties:sourcePath
(required): Path to the source TypeScript file.tsconfigPath
(required): Path to the tsconfig.json file.outputPath
(required): Path where the generated schema will be saved.type
(optional): Specific type to generate schema for. If not provided, generates schema for all types.
Returns a Promise that resolves when the schema has been generated and saved.
Hyperweb TS JSON Schema uses the following configuration by default:
{
path: sourcePath,
tsconfig: tsconfigPath,
type: '*', // Or the specified type if provided
}
These options are passed to the underlying ts-json-schema-generator
. You can customize these by modifying the generateSchema
function or by creating your own wrapper around it.
Here's an example of how you might use Hyperweb TS JSON Schema in a project:
import { generateSchema } from '@hyperweb/ts-json-schema';
import { join } from 'path';
const sourcePath = join(__dirname, 'src/types.ts');
const tsconfigPath = join(__dirname, 'tsconfig.json');
const outputPath = join(__dirname, 'schema.json');
async function generateProjectSchema() {
try {
await generateSchema({
sourcePath,
tsconfigPath,
outputPath
});
console.log('Schema generated successfully!');
} catch (error) {
console.error('Error generating schema:', error);
}
}
generateProjectSchema();
Hyperweb TS JSON Schema is MIT licensed.