Compare commits
19 Commits
Author | SHA1 | Date | |
---|---|---|---|
26b5db3782 | |||
dadad3fa96 | |||
2ab35db571 | |||
4a17953298 | |||
8c633b3c30 | |||
e100a6e026 | |||
3e7148c938 | |||
3554e2543d | |||
44a86542ec | |||
b63d2edd29 | |||
a4e0112767 | |||
b40837b6a7 | |||
7ecb565de9 | |||
41a38aeb56 | |||
0be87e2f45 | |||
2edcb3947e | |||
51753df662 | |||
36c002581a | |||
db1cfe4746 |
@ -1,10 +1,10 @@
|
|||||||
image: hosttoday/ht-docker-node:npmts
|
image: hosttoday/ht-docker-node:npmci
|
||||||
|
|
||||||
stages:
|
stages:
|
||||||
- test
|
- test
|
||||||
- release
|
- release
|
||||||
- trigger
|
- trigger
|
||||||
- page
|
- pages
|
||||||
|
|
||||||
testLEGACY:
|
testLEGACY:
|
||||||
stage: test
|
stage: test
|
||||||
@ -45,3 +45,15 @@ trigger:
|
|||||||
- tags
|
- tags
|
||||||
tags:
|
tags:
|
||||||
- docker
|
- docker
|
||||||
|
|
||||||
|
pages:
|
||||||
|
image: ht-docker-node:npmpage
|
||||||
|
stage: pages
|
||||||
|
script:
|
||||||
|
- npmpage
|
||||||
|
only:
|
||||||
|
- tags
|
||||||
|
artifacts:
|
||||||
|
expire_in: 1 week
|
||||||
|
paths:
|
||||||
|
- pages
|
||||||
|
28
README.md
28
README.md
@ -3,9 +3,11 @@ Write npm modules with TypeScript without hassle. TypeScript ready. Fully ES6.
|
|||||||
|
|
||||||
## Status
|
## Status
|
||||||
[](https://gitlab.com/pushrocks/npmts/commits/master)
|
[](https://gitlab.com/pushrocks/npmts/commits/master)
|
||||||
|
[](https://gitlab.com/pushrocks/npmts/commits/master)
|
||||||
[](https://david-dm.org/pushrocks/npmts)
|
[](https://david-dm.org/pushrocks/npmts)
|
||||||
[](https://www.bithound.io/github/pushrocks/npmts/master/dependencies/npm)
|
[](https://www.bithound.io/github/pushrocks/npmts/master/dependencies/npm)
|
||||||
[](https://www.bithound.io/github/pushrocks/npmts)
|
[](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/)
|
[](https://nodejs.org/dist/latest-v6.x/docs/api/)
|
||||||
|
|
||||||
## What is NPMTS?
|
## What is NPMTS?
|
||||||
@ -46,10 +48,25 @@ Then add it to your package.json's script section to trigger a build:
|
|||||||
### npmextra.json
|
### npmextra.json
|
||||||
the npmts section in npmextra.json can be used to configure npmts.
|
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
|
```json
|
||||||
{
|
{
|
||||||
"npmts":{
|
"npmts":{
|
||||||
"mode":"default",
|
"mode":"default"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
**Custom settings**
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"mode":"custom",
|
||||||
|
"docs":false,
|
||||||
|
"test":true,
|
||||||
|
"npmts":{
|
||||||
"ts":{
|
"ts":{
|
||||||
"./customdir/*.ts":"./"
|
"./customdir/*.ts":"./"
|
||||||
},
|
},
|
||||||
@ -64,7 +81,9 @@ the npmts section in npmextra.json can be used to configure npmts.
|
|||||||
|
|
||||||
| key | default value | description |
|
| key | default value | description |
|
||||||
| --- | --- | --- |
|
| --- | --- | --- |
|
||||||
| `"mode"` | `"default"` | "default" will do some default stuff, "custom" only does what you specify |
|
| `"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 |
|
| `"ts"` | `{"./ts/*.ts":"./","./test/test.ts":"./test/"}` | allows you to define multiple ts portions |
|
||||||
| `"tsOptions"` | `{"target":"ES5", "declaration":"true"}` | specify options for tsc |
|
| `"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. |
|
| `"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. |
|
||||||
@ -88,6 +107,11 @@ This is in line with the latest TypeScript best practices.
|
|||||||
You can then import plugins via the TypeScript `import` Syntax
|
You can then import plugins via the TypeScript `import` Syntax
|
||||||
and tsc will pick up the declaration file automatically.
|
and tsc will pick up the declaration file automatically.
|
||||||
|
|
||||||
|
### TypeDoc
|
||||||
|
By default TypeDoc will create docs for your module in `./pages/api/` directory.
|
||||||
|
> Note: You can use `./docs/` directory to create a gitbook.
|
||||||
|
Use [npmpage](https://www.npmjs.com/package/npmpage) from npm to fuse gitbook and TypeDoc into a website.
|
||||||
|
|
||||||
## Some notes:
|
## Some notes:
|
||||||
#### Typings for third party modules that do not bundle declaration files
|
#### 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.
|
NPMTS no longer supports typings.json. Instead use the new TypeScript 2.x approach to typings using the @types/ npm scope.
|
||||||
|
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 paths = require("./npmts.paths");
|
||||||
var npmts_promisechain_1 = require("./npmts.promisechain");
|
var npmts_promisechain_1 = require("./npmts.promisechain");
|
||||||
var removeDist = function () {
|
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);
|
return plugins.smartfile.fs.remove(paths.distDir);
|
||||||
};
|
};
|
||||||
var removeTypings = function () {
|
var removePages = function () {
|
||||||
var done = plugins.Q.defer();
|
npmts_promisechain_1.npmtsOra.text("cleaning pages folder");
|
||||||
npmts_promisechain_1.npmtsOra.text("cleaning " + "typings".yellow + " folder");
|
return plugins.smartfile.fs.remove(paths.pagesDir);
|
||||||
if (false) {
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
done.resolve();
|
|
||||||
}
|
|
||||||
return done.promise;
|
|
||||||
};
|
};
|
||||||
exports.run = function (configArg) {
|
exports.run = function (configArg) {
|
||||||
npmts_promisechain_1.npmtsOra.text("cleaning up from previous builds...");
|
npmts_promisechain_1.npmtsOra.text("cleaning up from previous builds...");
|
||||||
var done = plugins.Q.defer();
|
var done = plugins.Q.defer();
|
||||||
removeDist()
|
removeDist()
|
||||||
.then(removeTypings)
|
.then(removePages)
|
||||||
.then(function () {
|
.then(function () {
|
||||||
plugins.beautylog.ok("Cleaned up from previous builds!");
|
plugins.beautylog.ok("Cleaned up from previous builds!");
|
||||||
done.resolve(configArg);
|
done.resolve(configArg);
|
||||||
|
4
dist/npmts.configfile.d.ts
vendored
4
dist/npmts.configfile.d.ts
vendored
@ -1,4 +0,0 @@
|
|||||||
/// <reference types="q" />
|
|
||||||
import "typings-global";
|
|
||||||
import plugins = require("./npmts.plugins");
|
|
||||||
export declare var run: (argvArg: any) => plugins.Q.Promise<{}>;
|
|
35
dist/npmts.configfile.js
vendored
35
dist/npmts.configfile.js
vendored
@ -1,35 +0,0 @@
|
|||||||
"use strict";
|
|
||||||
require("typings-global");
|
|
||||||
var plugins = require("./npmts.plugins");
|
|
||||||
var paths = require("./npmts.paths");
|
|
||||||
var npmts_promisechain_1 = require("./npmts.promisechain");
|
|
||||||
exports.run = function (argvArg) {
|
|
||||||
var done = plugins.Q.defer();
|
|
||||||
npmts_promisechain_1.npmtsOra.text("looking for npmextra.json");
|
|
||||||
var defaultConfig = {
|
|
||||||
mode: "default",
|
|
||||||
notest: false
|
|
||||||
};
|
|
||||||
if (argvArg.notest) {
|
|
||||||
defaultConfig.notest = true;
|
|
||||||
}
|
|
||||||
;
|
|
||||||
var config = plugins.npmextra.dataFor({
|
|
||||||
toolName: "npmts",
|
|
||||||
defaultSettings: defaultConfig,
|
|
||||||
cwd: paths.cwd
|
|
||||||
});
|
|
||||||
switch (config.mode) {
|
|
||||||
case "default":
|
|
||||||
case "custom":
|
|
||||||
plugins.beautylog.ok("mode is " + config.mode.yellow);
|
|
||||||
done.resolve(config);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
plugins.beautylog.error("mode " + config.mode.yellow + " not recognised!".red);
|
|
||||||
process.exit(1);
|
|
||||||
}
|
|
||||||
;
|
|
||||||
done.resolve(config);
|
|
||||||
return done.promise;
|
|
||||||
};
|
|
13
dist/npmts.options.d.ts
vendored
13
dist/npmts.options.d.ts
vendored
@ -1,4 +1,15 @@
|
|||||||
/// <reference types="q" />
|
/// <reference types="q" />
|
||||||
import "typings-global";
|
import "typings-global";
|
||||||
import plugins = require("./npmts.plugins");
|
import plugins = require("./npmts.plugins");
|
||||||
export declare var run: (configArg: any) => plugins.Q.Promise<{}>;
|
export declare type npmtsMode = "default" | "custom";
|
||||||
|
export interface npmtsConfig {
|
||||||
|
argv: any;
|
||||||
|
coverageTreshold: number;
|
||||||
|
docs: boolean;
|
||||||
|
mode: npmtsMode;
|
||||||
|
test: boolean;
|
||||||
|
testTs: any;
|
||||||
|
ts: any;
|
||||||
|
tsOptions: any;
|
||||||
|
}
|
||||||
|
export declare var run: (argvArg: any) => plugins.Q.Promise<{}>;
|
||||||
|
56
dist/npmts.options.js
vendored
56
dist/npmts.options.js
vendored
@ -1,16 +1,44 @@
|
|||||||
"use strict";
|
"use strict";
|
||||||
require("typings-global");
|
require("typings-global");
|
||||||
var plugins = require("./npmts.plugins");
|
var plugins = require("./npmts.plugins");
|
||||||
|
var paths = require("./npmts.paths");
|
||||||
var npmts_promisechain_1 = require("./npmts.promisechain");
|
var npmts_promisechain_1 = require("./npmts.promisechain");
|
||||||
exports.run = function (configArg) {
|
;
|
||||||
|
exports.run = function (argvArg) {
|
||||||
var done = plugins.Q.defer();
|
var done = plugins.Q.defer();
|
||||||
var config = configArg;
|
var defaultConfig = {
|
||||||
npmts_promisechain_1.npmtsOra.text("now determining build options...");
|
argv: undefined,
|
||||||
|
coverageTreshold: 70,
|
||||||
|
docs: true,
|
||||||
|
mode: "default",
|
||||||
|
test: true,
|
||||||
|
testTs: {},
|
||||||
|
ts: {},
|
||||||
|
tsOptions: {}
|
||||||
|
};
|
||||||
|
// mix with configfile
|
||||||
|
npmts_promisechain_1.npmtsOra.text("looking for npmextra.json");
|
||||||
|
var config = plugins.npmextra.dataFor({
|
||||||
|
toolName: "npmts",
|
||||||
|
defaultSettings: defaultConfig,
|
||||||
|
cwd: paths.cwd
|
||||||
|
});
|
||||||
|
// add argv
|
||||||
|
config.argv = argvArg;
|
||||||
|
// check mode
|
||||||
|
switch (config.mode) {
|
||||||
|
case "default":
|
||||||
|
case "custom":
|
||||||
|
plugins.beautylog.ok("mode is " + config.mode);
|
||||||
|
done.resolve(config);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
plugins.beautylog.error("mode not recognised!");
|
||||||
|
process.exit(1);
|
||||||
|
}
|
||||||
|
;
|
||||||
//handle default mode
|
//handle default mode
|
||||||
if (config.mode == "default") {
|
if (config.mode == "default") {
|
||||||
config.typings = [
|
|
||||||
"./ts/typings.json"
|
|
||||||
];
|
|
||||||
config.ts = (_a = {},
|
config.ts = (_a = {},
|
||||||
_a["./ts/**/*.ts"] = "./dist/",
|
_a["./ts/**/*.ts"] = "./dist/",
|
||||||
_a
|
_a
|
||||||
@ -19,13 +47,17 @@ exports.run = function (configArg) {
|
|||||||
_b["./test/test.ts"] = "./test/",
|
_b["./test/test.ts"] = "./test/",
|
||||||
_b
|
_b
|
||||||
);
|
);
|
||||||
config.test = ["./index.js"];
|
|
||||||
}
|
}
|
||||||
//check if config.tsOptions is available
|
;
|
||||||
config.tsOptions ? void (0) : config.tsOptions = {};
|
// mix with commandline
|
||||||
config.coverageTreshold ? void (0) : config.coverageTreshold = 70;
|
if (config.argv.notest) {
|
||||||
// handle docs
|
config.test = false;
|
||||||
config.docs ? void (0) : config.docs = {};
|
}
|
||||||
|
;
|
||||||
|
if (config.argv.nodocs) {
|
||||||
|
config.docs = false;
|
||||||
|
}
|
||||||
|
;
|
||||||
plugins.beautylog.ok("build options are ready!");
|
plugins.beautylog.ok("build options are ready!");
|
||||||
done.resolve(config);
|
done.resolve(config);
|
||||||
return done.promise;
|
return done.promise;
|
||||||
|
3
dist/npmts.paths.d.ts
vendored
3
dist/npmts.paths.d.ts
vendored
@ -3,10 +3,11 @@ export declare let npmtsPackageRoot: string;
|
|||||||
export declare let cwd: string;
|
export declare let cwd: string;
|
||||||
export declare let tsDir: string;
|
export declare let tsDir: string;
|
||||||
export declare let distDir: string;
|
export declare let distDir: string;
|
||||||
export declare let docsDir: string;
|
|
||||||
export declare let testDir: string;
|
export declare let testDir: string;
|
||||||
export declare let typingsDir: string;
|
export declare let typingsDir: string;
|
||||||
export declare let coverageDir: string;
|
export declare let coverageDir: string;
|
||||||
|
export declare let pagesDir: string;
|
||||||
|
export declare let pagesApiDir: string;
|
||||||
export declare let npmtsAssetsDir: string;
|
export declare let npmtsAssetsDir: string;
|
||||||
export declare let indexTS: string;
|
export declare let indexTS: string;
|
||||||
export declare let testTS: string;
|
export declare let testTS: string;
|
||||||
|
6
dist/npmts.paths.js
vendored
6
dist/npmts.paths.js
vendored
@ -1,17 +1,19 @@
|
|||||||
"use strict";
|
"use strict";
|
||||||
require("typings-global");
|
require("typings-global");
|
||||||
var plugins = require("./npmts.plugins");
|
var plugins = require("./npmts.plugins");
|
||||||
//Npmts Paths
|
// NPMTS Paths
|
||||||
exports.npmtsPackageRoot = plugins.path.join(__dirname, "../");
|
exports.npmtsPackageRoot = plugins.path.join(__dirname, "../");
|
||||||
// Project paths
|
// Project paths
|
||||||
exports.cwd = process.cwd();
|
exports.cwd = process.cwd();
|
||||||
// Directories
|
// Directories
|
||||||
exports.tsDir = plugins.path.join(exports.cwd, "ts/");
|
exports.tsDir = plugins.path.join(exports.cwd, "ts/");
|
||||||
exports.distDir = plugins.path.join(exports.cwd, "dist/");
|
exports.distDir = plugins.path.join(exports.cwd, "dist/");
|
||||||
exports.docsDir = plugins.path.join(exports.cwd, "docs/");
|
|
||||||
exports.testDir = plugins.path.join(exports.cwd, "test/");
|
exports.testDir = plugins.path.join(exports.cwd, "test/");
|
||||||
exports.typingsDir = plugins.path.join(exports.cwd, "ts/typings/");
|
exports.typingsDir = plugins.path.join(exports.cwd, "ts/typings/");
|
||||||
exports.coverageDir = plugins.path.join(exports.cwd, "coverage/");
|
exports.coverageDir = plugins.path.join(exports.cwd, "coverage/");
|
||||||
|
// Pages
|
||||||
|
exports.pagesDir = plugins.path.join(exports.cwd, "pages/");
|
||||||
|
exports.pagesApiDir = plugins.path.join(exports.pagesDir, "/api");
|
||||||
exports.npmtsAssetsDir = plugins.path.join(__dirname, "../assets/");
|
exports.npmtsAssetsDir = plugins.path.join(__dirname, "../assets/");
|
||||||
//Files
|
//Files
|
||||||
exports.indexTS = plugins.path.join(exports.cwd, "ts/index.ts");
|
exports.indexTS = plugins.path.join(exports.cwd, "ts/index.ts");
|
||||||
|
4
dist/npmts.promisechain.js
vendored
4
dist/npmts.promisechain.js
vendored
@ -6,15 +6,13 @@ var NpmtsAssets = require("./npmts.assets");
|
|||||||
var NpmtsCheck = require("./npmts.check");
|
var NpmtsCheck = require("./npmts.check");
|
||||||
var NpmtsClean = require("./npmts.clean");
|
var NpmtsClean = require("./npmts.clean");
|
||||||
var NpmtsCompile = require("./npmts.compile");
|
var NpmtsCompile = require("./npmts.compile");
|
||||||
var NpmtsConfigFile = require("./npmts.configfile");
|
|
||||||
var NpmtsTypeDoc = require("./npmts.typedoc");
|
var NpmtsTypeDoc = require("./npmts.typedoc");
|
||||||
var NpmtsOptions = require("./npmts.options");
|
var NpmtsOptions = require("./npmts.options");
|
||||||
var NpmtsTests = require("./npmts.tests");
|
var NpmtsTests = require("./npmts.tests");
|
||||||
exports.promisechain = function (argvArg) {
|
exports.promisechain = function (argvArg) {
|
||||||
var done = plugins.Q.defer();
|
var done = plugins.Q.defer();
|
||||||
exports.npmtsOra.start();
|
exports.npmtsOra.start();
|
||||||
NpmtsConfigFile.run(argvArg)
|
NpmtsOptions.run(argvArg)
|
||||||
.then(NpmtsOptions.run)
|
|
||||||
.then(NpmtsClean.run)
|
.then(NpmtsClean.run)
|
||||||
.then(NpmtsCheck.run)
|
.then(NpmtsCheck.run)
|
||||||
.then(NpmtsCompile.run)
|
.then(NpmtsCompile.run)
|
||||||
|
2
dist/npmts.tests.js
vendored
2
dist/npmts.tests.js
vendored
@ -60,7 +60,7 @@ var coverage = function (configArg) {
|
|||||||
exports.run = function (configArg) {
|
exports.run = function (configArg) {
|
||||||
var done = plugins.Q.defer();
|
var done = plugins.Q.defer();
|
||||||
var config = configArg;
|
var config = configArg;
|
||||||
if (config.notest != true) {
|
if (config.test === true) {
|
||||||
npmts_promisechain_1.npmtsOra.text("now starting tests");
|
npmts_promisechain_1.npmtsOra.text("now starting tests");
|
||||||
plugins.beautylog.log("-------------------------------------------------------\n" +
|
plugins.beautylog.log("-------------------------------------------------------\n" +
|
||||||
"*************************** TESTS: ***************************\n" +
|
"*************************** TESTS: ***************************\n" +
|
||||||
|
10
dist/npmts.typedoc.js
vendored
10
dist/npmts.typedoc.js
vendored
@ -14,8 +14,8 @@ var genTypeDoc = function (configArg) {
|
|||||||
target: "es6",
|
target: "es6",
|
||||||
includeDeclarations: true,
|
includeDeclarations: true,
|
||||||
// Output options (see typedoc docs)
|
// Output options (see typedoc docs)
|
||||||
out: paths.docsDir,
|
out: paths.pagesApiDir,
|
||||||
json: plugins.path.join(paths.docsDir, "file.json"),
|
json: plugins.path.join(paths.pagesApiDir, "file.json"),
|
||||||
// TypeDoc options (see typedoc docs)
|
// TypeDoc options (see typedoc docs)
|
||||||
name: "my-project",
|
name: "my-project",
|
||||||
//theme: "default",
|
//theme: "default",
|
||||||
@ -27,9 +27,15 @@ var genTypeDoc = function (configArg) {
|
|||||||
};
|
};
|
||||||
exports.run = function (configArg) {
|
exports.run = function (configArg) {
|
||||||
var done = plugins.Q.defer();
|
var done = plugins.Q.defer();
|
||||||
|
if (configArg.docs) {
|
||||||
genTypeDoc(configArg)
|
genTypeDoc(configArg)
|
||||||
.then(function () {
|
.then(function () {
|
||||||
done.resolve(configArg);
|
done.resolve(configArg);
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
done.resolve(configArg);
|
||||||
|
}
|
||||||
|
;
|
||||||
return done.promise;
|
return done.promise;
|
||||||
};
|
};
|
||||||
|
37
package.json
37
package.json
@ -1,18 +1,19 @@
|
|||||||
{
|
{
|
||||||
"name": "npmts",
|
"name": "npmts",
|
||||||
"version": "5.4.5",
|
"version": "5.4.14",
|
||||||
"description": "Write npm modules with TypeScript without hassle. TypeScript ready. Fully ES6.",
|
"description": "Write npm modules with TypeScript without hassle. TypeScript ready. Fully ES6.",
|
||||||
"main": "dist/index.js",
|
"main": "dist/index.js",
|
||||||
"bin": {
|
"bin": {
|
||||||
"npmts": "dist/cli.js"
|
"npmts": "dist/cli.js"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"test": "(npm run compile && npm run setupCheck && npm run check && npm run checkVersion && npm run checkNoTest)",
|
"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/ )",
|
"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/)",
|
"setupCheck": "(git clone https://gitlab.com/sandboxzone/sandbox-npmts.git test/)",
|
||||||
"check": "(cd test && npm install && node ../dist/index.js)",
|
"check": "(cd test && npm install && node ../dist/index.js)",
|
||||||
"checkVersion": "(cd test/ && node ../dist/index.js -v)",
|
"checkVersion": "(cd test/ && node ../dist/index.js -v)",
|
||||||
"checkNoTest": "(cd test && node ../dist/index.js --notest)"
|
"checkNoTest": "(cd test && node ../dist/index.js --notest)",
|
||||||
|
"checkNoDocs": "(cd test && node ../dist/index.js --nodocs)"
|
||||||
},
|
},
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
@ -29,36 +30,36 @@
|
|||||||
},
|
},
|
||||||
"homepage": "https://gitlab.com/pushrocks/npmts#readme",
|
"homepage": "https://gitlab.com/pushrocks/npmts#readme",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@types/gulp": "^3.8.28",
|
"@types/gulp": "^3.8.30",
|
||||||
"@types/minimatch": "^2.0.28",
|
"@types/minimatch": "^2.0.28",
|
||||||
"@types/q": "^0.0.27",
|
"@types/q": "^0.x.x",
|
||||||
"@types/shelljs": "^0.3.27",
|
"@types/shelljs": "^0.3.29",
|
||||||
"babel-preset-es2015": "^6.9.0",
|
"babel-preset-es2015": "^6.13.2",
|
||||||
"beautylog": "5.0.18",
|
"beautylog": "5.0.20",
|
||||||
"depcheck": "^0.6.4",
|
"depcheck": "^0.6.4",
|
||||||
"early": "^2.0.13",
|
"early": "^2.0.25",
|
||||||
"gulp": "3.9.1",
|
"gulp": "3.9.1",
|
||||||
"gulp-babel": "^6.1.2",
|
"gulp-babel": "^6.1.2",
|
||||||
"gulp-function": "^1.3.6",
|
"gulp-function": "^1.3.6",
|
||||||
"gulp-inject-modules": "^1.0.0",
|
"gulp-inject-modules": "^1.0.0",
|
||||||
"gulp-istanbul": "^1.0.0",
|
"gulp-istanbul": "^1.1.0",
|
||||||
"gulp-mocha": "^2.2.0",
|
"gulp-mocha": "^3.0.1",
|
||||||
"gulp-sourcemaps": "^1.6.0",
|
"gulp-sourcemaps": "^1.6.0",
|
||||||
"gulp-typedoc": "^2.0.0",
|
"gulp-typedoc": "^2.0.0",
|
||||||
"lodash": "^4.14.0",
|
"lodash": "^4.15.0",
|
||||||
"npmextra": "^1.0.8",
|
"npmextra": "^1.0.9",
|
||||||
"projectinfo": "1.0.3",
|
"projectinfo": "1.0.3",
|
||||||
"q": "^1.4.1",
|
"q": "^1.4.1",
|
||||||
"shelljs": "^0.7.3",
|
"shelljs": "^0.7.3",
|
||||||
"smartcli": "1.0.4",
|
"smartcli": "1.0.4",
|
||||||
"smartcov": "0.0.9",
|
"smartcov": "1.0.0",
|
||||||
"smartenv": "1.2.5",
|
"smartenv": "1.2.5",
|
||||||
"smartfile": "4.0.12",
|
"smartfile": "4.0.13",
|
||||||
"smartpath": "3.2.2",
|
"smartpath": "3.2.2",
|
||||||
"smartstring": "^2.0.15",
|
"smartstring": "^2.0.17",
|
||||||
"source-map-support": "^0.4.2",
|
"source-map-support": "^0.4.2",
|
||||||
"tsn": "^1.0.10",
|
"tsn": "^1.0.12",
|
||||||
"typedoc": "^0.4.4",
|
"typedoc": "^0.4.5",
|
||||||
"typescript": "^2.0.0-dev.20160630",
|
"typescript": "^2.0.0-dev.20160630",
|
||||||
"typings-global": "*"
|
"typings-global": "*"
|
||||||
},
|
},
|
||||||
|
@ -4,27 +4,20 @@ import paths = require("./npmts.paths");
|
|||||||
import {npmtsOra} from "./npmts.promisechain";
|
import {npmtsOra} from "./npmts.promisechain";
|
||||||
|
|
||||||
let removeDist = function(){
|
let removeDist = function(){
|
||||||
npmtsOra.text("cleaning " + "dist".yellow + " folder");
|
npmtsOra.text("cleaning dist folder");
|
||||||
return plugins.smartfile.fs.remove(paths.distDir);
|
return plugins.smartfile.fs.remove(paths.distDir);
|
||||||
};
|
};
|
||||||
|
|
||||||
let removeTypings = function(){
|
let removePages = function(){
|
||||||
let done = plugins.Q.defer();
|
npmtsOra.text("cleaning pages folder");
|
||||||
npmtsOra.text("cleaning " + "typings".yellow + " folder");
|
return plugins.smartfile.fs.remove(paths.pagesDir);
|
||||||
if(false){
|
|
||||||
//plugins.smartfile.fsaction.remove(paths.typingsDir)
|
|
||||||
// .then(done.resolve);
|
|
||||||
} else {
|
|
||||||
done.resolve();
|
|
||||||
}
|
|
||||||
return done.promise;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
export let run = function(configArg){
|
export let run = function(configArg){
|
||||||
npmtsOra.text("cleaning up from previous builds...");
|
npmtsOra.text("cleaning up from previous builds...");
|
||||||
let done = plugins.Q.defer();
|
let done = plugins.Q.defer();
|
||||||
removeDist()
|
removeDist()
|
||||||
.then(removeTypings)
|
.then(removePages)
|
||||||
.then(function(){
|
.then(function(){
|
||||||
plugins.beautylog.ok("Cleaned up from previous builds!");
|
plugins.beautylog.ok("Cleaned up from previous builds!");
|
||||||
done.resolve(configArg);
|
done.resolve(configArg);
|
||||||
|
@ -1,32 +0,0 @@
|
|||||||
import "typings-global";
|
|
||||||
import plugins = require("./npmts.plugins");
|
|
||||||
import paths = require("./npmts.paths");
|
|
||||||
import {npmtsOra} from "./npmts.promisechain";
|
|
||||||
export var run = function(argvArg){
|
|
||||||
let done = plugins.Q.defer();
|
|
||||||
npmtsOra.text("looking for npmextra.json");
|
|
||||||
let defaultConfig = {
|
|
||||||
mode: "default",
|
|
||||||
notest:false
|
|
||||||
};
|
|
||||||
if(argvArg.notest){
|
|
||||||
defaultConfig.notest = true;
|
|
||||||
};
|
|
||||||
let config = plugins.npmextra.dataFor({
|
|
||||||
toolName:"npmts",
|
|
||||||
defaultSettings:defaultConfig,
|
|
||||||
cwd:paths.cwd
|
|
||||||
});
|
|
||||||
switch (config.mode){
|
|
||||||
case "default":
|
|
||||||
case "custom":
|
|
||||||
plugins.beautylog.ok("mode is " + config.mode.yellow);
|
|
||||||
done.resolve(config);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
plugins.beautylog.error("mode " + config.mode.yellow + " not recognised!".red);
|
|
||||||
process.exit(1);
|
|
||||||
};
|
|
||||||
done.resolve(config);
|
|
||||||
return done.promise;
|
|
||||||
};
|
|
@ -1,36 +1,79 @@
|
|||||||
import "typings-global";
|
import "typings-global";
|
||||||
import plugins = require("./npmts.plugins");
|
import plugins = require("./npmts.plugins");
|
||||||
|
import paths = require("./npmts.paths");
|
||||||
import {npmtsOra} from "./npmts.promisechain";
|
import {npmtsOra} from "./npmts.promisechain";
|
||||||
|
|
||||||
export var run = function(configArg){
|
export type npmtsMode = "default" | "custom"
|
||||||
var done = plugins.Q.defer();
|
|
||||||
var config = configArg;
|
|
||||||
|
|
||||||
npmtsOra.text("now determining build options...");
|
export interface npmtsConfig {
|
||||||
|
argv:any,
|
||||||
|
coverageTreshold:number,
|
||||||
|
docs:boolean,
|
||||||
|
mode: npmtsMode,
|
||||||
|
test:boolean,
|
||||||
|
testTs:any,
|
||||||
|
ts:any,
|
||||||
|
tsOptions:any
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
export var run = function(argvArg){
|
||||||
|
let done = plugins.Q.defer();
|
||||||
|
let defaultConfig:npmtsConfig = {
|
||||||
|
argv:undefined,
|
||||||
|
coverageTreshold: 70,
|
||||||
|
docs: true,
|
||||||
|
mode:"default",
|
||||||
|
test:true,
|
||||||
|
testTs:{},
|
||||||
|
ts:{},
|
||||||
|
tsOptions: {}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// mix with configfile
|
||||||
|
npmtsOra.text("looking for npmextra.json");
|
||||||
|
let config:npmtsConfig = plugins.npmextra.dataFor({
|
||||||
|
toolName:"npmts",
|
||||||
|
defaultSettings:defaultConfig,
|
||||||
|
cwd:paths.cwd
|
||||||
|
});
|
||||||
|
|
||||||
|
// add argv
|
||||||
|
config.argv = argvArg;
|
||||||
|
|
||||||
|
// check mode
|
||||||
|
switch (config.mode){
|
||||||
|
case "default":
|
||||||
|
case "custom":
|
||||||
|
plugins.beautylog.ok("mode is " + config.mode);
|
||||||
|
done.resolve(config);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
plugins.beautylog.error(`mode not recognised!`);
|
||||||
|
process.exit(1);
|
||||||
|
};
|
||||||
|
|
||||||
//handle default mode
|
//handle default mode
|
||||||
if (config.mode == "default"){
|
if (config.mode == "default"){
|
||||||
config.typings = [
|
|
||||||
"./ts/typings.json"
|
|
||||||
];
|
|
||||||
config.ts = {
|
config.ts = {
|
||||||
["./ts/**/*.ts"]: "./dist/"
|
["./ts/**/*.ts"]: "./dist/"
|
||||||
};
|
};
|
||||||
config.testTs = {
|
config.testTs = {
|
||||||
["./test/test.ts"]: "./test/"
|
["./test/test.ts"]: "./test/"
|
||||||
};
|
};
|
||||||
config.test = ["./index.js"];
|
};
|
||||||
}
|
|
||||||
|
|
||||||
//check if config.tsOptions is available
|
|
||||||
config.tsOptions ? void(0) : config.tsOptions = {};
|
|
||||||
|
|
||||||
|
|
||||||
|
// mix with commandline
|
||||||
|
if(config.argv.notest){
|
||||||
|
config.test = false;
|
||||||
|
};
|
||||||
|
if(config.argv.nodocs){
|
||||||
|
config.docs = false;
|
||||||
|
};
|
||||||
|
|
||||||
config.coverageTreshold ? void(0) : config.coverageTreshold = 70;
|
|
||||||
|
|
||||||
// handle docs
|
|
||||||
config.docs ? void(0) : config.docs = {};
|
|
||||||
|
|
||||||
plugins.beautylog.ok("build options are ready!");
|
plugins.beautylog.ok("build options are ready!");
|
||||||
done.resolve(config);
|
done.resolve(config);
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import "typings-global";
|
import "typings-global";
|
||||||
import plugins = require("./npmts.plugins");
|
import plugins = require("./npmts.plugins");
|
||||||
|
|
||||||
//Npmts Paths
|
// NPMTS Paths
|
||||||
export let npmtsPackageRoot = plugins.path.join(__dirname,"../");
|
export let npmtsPackageRoot = plugins.path.join(__dirname,"../");
|
||||||
|
|
||||||
|
|
||||||
@ -11,11 +11,14 @@ export let cwd = process.cwd();
|
|||||||
// Directories
|
// Directories
|
||||||
export let tsDir = plugins.path.join(cwd,"ts/");
|
export let tsDir = plugins.path.join(cwd,"ts/");
|
||||||
export let distDir = plugins.path.join(cwd,"dist/");
|
export let distDir = plugins.path.join(cwd,"dist/");
|
||||||
export let docsDir = plugins.path.join(cwd,"docs/");
|
|
||||||
export let testDir = plugins.path.join(cwd,"test/");
|
export let testDir = plugins.path.join(cwd,"test/");
|
||||||
export let typingsDir = plugins.path.join(cwd,"ts/typings/");
|
export let typingsDir = plugins.path.join(cwd,"ts/typings/");
|
||||||
export let coverageDir = plugins.path.join(cwd,"coverage/");
|
export let coverageDir = plugins.path.join(cwd,"coverage/");
|
||||||
|
|
||||||
|
// Pages
|
||||||
|
export let pagesDir = plugins.path.join(cwd,"pages/");
|
||||||
|
export let pagesApiDir = plugins.path.join(pagesDir,"/api");
|
||||||
|
|
||||||
export let npmtsAssetsDir = plugins.path.join(__dirname,"../assets/");
|
export let npmtsAssetsDir = plugins.path.join(__dirname,"../assets/");
|
||||||
|
|
||||||
//Files
|
//Files
|
||||||
|
@ -8,7 +8,6 @@ import NpmtsAssets = require("./npmts.assets");
|
|||||||
import NpmtsCheck = require("./npmts.check");
|
import NpmtsCheck = require("./npmts.check");
|
||||||
import NpmtsClean = require("./npmts.clean");
|
import NpmtsClean = require("./npmts.clean");
|
||||||
import NpmtsCompile = require("./npmts.compile");
|
import NpmtsCompile = require("./npmts.compile");
|
||||||
import NpmtsConfigFile = require("./npmts.configfile");
|
|
||||||
import NpmtsTypeDoc = require("./npmts.typedoc");
|
import NpmtsTypeDoc = require("./npmts.typedoc");
|
||||||
import NpmtsOptions = require("./npmts.options");
|
import NpmtsOptions = require("./npmts.options");
|
||||||
import NpmtsTests = require("./npmts.tests");
|
import NpmtsTests = require("./npmts.tests");
|
||||||
@ -16,8 +15,7 @@ import NpmtsTests = require("./npmts.tests");
|
|||||||
export let promisechain = function(argvArg){
|
export let promisechain = function(argvArg){
|
||||||
let done = plugins.Q.defer();
|
let done = plugins.Q.defer();
|
||||||
npmtsOra.start();
|
npmtsOra.start();
|
||||||
NpmtsConfigFile.run(argvArg)
|
NpmtsOptions.run(argvArg)
|
||||||
.then(NpmtsOptions.run)
|
|
||||||
.then(NpmtsClean.run)
|
.then(NpmtsClean.run)
|
||||||
.then(NpmtsCheck.run)
|
.then(NpmtsCheck.run)
|
||||||
.then(NpmtsCompile.run)
|
.then(NpmtsCompile.run)
|
||||||
|
@ -66,7 +66,7 @@ let coverage = function(configArg){
|
|||||||
export let run = function(configArg) {
|
export let run = function(configArg) {
|
||||||
let done = plugins.Q.defer();
|
let done = plugins.Q.defer();
|
||||||
let config = configArg;
|
let config = configArg;
|
||||||
if(config.notest != true){
|
if(config.test === true){
|
||||||
npmtsOra.text("now starting tests");
|
npmtsOra.text("now starting tests");
|
||||||
plugins.beautylog.log(
|
plugins.beautylog.log(
|
||||||
"-------------------------------------------------------\n" +
|
"-------------------------------------------------------\n" +
|
||||||
|
@ -15,8 +15,8 @@ let genTypeDoc = function(configArg){
|
|||||||
includeDeclarations: true,
|
includeDeclarations: true,
|
||||||
|
|
||||||
// Output options (see typedoc docs)
|
// Output options (see typedoc docs)
|
||||||
out: paths.docsDir,
|
out: paths.pagesApiDir,
|
||||||
json: plugins.path.join(paths.docsDir,"file.json"),
|
json: plugins.path.join(paths.pagesApiDir, "file.json"),
|
||||||
|
|
||||||
// TypeDoc options (see typedoc docs)
|
// TypeDoc options (see typedoc docs)
|
||||||
name: "my-project",
|
name: "my-project",
|
||||||
@ -32,9 +32,13 @@ let genTypeDoc = function(configArg){
|
|||||||
|
|
||||||
export let run = function (configArg) {
|
export let run = function (configArg) {
|
||||||
let done = plugins.Q.defer();
|
let done = plugins.Q.defer();
|
||||||
|
if (configArg.docs) {
|
||||||
genTypeDoc(configArg)
|
genTypeDoc(configArg)
|
||||||
.then(() => {
|
.then(() => {
|
||||||
done.resolve(configArg);
|
done.resolve(configArg);
|
||||||
});
|
});
|
||||||
|
} else {
|
||||||
|
done.resolve(configArg);
|
||||||
|
};
|
||||||
return done.promise;
|
return done.promise;
|
||||||
};
|
};
|
Reference in New Issue
Block a user