Compare commits
28 Commits
Author | SHA1 | Date | |
---|---|---|---|
7bc986251f | |||
cdde7da5f9 | |||
82c00fe444 | |||
93682e9ec4 | |||
d339da7e11 | |||
8b51992959 | |||
cb3bfaf438 | |||
91b7317b80 | |||
400b193210 | |||
7f6a6434d2 | |||
a1414877a1 | |||
a4927f9c17 | |||
264c3d95fd | |||
fd06aa04f4 | |||
a576872471 | |||
333b59c37e | |||
054b7dca2b | |||
33209773c8 | |||
625cadea5e | |||
de05001f3e | |||
5aa10261e5 | |||
070574c8d7 | |||
a304f34f31 | |||
26b5db3782 | |||
dadad3fa96 | |||
2ab35db571 | |||
4a17953298 | |||
8c633b3c30 |
2
.gitignore
vendored
2
.gitignore
vendored
@ -1,4 +1,4 @@
|
||||
node_modules/
|
||||
test/
|
||||
docs/
|
||||
pages/
|
||||
.DS_Store
|
@ -1,10 +1,10 @@
|
||||
image: hosttoday/ht-docker-node:npmts
|
||||
image: hosttoday/ht-docker-node:npmci
|
||||
|
||||
stages:
|
||||
- test
|
||||
- release
|
||||
- trigger
|
||||
- page
|
||||
- pages
|
||||
|
||||
testLEGACY:
|
||||
stage: test
|
||||
@ -45,3 +45,15 @@ trigger:
|
||||
- tags
|
||||
tags:
|
||||
- docker
|
||||
|
||||
pages:
|
||||
image: hosttoday/ht-docker-node:npmpage
|
||||
stage: pages
|
||||
script:
|
||||
- npmci command npmpage --host gitlab
|
||||
only:
|
||||
- tags
|
||||
artifacts:
|
||||
expire_in: 1 week
|
||||
paths:
|
||||
- public
|
||||
|
15
.travis.yml
15
.travis.yml
@ -1,15 +0,0 @@
|
||||
language: node_js
|
||||
node_js:
|
||||
- 4.3.1
|
||||
- stable
|
||||
deploy:
|
||||
provider: npm
|
||||
email: npm@lossless.digital
|
||||
api_key:
|
||||
secure: k075QdAcmEdmAoVaP5vclLnZmhbZB39v85VIUMWAKXbIAU+liHrYZRlIEYfAaIUrf6sha+zAo/U/vjAN7c5ArB7J/HjCLJ3lsi2fWtaSRlYQrYX9/EhU0S+YZjRE8Jrn4hGTcce6I2mANBnEzvzlXrlKaqVvSqOqTO9nJ5aDBCGa5XT3EwlHKkRlAlL3ZOLrRg38R343E8ifZBsbn9G0e+RgDt0sic3WD8NME9lpsQ/99UZKH00duHbhF9nme5Sjdh86y01hvsaBf+CLR4gfS2IntnrCSrZbETFrsOBUyMnJZDQ3qlrjcEaiTkpJ4iSIqr+ftwGMMD6S1MxCTPqkp64UIeMz2Tg41HqoaeIg7z8cF0APv6M9ZAdWhsU43GqsMe70dK900JZpQAkQxMf/6NpPpGfZug6TwqLYSIRzvjvNrhYfuyoGfXdAxrM3SJMkIq6rwE+T/y36kZaC3CrQRyNZypNz0vW1M9HLjJUi2vO0U/CDn8tvi1p6ChrDXDfV3H2UIAMHFlAF+GrT7dMWwD+p+d8mc9gpAFEF9zMqAIJamPhwboJxoHjKQrqrq5czNm75ETL77AzfnU6CfQlG5dTIFnGId8y0ZxXvtpBruDoyC1+ZF23MYZmb+ipxQZM2oLCjNLeL3aEePc/JlSm6Gn8w3sIkZTG261F0XZxdApw=
|
||||
on:
|
||||
tags: true
|
||||
repo: pushrocks/npmts
|
||||
env:
|
||||
global:
|
||||
secure: kPKBMnEKoC+K5dXpl11NhuK3LSp0c0fRO60Akj3QeQBjUWnVAcF0Ht30c31y0lnJaMEzXhmUIKdR7RQnlmw5be4TYGINzY7FD3Dcv7o+HO1ZQrkpMWSu46jF6ZJer9moGjZ8e0rX8wZyB9SqsXYlwWRzqvxfOVxQfTvU3BEnJKHbhq+R5JMJ8dwLBPNTJKMWKq85KNsjo3ap0BjxdBUoRLzvrn31VOPH30BkvmLGc5YiIz5QmITll/T2wmQKYTNT2qDlEJ729B8pYa3eNlCNi89AxsLDGCmEoJAVrPsyw5g+gAyBqZ1GRULy83UJbELUq7cse3MRLMSwCAm4f0INRAuqcyiKYJ4+LHd0NwKrFQ/dQ0pvyBTbbEjNemXaakkWH7S6F03UvF+u+tiQ7C97XH0CRsseGlm36zCkAClEhtWVWA4U0Q5c6zqRAAOYOI0xquXalRKPTJe7fCYewp2eqmlp8drt8MxancyKI/ynXNoR5vGFzDTSRoPjTlaYQPmbiH4+Nd5+6Qoj94PEIqghebIPDQo3C7vWts4WGccux5b2q524UgB63hjJQA6+GQOo1q4RibouS6WScn8/tW/ZOEP+sNhDfkeiZUIjye+Q3PyzonGHefgSQ8wBbsc8LOX0cKUcEFWr14nhdQ9ZeW+hrSSF04TbM4zGJPGcKhmT2UU=
|
138
README.md
138
README.md
@ -1,7 +1,13 @@
|
||||
# npmts
|
||||
Write npm modules with TypeScript without hassle. TypeScript ready. Fully ES6.
|
||||
|
||||
## Status
|
||||
## Availabililty
|
||||
[](https://www.npmjs.com/package/npmts)
|
||||
[](https://gitlab.com/pushrocks/npmts)
|
||||
[](https://github.com/pushrocks/npmts)
|
||||
[](https://pushrocks.gitlab.io/npmts/docs)
|
||||
|
||||
## Status for master
|
||||
[](https://gitlab.com/pushrocks/npmts/commits/master)
|
||||
[](https://gitlab.com/pushrocks/npmts/commits/master)
|
||||
[](https://david-dm.org/pushrocks/npmts)
|
||||
@ -10,137 +16,13 @@ Write npm modules with TypeScript without hassle. TypeScript ready. Fully ES6.
|
||||
[](https://nodejs.org/dist/latest-v6.x/docs/api/)
|
||||
[](https://nodejs.org/dist/latest-v6.x/docs/api/)
|
||||
|
||||
## What is NPMTS?
|
||||
## Introduction
|
||||
NPMTS is your friend when it comes to write, test, publish and document NPM modules written in TypeScript.
|
||||
By default NPMTS will **bundle declaration files**. As a result npm module **code completion in editors like Visual Studio Code** works.
|
||||
|
||||
There is a docker image available that includes npmts to make CI a breeze:
|
||||
[hosttoday/ht-docker-node:npmts on Dockerhub](https://hub.docker.com/r/hosttoday/ht-docker-node/)
|
||||
|
||||
### Install
|
||||
First install npmts globally, then install the npmts-g locally.
|
||||
For further information read the docs.
|
||||
|
||||
> **npmts-g* checks if the global version of npmts suffices the modules requirements.
|
||||
If not it installs npmts locally in the right version during npm install.
|
||||
|
||||
```sh
|
||||
npm install npmts -g # installs npmts globally
|
||||
npm install npmts-g --save-dev # installs npmts-g checking tool as devDependency
|
||||
```
|
||||
|
||||
Then add it to your package.json's script section to trigger a build:
|
||||
|
||||
```json
|
||||
"scripts": {
|
||||
"test": "(npmts)"
|
||||
}
|
||||
```
|
||||
|
||||
### Default task execution order
|
||||
|
||||
1. **Config:** Check config in ./npmextra.json (Check out [npmextra](https://www.npmjs.com/package/npmextra))
|
||||
1. **Clean:** Clean up from any previous builds (old js files)
|
||||
1. **Check:** Check project for typings declaration in package.json, unused dependencies and missing dependencies
|
||||
1. **Transpile:** Transpile TypeScript with **inline sourcemaps** and **declaration files** to ES target
|
||||
1. **Documentation:** Create TypeDoc Documentation from TypeScript files
|
||||
1. **Test:** Babelify ES6 to ES5 on the fly, instrumentalize ES5 JavaScript with istanbul and run tests with Mocha.
|
||||
|
||||
### npmextra.json
|
||||
the npmts section in npmextra.json can be used to configure npmts.
|
||||
|
||||
**Default**
|
||||
>Note: When you are using `"mode":"default"` it'll cause npmts to override any other settings you may have made except for tsOptions (ES target etc.)
|
||||
with default behaviour.
|
||||
|
||||
```json
|
||||
{
|
||||
"npmts":{
|
||||
"mode":"default"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
**Custom settings**
|
||||
```json
|
||||
{
|
||||
"mode":"custom",
|
||||
"docs":false,
|
||||
"test":true,
|
||||
"npmts":{
|
||||
"ts":{
|
||||
"./customdir/*.ts":"./"
|
||||
},
|
||||
"tsOptions":{
|
||||
"declaration":false,
|
||||
"target":"ES6"
|
||||
},
|
||||
"cli":true
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
| key | default value | description |
|
||||
| --- | --- | --- |
|
||||
| `"mode"` | `"default"` | "default" will do default stuff and override , "custom" only does what you specify |
|
||||
| `"docs"` | `true` | create docs for your module |
|
||||
| `"test"` | `true` | test your module |
|
||||
| `"ts"` | `{"./ts/*.ts":"./","./test/test.ts":"./test/"}` | allows you to define multiple ts portions |
|
||||
| `"tsOptions"` | `{"target":"ES5", "declaration":"true"}` | specify options for tsc |
|
||||
| `"cli"` | "false" | some modules are designed to be used from cli. If set to true NPMTS will create a cli.js that wires you dist files up for cli use. |
|
||||
|
||||
### 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 declaration files like `./dist/index.d.ts` by default.
|
||||
You can reference it in your package.json like this.
|
||||
|
||||
```json
|
||||
"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.
|
||||
|
||||
### TypeDoc
|
||||
By default TypeDoc will create docs for your module in `./pages/api/` directory.
|
||||
You can use `.docs/` directory to create a gitbook.
|
||||
> Note: Use [npmpage](https://www.npmjs.com/package/npmpage) from npm to fuse gitbook and TypeDoc into a website
|
||||
|
||||
## Some notes:
|
||||
#### Typings for third party modules that do not bundle declaration files
|
||||
NPMTS no longer supports typings.json. Instead use the new TypeScript 2.x approach to typings using the @types/ npm scope.
|
||||
|
||||
#### Instrumentalize Code
|
||||
npmts instrumentalizes (using istanbul) the created JavaScript code to create a coverage report.
|
||||
|
||||
#### Tests
|
||||
Any errors will be shown with reference to their originating source in TypeScript
|
||||
thanks to autogenerated source maps.
|
||||
|
||||
## Example Usage in modules:
|
||||
* [gulp-browser](https://www.npmjs.com/package/gulp-browser)
|
||||
|
||||
> We will add more options over time.
|
||||
|
||||
## Tips and tricks:
|
||||
|
||||
* Use [npmts-g](https://www.npmjs.com/package/npmts-g) to use globally installed npmts and install npmts locally if no global npmts is available.
|
||||
* Use [npmpage](https://www.npmjs.com/package/npmpage) to create a webpage from coverage reports and TypeDoc for the module
|
||||
* Use [hosttoday/ht-docker-node:npmts](https://hub.docker.com/r/hosttoday/ht-docker-node/) for speedy CI builds
|
||||
* Use [npmdocker](https://www.npmjs.com/package/npmdocker) for running tests consistently with docker.
|
||||
|
||||
## Future Scope:
|
||||
* automatically manage badges in README
|
||||
* manage tslint to enforce code best practices
|
||||
* tear down any differences between local and CI environments by using brand new npmdocker
|
||||
|
||||
## About the authors:
|
||||
[](https://lossless.com/)
|
||||
|
||||
[](https://paypal.me/lossless)
|
||||
[](https://push.rocks)
|
||||
|
10
appveyor.yml
10
appveyor.yml
@ -1,10 +0,0 @@
|
||||
environment:
|
||||
nodejs_version: "4"
|
||||
install:
|
||||
- ps: Install-Product node $env:nodejs_version
|
||||
- npm install
|
||||
test_script:
|
||||
- node --version
|
||||
- npm --version
|
||||
- npm test
|
||||
build: off
|
2
dist/npmts.check.d.ts
vendored
2
dist/npmts.check.d.ts
vendored
@ -1,3 +1,5 @@
|
||||
/// <reference types="q" />
|
||||
import * as plugins from "./npmts.plugins";
|
||||
import { ProjectinfoNpm } from "projectinfo";
|
||||
export declare let projectInfo: ProjectinfoNpm;
|
||||
export declare let run: (configArg: any) => plugins.Q.Promise<{}>;
|
||||
|
4
dist/npmts.check.js
vendored
4
dist/npmts.check.js
vendored
@ -2,10 +2,10 @@
|
||||
var plugins = require("./npmts.plugins");
|
||||
var paths = require("./npmts.paths");
|
||||
var npmts_promisechain_1 = require("./npmts.promisechain");
|
||||
exports.projectInfo = new plugins.projectinfo.ProjectinfoNpm(paths.cwd);
|
||||
var checkProjectTypings = function (configArg) {
|
||||
var done = plugins.Q.defer();
|
||||
var cwdProjectInfo = new plugins.projectinfo.ProjectinfoNpm(paths.cwd);
|
||||
if (typeof cwdProjectInfo.packageJson.typings == "undefined") {
|
||||
if (typeof exports.projectInfo.packageJson.typings == "undefined") {
|
||||
plugins.beautylog.error("please add typings field to package.json");
|
||||
process.exit(1);
|
||||
}
|
||||
|
16
dist/npmts.clean.js
vendored
16
dist/npmts.clean.js
vendored
@ -4,24 +4,18 @@ var plugins = require("./npmts.plugins");
|
||||
var paths = require("./npmts.paths");
|
||||
var npmts_promisechain_1 = require("./npmts.promisechain");
|
||||
var removeDist = function () {
|
||||
npmts_promisechain_1.npmtsOra.text("cleaning " + "dist".yellow + " folder");
|
||||
npmts_promisechain_1.npmtsOra.text("cleaning dist folder");
|
||||
return plugins.smartfile.fs.remove(paths.distDir);
|
||||
};
|
||||
var removeTypings = function () {
|
||||
var done = plugins.Q.defer();
|
||||
npmts_promisechain_1.npmtsOra.text("cleaning " + "typings".yellow + " folder");
|
||||
if (false) {
|
||||
}
|
||||
else {
|
||||
done.resolve();
|
||||
}
|
||||
return done.promise;
|
||||
var removePages = function () {
|
||||
npmts_promisechain_1.npmtsOra.text("cleaning pages folder");
|
||||
return plugins.smartfile.fs.remove(paths.pagesDir);
|
||||
};
|
||||
exports.run = function (configArg) {
|
||||
npmts_promisechain_1.npmtsOra.text("cleaning up from previous builds...");
|
||||
var done = plugins.Q.defer();
|
||||
removeDist()
|
||||
.then(removeTypings)
|
||||
.then(removePages)
|
||||
.then(function () {
|
||||
plugins.beautylog.ok("Cleaned up from previous builds!");
|
||||
done.resolve(configArg);
|
||||
|
6
dist/npmts.typedoc.js
vendored
6
dist/npmts.typedoc.js
vendored
@ -3,6 +3,7 @@ require("typings-global");
|
||||
var plugins = require("./npmts.plugins");
|
||||
var paths = require("./npmts.paths");
|
||||
var npmts_promisechain_1 = require("./npmts.promisechain");
|
||||
var npmts_check_1 = require("./npmts.check");
|
||||
var genTypeDoc = function (configArg) {
|
||||
var done = plugins.Q.defer();
|
||||
npmts_promisechain_1.npmtsOra.text("now generating " + "TypeDoc documentation".yellow);
|
||||
@ -17,8 +18,9 @@ var genTypeDoc = function (configArg) {
|
||||
out: paths.pagesApiDir,
|
||||
json: plugins.path.join(paths.pagesApiDir, "file.json"),
|
||||
// TypeDoc options (see typedoc docs)
|
||||
name: "my-project",
|
||||
//theme: "default",
|
||||
name: npmts_check_1.projectInfo.name,
|
||||
readme: plugins.path.join(paths.cwd, "README.md"),
|
||||
// theme: "default",
|
||||
ignoreCompilerErrors: true,
|
||||
version: true,
|
||||
}))
|
||||
|
15
docs/book.json
Normal file
15
docs/book.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"structure": {
|
||||
"readme": "index.md"
|
||||
},
|
||||
"plugins": [
|
||||
"tonic",
|
||||
"edit-link"
|
||||
],
|
||||
"pluginsConfig": {
|
||||
"edit-link": {
|
||||
"base": "https://gitlab.com/pushrocks/npmts/edit/master/docs/",
|
||||
"label": "Edit on GitLab"
|
||||
}
|
||||
}
|
||||
}
|
80
docs/config.md
Normal file
80
docs/config.md
Normal file
@ -0,0 +1,80 @@
|
||||
# Configuration of NPMTS
|
||||
npmts can be configured to your needs:
|
||||
|
||||
### npmextra.json
|
||||
the npmts section in npmextra.json can be used to configure npmts.
|
||||
|
||||
**Default**
|
||||
>Note: When you are using `"mode":"default"` it'll cause npmts to override any other settings you may have made except for tsOptions (ES target etc.)
|
||||
with default behaviour.
|
||||
|
||||
```json
|
||||
{
|
||||
"npmts":{
|
||||
"mode":"default"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
**Custom settings**
|
||||
```json
|
||||
{
|
||||
"mode":"custom",
|
||||
"docs":false,
|
||||
"test":true,
|
||||
"npmts":{
|
||||
"ts":{
|
||||
"./customdir/*.ts":"./"
|
||||
},
|
||||
"tsOptions":{
|
||||
"declaration":false,
|
||||
"target":"ES6"
|
||||
},
|
||||
"cli":true
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
| key | default value | description |
|
||||
| --- | --- | --- |
|
||||
| `"mode"` | `"default"` | "default" will do default stuff and override , "custom" only does what you specify |
|
||||
| `"docs"` | `true` | create docs for your module |
|
||||
| `"test"` | `true` | test your module |
|
||||
| `"ts"` | `{"./ts/*.ts":"./","./test/test.ts":"./test/"}` | allows you to define multiple ts portions |
|
||||
| `"tsOptions"` | `{"target":"ES5", "declaration":"true"}` | specify options for tsc |
|
||||
| `"cli"` | "false" | some modules are designed to be used from cli. If set to true NPMTS will create a cli.js that wires you dist files up for cli use. |
|
||||
|
||||
### 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 declaration files like `./dist/index.d.ts` by default.
|
||||
You can reference it in your package.json like this.
|
||||
|
||||
```json
|
||||
"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.
|
||||
|
||||
### TypeDoc
|
||||
By default TypeDoc will create docs for your module in `./pages/api/` directory.
|
||||
> Note: Use [npmpage](https://www.npmjs.com/package/npmpage) to build a website for the module.
|
||||
It also allows you to integrate api docs with a gitbook located in `./docs/`
|
||||
|
||||
## Some notes:
|
||||
#### Typings for third party modules that do not bundle declaration files
|
||||
NPMTS no longer supports typings.json. Instead use the new TypeScript 2.x approach to typings using the @types/ npm scope.
|
||||
|
||||
#### Instrumentalize Code
|
||||
npmts instrumentalizes (using istanbul) the created JavaScript code to create a coverage report.
|
||||
|
||||
#### Tests
|
||||
Any errors will be shown with reference to their originating source in TypeScript
|
||||
thanks to autogenerated source maps.
|
8
docs/default.md
Normal file
8
docs/default.md
Normal file
@ -0,0 +1,8 @@
|
||||
# Default task execution order
|
||||
|
||||
1. **Config:** Check config in ./npmextra.json (Check out [npmextra](https://www.npmjs.com/package/npmextra))
|
||||
1. **Clean:** Clean up from any previous builds (old js files)
|
||||
1. **Check:** Check project for typings declaration in package.json, unused dependencies and missing dependencies
|
||||
1. **Transpile:** Transpile TypeScript with **inline sourcemaps** and **declaration files** to ES target
|
||||
1. **Documentation:** Create TypeDoc Documentation from TypeScript files
|
||||
1. **Test:** Babelify ES6 to ES5 on the fly, instrumentalize ES5 JavaScript with istanbul and run tests with Mocha.
|
13
docs/examples.md
Normal file
13
docs/examples.md
Normal file
@ -0,0 +1,13 @@
|
||||
# Examples for NPMTS
|
||||
|
||||
## Example Usage in modules:
|
||||
* [gulp-browser](https://www.npmjs.com/package/gulp-browser)
|
||||
|
||||
> We will add more options over time.
|
||||
|
||||
## Tips and tricks:
|
||||
|
||||
* Use [npmts-g](https://www.npmjs.com/package/npmts-g) to use globally installed npmts and install npmts locally if no global npmts is available.
|
||||
* Use [npmpage](https://www.npmjs.com/package/npmpage) to create a webpage from coverage reports and TypeDoc for the module
|
||||
* Use [hosttoday/ht-docker-node:npmts](https://hub.docker.com/r/hosttoday/ht-docker-node/) for speedy CI builds
|
||||
* Use [npmdocker](https://www.npmjs.com/package/npmdocker) for running tests consistently with docker.
|
28
docs/index.md
Normal file
28
docs/index.md
Normal file
@ -0,0 +1,28 @@
|
||||
# npmts
|
||||
Write npm modules with TypeScript without hassle. TypeScript ready. Fully ES6.
|
||||
|
||||
## Availabililty
|
||||
[](https://www.npmjs.com/package/npmts)
|
||||
[](https://gitlab.com/pushrocks/npmts)
|
||||
[](https://github.com/pushrocks/npmts)
|
||||
[](https://pushrocks.gitlab.io/npmts/docs)
|
||||
|
||||
## Status for master
|
||||
[](https://gitlab.com/pushrocks/npmts/commits/master)
|
||||
[](https://gitlab.com/pushrocks/npmts/commits/master)
|
||||
[](https://david-dm.org/pushrocks/npmts)
|
||||
[](https://www.bithound.io/github/pushrocks/npmts/master/dependencies/npm)
|
||||
[](https://www.bithound.io/github/pushrocks/npmts)
|
||||
[](https://nodejs.org/dist/latest-v6.x/docs/api/)
|
||||
[](https://nodejs.org/dist/latest-v6.x/docs/api/)
|
||||
|
||||
## Introduction
|
||||
NPMTS is your friend when it comes to write, test, publish and document NPM modules written in TypeScript.
|
||||
By default NPMTS will **bundle declaration files**. As a result npm module **code completion in editors like Visual Studio Code** works.
|
||||
|
||||
There is a docker image available that includes npmts to make CI a breeze:
|
||||
[hosttoday/ht-docker-node:npmts on Dockerhub](https://hub.docker.com/r/hosttoday/ht-docker-node/)
|
||||
|
||||
For further information read the docs.
|
||||
|
||||
[](https://push.rocks)
|
14
docs/info.md
Normal file
14
docs/info.md
Normal file
@ -0,0 +1,14 @@
|
||||
# Info
|
||||
|
||||
## Future Scope:
|
||||
* automatically manage badges in README
|
||||
* manage tslint to enforce code best practices
|
||||
* tear down any differences between local and CI environments by using brand new npmdocker
|
||||
|
||||
## About the authors:
|
||||
[](https://lossless.com/)
|
||||
|
||||
[](https://paypal.me/lossless)
|
||||
|
||||
## Legal Info
|
||||
https://lossless.gmbh
|
18
docs/install.md
Normal file
18
docs/install.md
Normal file
@ -0,0 +1,18 @@
|
||||
# Install NPMTS
|
||||
First install npmts globally, then install the npmts-g locally.
|
||||
|
||||
> **npmts-g* checks if the global version of npmts suffices the modules requirements.
|
||||
If not it installs npmts locally in the right version during npm install.
|
||||
|
||||
```sh
|
||||
npm install npmts -g # installs npmts globally
|
||||
npm install npmts-g --save-dev # installs npmts-g checking tool as devDependency
|
||||
```
|
||||
|
||||
Then add it to your package.json's script section to trigger a build:
|
||||
|
||||
```json
|
||||
"scripts": {
|
||||
"test": "(npmts)"
|
||||
}
|
||||
```
|
8
docs/summary.md
Normal file
8
docs/summary.md
Normal file
@ -0,0 +1,8 @@
|
||||
# Summary
|
||||
|
||||
* [1. Intro](index.md)
|
||||
* [2. Install](install.md)
|
||||
* [3. Default Behaviour](default.md)
|
||||
* [4. Configuration](config.md)
|
||||
* [5. Examples](examples.md)
|
||||
* [6. Info](info.md)
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "npmts",
|
||||
"version": "5.4.12",
|
||||
"version": "5.4.24",
|
||||
"description": "Write npm modules with TypeScript without hassle. TypeScript ready. Fully ES6.",
|
||||
"main": "dist/index.js",
|
||||
"bin": {
|
||||
@ -10,6 +10,8 @@
|
||||
"test": "(npm run compile && npm run setupCheck && npm run check && npm run checkVersion && npm run checkNoTest && npm run checkNoDocs)",
|
||||
"compile": "(rm -rf test/ && rm -r dist/ && mkdir dist/ && tsc && cp assets/cli.js dist/ )",
|
||||
"setupCheck": "(git clone https://gitlab.com/sandboxzone/sandbox-npmts.git test/)",
|
||||
"typedoc": "(typedoc --out ./pages/api --target ES6 ./ts/)",
|
||||
"npmpage": "(npmpage)",
|
||||
"check": "(cd test && npm install && node ../dist/index.js)",
|
||||
"checkVersion": "(cd test/ && node ../dist/index.js -v)",
|
||||
"checkNoTest": "(cd test && node ../dist/index.js --notest)",
|
||||
@ -60,7 +62,7 @@
|
||||
"source-map-support": "^0.4.2",
|
||||
"tsn": "^1.0.12",
|
||||
"typedoc": "^0.4.5",
|
||||
"typescript": "^2.0.0-dev.20160630",
|
||||
"typescript": "next",
|
||||
"typings-global": "*"
|
||||
},
|
||||
"devDependencies": {}
|
||||
|
@ -2,10 +2,14 @@ import * as plugins from "./npmts.plugins";
|
||||
import * as paths from "./npmts.paths";
|
||||
import { npmtsOra } from "./npmts.promisechain";
|
||||
|
||||
import {ProjectinfoNpm} from "projectinfo";
|
||||
|
||||
export let projectInfo = new plugins.projectinfo.ProjectinfoNpm(paths.cwd);
|
||||
|
||||
let checkProjectTypings = (configArg) => {
|
||||
let done = plugins.Q.defer();
|
||||
let cwdProjectInfo = new plugins.projectinfo.ProjectinfoNpm(paths.cwd);
|
||||
if(typeof cwdProjectInfo.packageJson.typings == "undefined"){
|
||||
|
||||
if(typeof projectInfo.packageJson.typings == "undefined"){
|
||||
plugins.beautylog.error(`please add typings field to package.json`);
|
||||
process.exit(1);
|
||||
};
|
||||
|
@ -4,27 +4,20 @@ import paths = require("./npmts.paths");
|
||||
import {npmtsOra} from "./npmts.promisechain";
|
||||
|
||||
let removeDist = function(){
|
||||
npmtsOra.text("cleaning " + "dist".yellow + " folder");
|
||||
npmtsOra.text("cleaning dist folder");
|
||||
return plugins.smartfile.fs.remove(paths.distDir);
|
||||
};
|
||||
|
||||
let removeTypings = function(){
|
||||
let done = plugins.Q.defer();
|
||||
npmtsOra.text("cleaning " + "typings".yellow + " folder");
|
||||
if(false){
|
||||
//plugins.smartfile.fsaction.remove(paths.typingsDir)
|
||||
// .then(done.resolve);
|
||||
} else {
|
||||
done.resolve();
|
||||
}
|
||||
return done.promise;
|
||||
let removePages = function(){
|
||||
npmtsOra.text("cleaning pages folder");
|
||||
return plugins.smartfile.fs.remove(paths.pagesDir);
|
||||
};
|
||||
|
||||
export let run = function(configArg){
|
||||
npmtsOra.text("cleaning up from previous builds...");
|
||||
let done = plugins.Q.defer();
|
||||
removeDist()
|
||||
.then(removeTypings)
|
||||
.then(removePages)
|
||||
.then(function(){
|
||||
plugins.beautylog.ok("Cleaned up from previous builds!");
|
||||
done.resolve(configArg);
|
||||
|
@ -3,6 +3,8 @@ import plugins = require("./npmts.plugins");
|
||||
import paths = require("./npmts.paths");
|
||||
import { npmtsOra } from "./npmts.promisechain";
|
||||
|
||||
import {projectInfo} from "./npmts.check";
|
||||
|
||||
let genTypeDoc = function (configArg) {
|
||||
let done = plugins.Q.defer();
|
||||
npmtsOra.text("now generating " + "TypeDoc documentation".yellow);
|
||||
@ -19,9 +21,9 @@ let genTypeDoc = function (configArg) {
|
||||
json: plugins.path.join(paths.pagesApiDir, "file.json"),
|
||||
|
||||
// TypeDoc options (see typedoc docs)
|
||||
name: "my-project",
|
||||
|
||||
//theme: "default",
|
||||
name: projectInfo.name,
|
||||
readme: plugins.path.join(paths.cwd,"README.md"),
|
||||
// theme: "default",
|
||||
ignoreCompilerErrors: true,
|
||||
version: true,
|
||||
}))
|
||||
|
Reference in New Issue
Block a user