tsdgen
v0.2.0
Published
A .d.ts generator for Node.js from other .d.ts files. Creates a module definition for all the classes exported via @inmodule JsDoc annotation.
Downloads
5
Readme
tsdgen
Parses multiple .d.ts
definition files and outputs node ready
definitions.
Usage
Use A JsDoc annotation that specifies in what module the interface or class is exported.
/**
* Class that does this and that.
* @inmodule "best-module-of-all-times"
*/
export class BestClass {
// ...
}
Compile this file (or all the files that export classes) with -d
in tsc,
then post process the .d.ts files in order to get the final module .d.ts.
For example in terminal-console the
TerminalConsole class has the @inmodule
annotation:
/**
* A class that allows relogging the previously written message by using the
* ANSI up code.
* @inmodule "terminal-console"
*/
export class TerminalConsole {
When processing all the generated .d.ts
files from the lib/ file, the terminal-console.d.ts will contain only this exported class, in the right module. Multiple modules could be specified for the same class, using multiple @inmodule
annotations.
In order to run this automatically, including the watching of *.ts
files, fast-live-reload ties things together:
fast-live-reload -o\
-ep "bash -c 'tsc -w src/main/core/*.ts --outDir lib/ -d --module commonjs'"\
lib/ -e "bash -c 'tsdgen -o terminal-console.d.ts lib/*.d.ts'"
As available in the live-reload.sh script.
The tsc compiler will compile the sources into the lib folder, and after the tsdgen will generate the module .d.ts
file.
Grunt
If you want to use tsdgen with grunt, you can just npm install it with --save-dev
and then edit your Gruntfile.js configuration:
module.exports = function(grunt) {
// configuration for the plugins.
grunt.initConfig({
// ...
tsdgen : {
"dist" : {
files : [
{
src: [
"lib/core-promise.d.ts"
],
dest: "./core-promise.d.ts"
}
]
}
}
});
// load NPM tasks:
grunt.loadNpmTasks("tsdgen");
// register our tasks:
grunt.registerTask("default", ["tsdgen"]);
};
Multiple .d.ts
files can be passed for input, in order to output a single
module definitions file.
ChangeLog
v0.2.0 2015-07-21 Added a grunt task to generate definitions. v0.1.1 2015-07-10 Bugfix Parse local definitions. Parse only files sent via nomnom.