@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();
A unified toolkit for building applications and smart contracts in the Interchain ecosystem ⚛️
Category | Tools | Description |
---|---|---|
Chain Information | Chain Registry, Utils, Client | Everything from token symbols, logos, and IBC denominations for all assets you want to support in your application. |
Wallet Connectors | Interchain Kitbeta, Cosmos Kit | Experience the convenience of connecting with a variety of web3 wallets through a single, streamlined interface. |
Signing Clients | InterchainJSbeta, CosmJS | A single, universal signing interface for any network |
SDK Clients | Telescope | Your Frontend Companion for Building with TypeScript with Cosmos SDK Modules. |
Starter Kits | Create Interchain Appbeta, Create Cosmos App | Set up a modern Interchain app by running one command. |
UI Kits | Interchain UI | The Interchain Design System, empowering developers with a flexible, easy-to-use UI kit. |
Testing Frameworks | Starship | Unified Testing and Development for the Interchain. |
TypeScript Smart Contracts | Create Hyperweb App | Build and deploy full-stack blockchain applications with TypeScript |
CosmWasm Contracts | CosmWasm TS Codegen | Convert your CosmWasm smart contracts into dev-friendly TypeScript classes. |
🛠 Built by Hyperweb (formerly Cosmology) — if you like our tools, please checkout and contribute to our github ⚛️
AS DESCRIBED IN THE LICENSES, THE SOFTWARE IS PROVIDED “AS IS”, AT YOUR OWN RISK, AND WITHOUT WARRANTIES OF ANY KIND.
No developer or entity involved in creating this software will be liable for any claims or damages whatsoever associated with your use, inability to use, or your interaction with other users of the code, including any direct, indirect, incidental, special, exemplary, punitive or consequential damages, or loss of profits, cryptocurrencies, tokens, or anything else of value.