Not a Package Manager

    tt-model-compiler
    TypeScript icon, indicating that this package has built-in type declarations

    0.1.5 • Public • Published

    tt-Model Compiler

    DOCS NEEDS UPGRADE. BREAKING CHANGES ADDED.

    This package is used to compile code for tt-Model.
    tt-Model is a fast and easy to use GraphQL and REST Schema extractor from typescript code. You don't need to learn new languages or anything else to use this API, you only need typescript that you already use.

    You can use this package with "Gulp" or standalone or with any other task runner or bundler.

    Use with GulpJS

    Just add compiler.gulp() to your Gulp pipeline to enable the Magic!

    Extract only schema from typescript files:

    const Gulp= require('gulp');
    const { Compiler } = require('tt-model-compiler');
    
    //* Create a compiler with path to your "tsconfig" file
    const compiler = new Compiler('tsconfig.json');
    
    //* Define your Gulp task and use it
    function compileCode() {
    	return Gulp.src('src/to/your/files/**/*.ts')
    		//* Add this line to your pipeline before compiling typescript
    		.pipe(compiler.gulp())
    		.pipe(dest('dist'));
    }

    This line will enable the magic of tt-model.

    Options

    Compiler

    const { Compiler } = require('tt-model-compiler');
    
    //* Create compiler using "tsconfig" file path
    const compiler = new Compiler('tsconfig.json');
    
    //* Or creating the compiler by giving directly the "compiler options"
    const compiler = new Compiler(options: ts.CompilerOptions);

    compiler.gulp()

    compiler.gulp(
    	/** If extract pretty code */
    	pretty?: boolean,
    	/**
    	 * This options enables you to transpile typescript
    	 * directly to Javascript without need for an other
    	 * pipeline step.
    	 * 
    	 * This will increase compiling performance and resolve
    	 * known issues with named typescript imports.
    	 * 
    	 * To enable transpilation to Javascript,
    	 * set this to '.js', '.mjs' or '.cjs'
    	 * 
    	 * "undefined" means keep it as Typescript ( no transpilation )
    	 */
    	targetExtension?: '.js' | '.mjs' | '.cjs' | undefined
    );

    Compile direct files or Content

    This is useful for:

    • Creating your own task runner pipeline logic.
    • Use with bundlers.
    • Any other use case thinks to full control.
    //* Load the compiler factory
    import { Compiler } from 'tt-model-compiler';
    
    //* Create a compiler using "tsconfig" file path or ts.CompilerOptions
    const compiler = new Compiler('tsconfig.json');
    
    // Call the compiler as follow
    Compiler.compile(
    	/**
    	 * List of source file paths
    	 * OR Map: string_file_path => string_file_content
    	 * 
    	 * You can use GLOB library to load files
    	 * for you using patterns
    	 */
    	files: string[] | Map<string, string>,
    	/**
    	 * Print pretty code
    	 */
    	pretty?: boolean,
    	/**
    	 * If transpile the content from TypeScript to JavaScript.
    	 * "undefined" means keep the code as TypeScript
    	 */
    	targetExtension?: '.js' | '.mjs' | '.cjs' | undefined
    ): CompileResult[]
    
    /** The result will be as follow : */
    interface CompileResult {
        path: string;
        content: string;
    }

    Authors

    License

    MIT License

    Install

    npm i tt-model-compiler

    DownloadsWeekly Downloads

    5

    Version

    0.1.5

    License

    MIT

    Unpacked Size

    644 kB

    Total Files

    120

    Last publish

    Collaborators

    • rafikalid2