Go to file
2016-04-30 11:55:42 +02:00
assets fix cli call 2016-02-25 08:26:00 +01:00
compile fix cli call 2016-02-25 08:26:00 +01:00
dist now reading tsOptions from tsConfig and supporting declaration file handling 2016-04-30 11:55:42 +02:00
test/assets now reading tsOptions from tsConfig and supporting declaration file handling 2016-04-30 11:55:42 +02:00
ts now reading tsOptions from tsConfig and supporting declaration file handling 2016-04-30 11:55:42 +02:00
.gitignore now using gulp-typings 2016-03-12 10:21:16 +01:00
.npmignore add optional docs publishing 2016-02-25 08:39:38 +01:00
.travis.yml now completeley hiding git console output 2016-02-23 18:58:44 +01:00
LICENSE Initial commit 2016-01-13 19:21:20 +01:00
package.json now reading tsOptions from tsConfig and supporting declaration file handling 2016-04-30 11:55:42 +02:00
README.md now reading tsOptions from tsConfig and supporting declaration file handling 2016-04-30 11:55:42 +02:00

npmts

Write npm modules with TypeScript without hassle.

Status

Build Status Dependency Status bitHound Dependencies bitHound Code codecov.io

What is NPMTS?

NPMTS is your friend when it comes to write, test, publish and document NPM modules written in TypeScript.

There is a docker image available that includes npmts to make CI a breeze:
hosttoday/ht-docker-npmg on Dockerhub

Install

First install npmts as dev dependency:

npm install npmts --save-dev

Then use it in package.json's script section to trigger a build:

"scripts": {
    "test": "npmts"
}

Default behaviour

Execution order of tasks

  1. Check config in ./npmts.json
  2. Clean up from any previous builds (old js files)
  3. Install typings
  4. Transpile TypeScript with inline sourcemaps
  5. Create Declaration Files
  6. Create JsDoc Documentation
  7. Instrumentalize created JavaScript files with istanbul
  8. Run Tests
  9. Create Coverage report
  10. Upload Coverage reports to codecov.io (Tests must pass, codecov.io must be activated, by default only triggers on travis)
  11. Upload JsDoc Documentation to gh-pages branch on GitHub. (Tests must pass, requires GitHub Token)

npmts.json

the npmts.json is the main config file. You can use it to customize the behaviour of NPMTS.

{
  "mode":"default",
  "ts":{
    "./customdir/*.ts":"./"
  },
  "tsconfig":true,
  "typings":[
    "./ts/typings.json",
    "./subts1/typings.json",
    "./subts2/typings.json",
    "./customdir/typings.json"
  ],
  "codecov":true,
  "docs": {
    "publish":true
  },
  "cli":true
}
key description
mode "default" will do some defualt stuff, "custom" only does what you specify
codecov if true, coverage data will be uploaded to codecov when running on travis
docs {"publish":true} lets you control what happens with your module documentation

Typings

npmts looks for ./ts/typings.json by default and installs any defined typings to .ts/typings/.

Note: You can reference the typings files in any of your TypeScript code with a
/// <reference path="/some/path/main.d.ts">
or use a tsconfig.json file.

TypeScript

by default npmts looks for ./ts/*.ts and ./test/test.ts that will compile to ./dist/*.js and ./test/test.js

Use commonjs module system for wiring up files.

Declaration files

npmts also creates an ./dist/index.d.ts declaration file by default. You can reference it in your package.json like this.

"main": "dist/index.js",
"typings": ".dist/index.d.ts",

This is in line with the latest TypeScript best practices. You can then import plugins via the TypeScript import Syntax and tsc will pick up the declaration file automatically.

Instrumentalize Code

npmts instrumentalizes (using istanbul) the created JavaScript code to create a coverage report.

Tests

When Typings have been installed, TypeScript + Declaration files have been transpiled and the resulting JS has been instrumentalized, npmts looks for .test/test.ts which will be transpiled to test.js and run with mocha.

Any errors will be shown with reference to their originating source in TypeScript thanks to autogenerated source maps.

Custom behaviour

Custom behaviour can be achieved through the npmts.json config file at the root of your package. The file must be named npmts.json

{
  "mode":"custom",
  "ts":{
    "./customdir/custom.ts":"./customcompiled.js"
  },
  "typings":[
    "./customdir"
  ]
}
  • mode can be "default" or "custom"
  • ts You can list as many TypeScript files as you like. The key represents the source TypeScript file, the value the output file.
  • typings is an array of all direcories that have a typings.json present. Uses the new typings tool from npm.

We will add more options over time.

About the authors:

Project Phase

PayPal