This package has been deprecated

Author message:

Renamed to ts-ezinjector-compiler

ts-ioc-compiler

1.2.4 • Public • Published

ts-ioc-compiler

ts-ioc-compiler is used to compile interfaces as string in typescript compile time. Supports interface intellisense and avoids magic strings in your code.

Works together with ezinjector

https://github.com/jeppeskovsen/ezinjector

Installation

$ npm install ts-ioc-compiler --save-dev

Examples

container.register<IService>(Service);
Container.getInstance<IService>();
@Inject<IService>()
@StaticInject<IService>()

Becomes this at compile time:

container.register("IService", Service);
Container.getInstance("IService");
@Inject("IService")
@StaticInject("IService")

With Gulp

const tsIocCompiler = require("ts-ioc-compiler");

gulp.src("./scripts/*.ts")
    .pipe(tsIocCompiler.transform())
    .pipe(ts())
    .pipe(gulp.dest('./test/dist'));

Configs

Put inside tsIocCompiler..transform() or tsIocCompiler.setConfig()

{
    replacements: [{
        find: /(\.register)<(\w+?)>\s?\(/ig,
        replace: "$1(\"$2\", "
    }, {
        find: /(\@Inject|@StaticInject|Container\.getInstance)<(\w+?)>\s?\(/ig,
        replace: "$1(\"$2\""
    }]
}

Webpack loader

https://github.com/jeppeskovsen/ts-ioc-compiler-loader

$ npm install ts-ioc-compiler-loader --save-dev

Example:

module: {
    rules: [
        // All files with a '.ts' or '.tsx' extension will be handled by 'awesome-typescript-loader'.
        { 
            test: /\.tsx?$/, 
            loaders: ["awesome-typescript-loader", "ts-ioc-compiler-loader"]
        }
    ]
}

Readme

Keywords

none

Package Sidebar

Install

npm i ts-ioc-compiler

Weekly Downloads

0

Version

1.2.4

License

ISC

Last publish

Collaborators

  • jeppeskovsen