Generate JSON schema from your TypeScript sources with extensive customization options
—
Create and manage TypeScript programs with custom compiler options, file resolution, and configuration loading for schema generation.
Creates TypeScript program instances with proper configuration for schema generation.
/**
* Create a TypeScript program from configuration
* @param config - Configuration object with path and tsconfig options
* @returns Configured TypeScript Program instance
*/
function createProgram(config: CompletedConfig): ts.Program;Usage Examples:
import { createProgram } from "ts-json-schema-generator";
// Basic program creation
const config = {
path: "src/**/*.ts",
tsconfig: "./tsconfig.json"
};
const program = createProgram(config);
// Program with custom options
const customConfig = {
path: "src/api.ts",
skipTypeCheck: true
};
const fastProgram = createProgram(customConfig);Internal utilities for loading and parsing TypeScript configuration files (not exposed in public API).
Default Compiler Options:
When no tsconfig is specified, the following default options are used:
const defaultOptions: ts.CompilerOptions = {
noEmit: true,
emitDecoratorMetadata: true,
experimentalDecorators: true,
target: ts.ScriptTarget.ES5,
module: ts.ModuleKind.CommonJS,
strictNullChecks: false
};Handles glob patterns and file discovery for TypeScript source files.
Glob Pattern Support:
// Single file
const singleFileConfig = { path: "src/types.ts" };
// Multiple files with glob
const globConfig = { path: "src/**/*.ts" };
// Exclude patterns (use standard glob syntax)
const excludeConfig = { path: "src/**/*.ts" };
// Note: Exclusions handled by glob library, not by this packageControl TypeScript type checking during program creation for performance optimization.
interface Config {
/** Skip type checks to improve performance */
skipTypeCheck?: boolean;
}Type Checking Behavior:
// Default behavior - includes type checking
const config = {
path: "src/api.ts",
skipTypeCheck: false // This is the default
};
// Skip type checking for faster generation
const fastConfig = {
path: "src/api.ts",
skipTypeCheck: true
};When skipTypeCheck is false (default), the program will:
BuildError if type errors are foundWhen skipTypeCheck is true:
Program creation can throw errors for various configuration issues. The BuildError class is available from the main export.
Common Error Scenarios:
import { createProgram, BuildError } from "ts-json-schema-generator";
try {
const program = createProgram({
path: "nonexistent.ts",
tsconfig: "./tsconfig.json"
});
} catch (error) {
if (error instanceof BuildError) {
console.error("Build failed:", error.format());
// Handle TypeScript compilation errors
}
}Error Types:
Program creation integrates with the main configuration system.
interface Config {
/** Source file path or glob pattern */
path?: string;
/** Custom tsconfig.json path */
tsconfig?: string;
/** Skip type checks to improve performance */
skipTypeCheck?: boolean;
}Path Resolution Priority:
config.path glob pattern (if provided)tsconfig.json fileNames (if no path provided)TSConfig Resolution:
config.tsconfig path if providedInstall with Tessl CLI
npx tessl i tessl/npm-ts-json-schema-generator