Compare commits
74 Commits
Author | SHA1 | Date | |
---|---|---|---|
67db62e7d5 | |||
ddf76c31b9 | |||
6a0a53adda | |||
eb1a70ea70 | |||
c10ddd3c1e | |||
9c9f7ae1dc | |||
70245584d7 | |||
f11d7c6cb0 | |||
dc7980e619 | |||
686a428624 | |||
6772bb439c | |||
3acab250db | |||
ec90a006ce | |||
30ba0c99fd | |||
17a7749f23 | |||
3926a66d1d | |||
6eb5755aed | |||
165113f132 | |||
7ee9935a9a | |||
5128d450bc | |||
8708b1442d | |||
0e39dfecba | |||
b4e8accad6 | |||
1415d66ffb | |||
38e3eed003 | |||
466095ed26 | |||
3d8041fdde | |||
f021525f9e | |||
63fa2e84d4 | |||
af66bd8ff1 | |||
53f4e402f5 | |||
2f57c26b87 | |||
3e05c116f3 | |||
d2dbe40b50 | |||
835fba3452 | |||
d35cff7135 | |||
6bbfd8b8a5 | |||
9e6ab262ed | |||
58246c406d | |||
345df135b9 | |||
31e99a0035 | |||
8aa3823e65 | |||
d36a5f7751 | |||
6b1c7c4dc8 | |||
dbcfa977fd | |||
fda30f611a | |||
c1e43788a6 | |||
3a0efa37cc | |||
d238012b68 | |||
990fbaf785 | |||
aaa459e4b7 | |||
fbad295644 | |||
334d3c0c82 | |||
b9523d25e6 | |||
fdf3d14456 | |||
5a68e83abf | |||
def7dc65c8 | |||
649ca48d03 | |||
abc515c742 | |||
1eb2b727aa | |||
93a332ba50 | |||
109ba0b0ee | |||
ee3ef5d6e9 | |||
d5852ce85d | |||
f36dea3875 | |||
d36bf42f8b | |||
730c739c14 | |||
dd1f007246 | |||
41ca4805e6 | |||
68dcf1cca9 | |||
53ba4a64b3 | |||
fa8dc2bec5 | |||
1ef8a502e3 | |||
bbcb8e6b3f |
21
.gitignore
vendored
21
.gitignore
vendored
@ -1,7 +1,20 @@
|
|||||||
# gitzone standard
|
.nogit/
|
||||||
node_modules/
|
|
||||||
|
# artifacts
|
||||||
coverage/
|
coverage/
|
||||||
pages/
|
|
||||||
public/
|
public/
|
||||||
assets/output/
|
pages/
|
||||||
|
|
||||||
|
# installs
|
||||||
|
node_modules/
|
||||||
|
|
||||||
|
# caches
|
||||||
|
.yarn/
|
||||||
|
.cache/
|
||||||
|
.rpt2_cache
|
||||||
|
|
||||||
|
# builds
|
||||||
dist/
|
dist/
|
||||||
|
dist_*/
|
||||||
|
|
||||||
|
# custom
|
@ -1,16 +1,16 @@
|
|||||||
# gitzone standard
|
# gitzone ci_default
|
||||||
image: hosttoday/ht-docker-node:npmci
|
image: registry.gitlab.com/hosttoday/ht-docker-node:npmci
|
||||||
|
|
||||||
cache:
|
cache:
|
||||||
paths:
|
paths:
|
||||||
- .npmci_cache/
|
- .npmci_cache/
|
||||||
key: "$CI_BUILD_STAGE"
|
key: '$CI_BUILD_STAGE'
|
||||||
|
|
||||||
stages:
|
stages:
|
||||||
- security
|
- security
|
||||||
- test
|
- test
|
||||||
- release
|
- release
|
||||||
- metadata
|
- metadata
|
||||||
|
|
||||||
# ====================
|
# ====================
|
||||||
# security stage
|
# security stage
|
||||||
@ -20,53 +20,50 @@ mirror:
|
|||||||
script:
|
script:
|
||||||
- npmci git mirror
|
- npmci git mirror
|
||||||
tags:
|
tags:
|
||||||
|
- lossless
|
||||||
- docker
|
- docker
|
||||||
- notpriv
|
- notpriv
|
||||||
|
|
||||||
snyk:
|
audit:
|
||||||
|
image: registry.gitlab.com/hosttoday/ht-docker-node:npmci
|
||||||
stage: security
|
stage: security
|
||||||
script:
|
script:
|
||||||
- npmci command npm install -g snyk
|
- npmci npm prepare
|
||||||
- npmci command npm install --ignore-scripts
|
- npmci command npm install --ignore-scripts
|
||||||
- npmci command snyk test
|
- npmci command npm config set registry https://registry.npmjs.org
|
||||||
|
- npmci command npm audit --audit-level=high
|
||||||
tags:
|
tags:
|
||||||
|
- lossless
|
||||||
- docker
|
- docker
|
||||||
- notpriv
|
- notpriv
|
||||||
|
|
||||||
# ====================
|
# ====================
|
||||||
# test stage
|
# test stage
|
||||||
# ====================
|
# ====================
|
||||||
testLEGACY:
|
|
||||||
stage: test
|
|
||||||
script:
|
|
||||||
- npmci node install legacy
|
|
||||||
- npmci npm install
|
|
||||||
- npmci npm test
|
|
||||||
coverage: /\d+.?\d+?\%\s*coverage/
|
|
||||||
tags:
|
|
||||||
- docker
|
|
||||||
- notpriv
|
|
||||||
allow_failure: true
|
|
||||||
|
|
||||||
testLTS:
|
testStable:
|
||||||
stage: test
|
|
||||||
script:
|
|
||||||
- npmci node install lts
|
|
||||||
- npmci npm install
|
|
||||||
- npmci npm test
|
|
||||||
coverage: /\d+.?\d+?\%\s*coverage/
|
|
||||||
tags:
|
|
||||||
- docker
|
|
||||||
- notpriv
|
|
||||||
|
|
||||||
testSTABLE:
|
|
||||||
stage: test
|
stage: test
|
||||||
script:
|
script:
|
||||||
|
- npmci npm prepare
|
||||||
- npmci node install stable
|
- npmci node install stable
|
||||||
- npmci npm install
|
- npmci npm install
|
||||||
- npmci npm test
|
- npmci npm test
|
||||||
coverage: /\d+.?\d+?\%\s*coverage/
|
coverage: /\d+.?\d+?\%\s*coverage/
|
||||||
tags:
|
tags:
|
||||||
|
- lossless
|
||||||
|
- docker
|
||||||
|
- priv
|
||||||
|
|
||||||
|
testBuild:
|
||||||
|
stage: test
|
||||||
|
script:
|
||||||
|
- npmci npm prepare
|
||||||
|
- npmci node install stable
|
||||||
|
- npmci npm install
|
||||||
|
- npmci command npm run build
|
||||||
|
coverage: /\d+.?\d+?\%\s*coverage/
|
||||||
|
tags:
|
||||||
|
- lossless
|
||||||
- docker
|
- docker
|
||||||
- notpriv
|
- notpriv
|
||||||
|
|
||||||
@ -78,6 +75,7 @@ release:
|
|||||||
only:
|
only:
|
||||||
- tags
|
- tags
|
||||||
tags:
|
tags:
|
||||||
|
- lossless
|
||||||
- docker
|
- docker
|
||||||
- notpriv
|
- notpriv
|
||||||
|
|
||||||
@ -86,20 +84,14 @@ release:
|
|||||||
# ====================
|
# ====================
|
||||||
codequality:
|
codequality:
|
||||||
stage: metadata
|
stage: metadata
|
||||||
image: docker:stable
|
|
||||||
allow_failure: true
|
allow_failure: true
|
||||||
services:
|
|
||||||
- docker:stable-dind
|
|
||||||
script:
|
script:
|
||||||
- export SP_VERSION=$(echo "$CI_SERVER_VERSION" | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1-\2-stable/')
|
- npmci command npm install -g tslint typescript
|
||||||
- docker run
|
- npmci npm prepare
|
||||||
--env SOURCE_CODE="$PWD"
|
- npmci npm install
|
||||||
--volume "$PWD":/code
|
- npmci command "tslint -c tslint.json ./ts/**/*.ts"
|
||||||
--volume /var/run/docker.sock:/var/run/docker.sock
|
|
||||||
"registry.gitlab.com/gitlab-org/security-products/codequality:$SP_VERSION" /code
|
|
||||||
artifacts:
|
|
||||||
paths: [codeclimate.json]
|
|
||||||
tags:
|
tags:
|
||||||
|
- lossless
|
||||||
- docker
|
- docker
|
||||||
- priv
|
- priv
|
||||||
|
|
||||||
@ -110,17 +102,20 @@ trigger:
|
|||||||
only:
|
only:
|
||||||
- tags
|
- tags
|
||||||
tags:
|
tags:
|
||||||
|
- lossless
|
||||||
- docker
|
- docker
|
||||||
- notpriv
|
- notpriv
|
||||||
|
|
||||||
pages:
|
pages:
|
||||||
image: hosttoday/ht-docker-node:npmci
|
|
||||||
stage: metadata
|
stage: metadata
|
||||||
script:
|
script:
|
||||||
- npmci command npm install -g typedoc typescript
|
- npmci node install lts
|
||||||
|
- npmci command npm install -g @gitzone/tsdoc
|
||||||
|
- npmci npm prepare
|
||||||
- npmci npm install
|
- npmci npm install
|
||||||
- npmci command typedoc --module "commonjs" --target "ES2016" --out public/ ts/
|
- npmci command tsdoc
|
||||||
tags:
|
tags:
|
||||||
|
- lossless
|
||||||
- docker
|
- docker
|
||||||
- notpriv
|
- notpriv
|
||||||
only:
|
only:
|
||||||
@ -130,13 +125,3 @@ pages:
|
|||||||
paths:
|
paths:
|
||||||
- public
|
- public
|
||||||
allow_failure: true
|
allow_failure: true
|
||||||
|
|
||||||
windowsCompatibility:
|
|
||||||
image: stefanscherer/node-windows:10-build-tools
|
|
||||||
stage: metadata
|
|
||||||
script:
|
|
||||||
- npm install & npm test
|
|
||||||
coverage: /\d+.?\d+?\%\s*coverage/
|
|
||||||
tags:
|
|
||||||
- windows
|
|
||||||
allow_failure: true
|
|
||||||
|
29
.vscode/launch.json
vendored
Normal file
29
.vscode/launch.json
vendored
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
{
|
||||||
|
"version": "0.2.0",
|
||||||
|
"configurations": [
|
||||||
|
{
|
||||||
|
"name": "current file",
|
||||||
|
"type": "node",
|
||||||
|
"request": "launch",
|
||||||
|
"args": [
|
||||||
|
"${relativeFile}"
|
||||||
|
],
|
||||||
|
"runtimeArgs": ["-r", "@gitzone/tsrun"],
|
||||||
|
"cwd": "${workspaceRoot}",
|
||||||
|
"protocol": "inspector",
|
||||||
|
"internalConsoleOptions": "openOnSessionStart"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "test.ts",
|
||||||
|
"type": "node",
|
||||||
|
"request": "launch",
|
||||||
|
"args": [
|
||||||
|
"test/test.ts"
|
||||||
|
],
|
||||||
|
"runtimeArgs": ["-r", "@gitzone/tsrun"],
|
||||||
|
"cwd": "${workspaceRoot}",
|
||||||
|
"protocol": "inspector",
|
||||||
|
"internalConsoleOptions": "openOnSessionStart"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
26
.vscode/settings.json
vendored
Normal file
26
.vscode/settings.json
vendored
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
{
|
||||||
|
"json.schemas": [
|
||||||
|
{
|
||||||
|
"fileMatch": ["/npmextra.json"],
|
||||||
|
"schema": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"npmci": {
|
||||||
|
"type": "object",
|
||||||
|
"description": "settings for npmci"
|
||||||
|
},
|
||||||
|
"gitzone": {
|
||||||
|
"type": "object",
|
||||||
|
"description": "settings for gitzone",
|
||||||
|
"properties": {
|
||||||
|
"projectType": {
|
||||||
|
"type": "string",
|
||||||
|
"enum": ["website", "element", "service", "npm"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
70
README.md
70
README.md
@ -1,70 +0,0 @@
|
|||||||
# tsn
|
|
||||||
|
|
||||||
## Availabililty
|
|
||||||
|
|
||||||
[](https://www.npmjs.com/package/tsn)
|
|
||||||
[](https://gitlab.com/pushrocks/tsn)
|
|
||||||
[](https://github.com/pushrocks/tsn)
|
|
||||||
[](https://pushrocks.gitlab.io/tsn/)
|
|
||||||
|
|
||||||
## Status for master
|
|
||||||
|
|
||||||
[](https://gitlab.com/pushrocks/tsn/commits/master)
|
|
||||||
[](https://gitlab.com/pushrocks/tsn/commits/master)
|
|
||||||
[](https://david-dm.org/pushrocks/tsn)
|
|
||||||
[](https://www.bithound.io/github/pushrocks/tsn/master/dependencies/npm)
|
|
||||||
[](https://www.bithound.io/github/pushrocks/tsn)
|
|
||||||
[](https://nodejs.org/dist/latest-v6.x/docs/api/)
|
|
||||||
[](https://nodejs.org/dist/latest-v6.x/docs/api/)
|
|
||||||
[](http://standardjs.com/)
|
|
||||||
|
|
||||||
## Usage
|
|
||||||
|
|
||||||
Tsn uses the **next** tagged npm version of typescript
|
|
||||||
|
|
||||||
```typescript
|
|
||||||
import * as tsn from 'tsn';
|
|
||||||
|
|
||||||
let myGlobStringObject = {
|
|
||||||
'./myTsFolder/**/*.ts': './myDestinationFolder/',
|
|
||||||
'./someOtherTsFolder/**/*.ts': './myOtherDestinationFolder/'
|
|
||||||
};
|
|
||||||
|
|
||||||
let tsOptions = {
|
|
||||||
target: tsn.ScriptTarget.ES2015,
|
|
||||||
module: tsn.ModuleKind.CommonJS
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
note: since this only works in code, here are the target numbers
|
|
||||||
enum ScriptTarget {
|
|
||||||
ES3 = 0,
|
|
||||||
ES5 = 1,
|
|
||||||
ES2015 = 2,
|
|
||||||
ES2016 = 3,
|
|
||||||
ES2017 = 4,
|
|
||||||
ESNext = 5,
|
|
||||||
Latest = 5,
|
|
||||||
}
|
|
||||||
|
|
||||||
and here are the module kinds
|
|
||||||
enum ModuleKind {
|
|
||||||
None = 0,
|
|
||||||
CommonJS = 1,
|
|
||||||
AMD = 2,
|
|
||||||
UMD = 3,
|
|
||||||
System = 4,
|
|
||||||
ES2015 = 5,
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
let myCwd = process.cwd();
|
|
||||||
|
|
||||||
tsn.compileGlobStringObject(
|
|
||||||
myGlobStringObject, // the glob string object describing from where to compile what to where
|
|
||||||
tsOptions, // the options for TypeScript
|
|
||||||
myCwd // a custom cwd, optional, defaults to process.cwd()
|
|
||||||
);
|
|
||||||
```
|
|
||||||
|
|
||||||
[](https://push.rocks)
|
|
5
cli.js
5
cli.js
@ -1,3 +1,4 @@
|
|||||||
#!/usr/bin/env node
|
#!/usr/bin/env node
|
||||||
process.env.CLI_CALL_TSBUILD = 'true'
|
process.env.CLI_CALL = 'true';
|
||||||
var index = require("./dist/index.js");
|
const cliTool = require('./dist_ts/index');
|
||||||
|
cliTool.runCli();
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
#!/usr/bin/env node
|
#!/usr/bin/env node
|
||||||
process.env.CLI_CALL_TSBUILD = 'true';
|
process.env.CLI_CALL = 'true';
|
||||||
require('@gitzone/tsrun');
|
require('@gitzone/tsrun');
|
||||||
require('./ts/index');
|
const cliTool = require('./ts/index');
|
||||||
|
cliTool.runCli();
|
||||||
|
@ -2,5 +2,16 @@
|
|||||||
"npmci": {
|
"npmci": {
|
||||||
"npmGlobalTools": [],
|
"npmGlobalTools": [],
|
||||||
"npmAccessLevel": "public"
|
"npmAccessLevel": "public"
|
||||||
|
},
|
||||||
|
"gitzone": {
|
||||||
|
"projectType": "npm",
|
||||||
|
"module": {
|
||||||
|
"githost": "gitlab.com",
|
||||||
|
"gitscope": "gitzone",
|
||||||
|
"gitrepo": "tsbuild",
|
||||||
|
"shortDescription": "TypeScript nightly to easily make use of latest features",
|
||||||
|
"npmPackagename": "@gitzone/tsbuild",
|
||||||
|
"license": "MIT"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
3435
package-lock.json
generated
3435
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
45
package.json
45
package.json
@ -1,16 +1,17 @@
|
|||||||
{
|
{
|
||||||
"name": "@gitzone/tsbuild",
|
"name": "@gitzone/tsbuild",
|
||||||
"version": "2.0.22",
|
"version": "2.1.41",
|
||||||
"private": false,
|
"private": false,
|
||||||
"description": "TypeScript nightly to easily make use of latest features",
|
"description": "TypeScript nightly to easily make use of latest features",
|
||||||
"main": "dist/index.js",
|
"main": "dist_ts/index.js",
|
||||||
"typings": "dist/index.d.ts",
|
"typings": "dist_ts/index.d.ts",
|
||||||
"bin": {
|
"bin": {
|
||||||
"tsbuild": "cli.js"
|
"tsbuild": "./cli.js"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"test": "tsrun test/test.ts",
|
"test": "tsrun test/test.ts",
|
||||||
"build": "node cli.ts.js"
|
"testCustom": "node cli.ts.js custom ts_web",
|
||||||
|
"build": "node cli.ts.js --web"
|
||||||
},
|
},
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
@ -26,15 +27,31 @@
|
|||||||
},
|
},
|
||||||
"homepage": "https://gitlab.com/pushrocks/tsn#README",
|
"homepage": "https://gitlab.com/pushrocks/tsn#README",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@pushrocks/smartfile": "^6.0.6",
|
"@pushrocks/early": "^3.0.6",
|
||||||
"@pushrocks/smartlog": "^2.0.1",
|
"@pushrocks/smartcli": "^3.0.14",
|
||||||
"@pushrocks/smartpath": "^4.0.1",
|
"@pushrocks/smartfile": "^9.0.6",
|
||||||
"@pushrocks/smartpromise": "^2.0.5",
|
"@pushrocks/smartlog": "^2.0.44",
|
||||||
"typescript": "^3.0.1"
|
"@pushrocks/smartpath": "^4.0.3",
|
||||||
|
"@pushrocks/smartpromise": "^3.1.7",
|
||||||
|
"typescript": "4.7.0-dev.20220311"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@gitzone/tsrun": "^1.1.11",
|
"@gitzone/tsrun": "1.2.18",
|
||||||
"@pushrocks/tapbundle": "^3.0.1",
|
"@pushrocks/tapbundle": "^4.0.8",
|
||||||
"@types/node": "^10.5.7"
|
"@types/node": "^17.0.21",
|
||||||
}
|
"tslint": "^6.1.3",
|
||||||
|
"tslint-config-prettier": "^1.18.0"
|
||||||
|
},
|
||||||
|
"files": [
|
||||||
|
"ts/**/*",
|
||||||
|
"ts_web/**/*",
|
||||||
|
"dist/**/*",
|
||||||
|
"dist_*/**/*",
|
||||||
|
"dist_ts/**/*",
|
||||||
|
"dist_ts_web/**/*",
|
||||||
|
"assets/**/*",
|
||||||
|
"cli.js",
|
||||||
|
"npmextra.json",
|
||||||
|
"readme.md"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
79
readme.md
Normal file
79
readme.md
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
# @gitzone/tsbuild
|
||||||
|
TypeScript nightly to easily make use of latest features
|
||||||
|
|
||||||
|
## Availabililty and Links
|
||||||
|
* [npmjs.org (npm package)](https://www.npmjs.com/package/@gitzone/tsbuild)
|
||||||
|
* [gitlab.com (source)](https://gitlab.com/gitzone/tsbuild)
|
||||||
|
* [github.com (source mirror)](https://github.com/gitzone/tsbuild)
|
||||||
|
* [docs (typedoc)](https://gitzone.gitlab.io/tsbuild/)
|
||||||
|
|
||||||
|
## Status for master
|
||||||
|
[](https://gitlab.com/gitzone/tsbuild/commits/master)
|
||||||
|
[](https://gitlab.com/gitzone/tsbuild/commits/master)
|
||||||
|
[](https://www.npmjs.com/package/@gitzone/tsbuild)
|
||||||
|
[](https://snyk.io/test/npm/@gitzone/tsbuild)
|
||||||
|
[](https://nodejs.org/dist/latest-v10.x/docs/api/)
|
||||||
|
[](https://nodejs.org/dist/latest-v10.x/docs/api/)
|
||||||
|
[](https://prettier.io/)
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
Tsn uses the **next** tagged npm version of typescript
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
import * as tsn from 'tsn';
|
||||||
|
|
||||||
|
let myGlobStringObject = {
|
||||||
|
'./myTsFolder/**/*.ts': './myDestinationFolder/',
|
||||||
|
'./someOtherTsFolder/**/*.ts': './myOtherDestinationFolder/'
|
||||||
|
};
|
||||||
|
|
||||||
|
let tsOptions = {
|
||||||
|
target: tsn.ScriptTarget.ES2015,
|
||||||
|
module: tsn.ModuleKind.CommonJS
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
note: since this only works in code, here are the target numbers
|
||||||
|
enum ScriptTarget {
|
||||||
|
ES3 = 0,
|
||||||
|
ES5 = 1,
|
||||||
|
ES2015 = 2,
|
||||||
|
ES2016 = 3,
|
||||||
|
ES2017 = 4,
|
||||||
|
ESNext = 5,
|
||||||
|
Latest = 5,
|
||||||
|
}
|
||||||
|
|
||||||
|
and here are the module kinds
|
||||||
|
enum ModuleKind {
|
||||||
|
None = 0,
|
||||||
|
CommonJS = 1,
|
||||||
|
AMD = 2,
|
||||||
|
UMD = 3,
|
||||||
|
System = 4,
|
||||||
|
ES2015 = 5,
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
let myCwd = process.cwd();
|
||||||
|
|
||||||
|
tsn.compileGlobStringObject(
|
||||||
|
myGlobStringObject, // the glob string object describing from where to compile what to where
|
||||||
|
tsOptions, // the options for TypeScript
|
||||||
|
myCwd // a custom cwd, optional, defaults to process.cwd()
|
||||||
|
);
|
||||||
|
```
|
||||||
|
|
||||||
|
[](https://push.rocks)
|
||||||
|
|
||||||
|
## Contribution
|
||||||
|
|
||||||
|
We are always happy for code contributions. If you are not the code contributing type that is ok. Still, maintaining Open Source repositories takes considerable time and thought. If you like the quality of what we do and our modules are useful to you we would appreciate a little monthly contribution: You can [contribute one time](https://lossless.link/contribute-onetime) or [contribute monthly](https://lossless.link/contribute). :)
|
||||||
|
|
||||||
|
For further information read the linked docs at the top of this readme.
|
||||||
|
|
||||||
|
> MIT licensed | **©** [Lossless GmbH](https://lossless.gmbh)
|
||||||
|
| By using this npm module you agree to our [privacy policy](https://lossless.gmbH/privacy)
|
||||||
|
|
||||||
|
[](https://maintainedby.lossless.com)
|
6
test/assets/output/tocompile.d.ts
vendored
6
test/assets/output/tocompile.d.ts
vendored
@ -1,5 +1 @@
|
|||||||
declare class test2 {
|
export {};
|
||||||
test: string[];
|
|
||||||
constructor();
|
|
||||||
}
|
|
||||||
declare const run: () => Promise<string>;
|
|
||||||
|
@ -1,20 +1,17 @@
|
|||||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
||||||
return new (P || (P = Promise))(function (resolve, reject) {
|
|
||||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
||||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
||||||
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
|
|
||||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
||||||
});
|
|
||||||
};
|
|
||||||
console.log('test');
|
console.log('test');
|
||||||
console.log('test2');
|
console.log('test2');
|
||||||
|
import * as early from '@pushrocks/early';
|
||||||
|
early.start();
|
||||||
|
early.stop();
|
||||||
|
import { anExportedString } from './tocompile2';
|
||||||
|
console.log(anExportedString);
|
||||||
class test2 {
|
class test2 {
|
||||||
constructor() {
|
constructor() {
|
||||||
this.test = [];
|
this.test = [];
|
||||||
console.log('hi');
|
console.log('hi');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
const run = () => __awaiter(this, void 0, void 0, function* () {
|
const run = async () => {
|
||||||
return 'hi';
|
return 'hi';
|
||||||
});
|
};
|
||||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9jb21waWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdG9jb21waWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUEsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNwQixPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ3JCLE1BQU0sS0FBSztJQUVUO1FBREEsU0FBSSxHQUFhLEVBQUUsQ0FBQztRQUVsQixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BCLENBQUM7Q0FDRjtBQUVELE1BQU0sR0FBRyxHQUFHLEdBQTBCLEVBQUU7SUFDdEMsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDLENBQUEsQ0FBQyJ9
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9jb21waWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdG9jb21waWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDcEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUVyQixPQUFPLEtBQUssS0FBSyxNQUFNLGtCQUFrQixDQUFDO0FBRTFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztBQUNkLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUViLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUM5QyxPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUM7QUFFOUIsTUFBTSxLQUFLO0lBRVQ7UUFEQSxTQUFJLEdBQWEsRUFBRSxDQUFDO1FBRWxCLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEIsQ0FBQztDQUNGO0FBRUQsTUFBTSxHQUFHLEdBQUcsS0FBSyxJQUFxQixFQUFFO0lBQ3RDLE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyxDQUFDIn0=
|
1
test/assets/output/tocompile2.d.ts
vendored
1
test/assets/output/tocompile2.d.ts
vendored
@ -0,0 +1 @@
|
|||||||
|
export declare const anExportedString = "exported string";
|
||||||
|
@ -1,2 +1,3 @@
|
|||||||
console.log('hello');
|
console.log('hello');
|
||||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9jb21waWxlMi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RvY29tcGlsZTIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyJ9
|
export const anExportedString = 'exported string';
|
||||||
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9jb21waWxlMi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RvY29tcGlsZTIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUNyQixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxpQkFBaUIsQ0FBQyJ9
|
@ -1,5 +1,14 @@
|
|||||||
console.log('test');
|
console.log('test');
|
||||||
console.log('test2');
|
console.log('test2');
|
||||||
|
|
||||||
|
import * as early from '@pushrocks/early';
|
||||||
|
|
||||||
|
early.start();
|
||||||
|
early.stop();
|
||||||
|
|
||||||
|
import {anExportedString} from './tocompile2';
|
||||||
|
console.log(anExportedString);
|
||||||
|
|
||||||
class test2 {
|
class test2 {
|
||||||
test: string[] = [];
|
test: string[] = [];
|
||||||
constructor() {
|
constructor() {
|
||||||
|
@ -1 +1,2 @@
|
|||||||
console.log('hello');
|
console.log('hello');
|
||||||
|
export const anExportedString = 'exported string';
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import { tap, expect } from '@pushrocks/tapbundle';
|
import { tap, expect, expectAsync } from '@pushrocks/tapbundle';
|
||||||
|
|
||||||
import * as tsn from '../ts/index';
|
import * as tsbuild from '../ts/index';
|
||||||
|
|
||||||
let assetfiles: string[] = ['./test/assets/tocompile.ts', './test/assets/tocompile2.ts'];
|
let assetfiles: string[] = ['./test/assets/tocompile.ts', './test/assets/tocompile2.ts'];
|
||||||
|
|
||||||
@ -9,11 +9,11 @@ let assetfiles2 = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
tap.test('should convert files from an array with single files to output', async tools => {
|
tap.test('should convert files from an array with single files to output', async tools => {
|
||||||
tsn.compileFileArray(assetfiles, { outDir: './test/assets/output' });
|
tsbuild.compileFileArray(assetfiles, { outDir: './test/assets/output' });
|
||||||
});
|
});
|
||||||
|
|
||||||
tap.test('should convert files from an array with single files to output', async tools => {
|
tap.test('should convert files from an array with single files to output', async tools => {
|
||||||
tsn.compileGlobStringObject(assetfiles2);
|
tsbuild.compileGlobStringObject(assetfiles2);
|
||||||
});
|
});
|
||||||
|
|
||||||
tap.start();
|
tap.start();
|
||||||
|
12
ts/index.ts
12
ts/index.ts
@ -1,9 +1,5 @@
|
|||||||
|
import * as early from '@pushrocks/early';
|
||||||
|
early.start('tsbuild');
|
||||||
export * from './tsbuild.exports';
|
export * from './tsbuild.exports';
|
||||||
|
export * from './tsbuild.cli';
|
||||||
import * as tsbuild from './tsbuild.exports';
|
early.stop();
|
||||||
|
|
||||||
if (process.env.CLI_CALL_TSBUILD === 'true') {
|
|
||||||
tsbuild.compileGlobStringObject({
|
|
||||||
'./ts/**/*.ts': './dist'
|
|
||||||
});
|
|
||||||
}
|
|
@ -12,21 +12,43 @@ export const compilerOptionsDefault: CompilerOptions = {
|
|||||||
experimentalDecorators: true,
|
experimentalDecorators: true,
|
||||||
inlineSourceMap: true,
|
inlineSourceMap: true,
|
||||||
noEmitOnError: true,
|
noEmitOnError: true,
|
||||||
outDir: 'dist/',
|
outDir: 'dist_ts/',
|
||||||
module: plugins.typescript.ModuleKind.CommonJS,
|
module: plugins.typescript.ModuleKind.CommonJS,
|
||||||
lib: ['lib.es2016.d.ts', 'lib.es2017.d.ts'],
|
moduleResolution: plugins.typescript.ModuleResolutionKind.Node12,
|
||||||
|
lib: [],
|
||||||
noImplicitAny: false,
|
noImplicitAny: false,
|
||||||
target: plugins.typescript.ScriptTarget.ES2015
|
esModuleInterop: true,
|
||||||
|
target: plugins.typescript.ScriptTarget.ES2020,
|
||||||
|
importsNotUsedAsValues: plugins.typescript.ImportsNotUsedAsValues.Preserve
|
||||||
|
};
|
||||||
|
|
||||||
|
export const compilerOptionsWebDefault: CompilerOptions = {
|
||||||
|
...compilerOptionsDefault,
|
||||||
|
lib: [...compilerOptionsDefault.lib, 'lib.dom.d.ts']
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* merges compilerOptions with the default compiler options
|
* merges compilerOptions with the default compiler options
|
||||||
*/
|
*/
|
||||||
export const mergeCompilerOptions = function(customTsOptions: CompilerOptions): CompilerOptions {
|
export const mergeCompilerOptions = (
|
||||||
|
customTsOptions: CompilerOptions,
|
||||||
|
argvArg?: any
|
||||||
|
): CompilerOptions => {
|
||||||
|
const defaultOptionsToMerge = (() => {
|
||||||
|
if (argvArg && argvArg.web) {
|
||||||
|
return compilerOptionsWebDefault;
|
||||||
|
} else {
|
||||||
|
return compilerOptionsDefault;
|
||||||
|
}
|
||||||
|
})();
|
||||||
|
|
||||||
// create merged options
|
// create merged options
|
||||||
let mergedOptions: CompilerOptions = {
|
const mergedOptions: CompilerOptions = {
|
||||||
...compilerOptionsDefault,
|
...defaultOptionsToMerge,
|
||||||
...customTsOptions
|
...customTsOptions,
|
||||||
|
...argvArg && argvArg.skiplibcheck ? {
|
||||||
|
skipLibCheck: true
|
||||||
|
} : {},
|
||||||
};
|
};
|
||||||
|
|
||||||
return mergedOptions;
|
return mergedOptions;
|
||||||
@ -37,25 +59,26 @@ export const mergeCompilerOptions = function(customTsOptions: CompilerOptions):
|
|||||||
*/
|
*/
|
||||||
export const compiler = (
|
export const compiler = (
|
||||||
fileNames: string[],
|
fileNames: string[],
|
||||||
options: plugins.typescript.CompilerOptions
|
options: plugins.typescript.CompilerOptions,
|
||||||
|
argvArg?: any
|
||||||
): Promise<any[]> => {
|
): Promise<any[]> => {
|
||||||
console.log(`Compiling ${fileNames.length} files...`);
|
console.log(`Compiling ${fileNames.length} files...`);
|
||||||
let done = plugins.smartpromise.defer<any[]>();
|
const done = plugins.smartpromise.defer<any[]>();
|
||||||
let program = plugins.typescript.createProgram(fileNames, options);
|
const program = plugins.typescript.createProgram(fileNames, options);
|
||||||
let emitResult = program.emit();
|
const emitResult = program.emit();
|
||||||
|
|
||||||
// implement check only
|
// implement check only
|
||||||
/*let emitResult = program.emit(undefined,(args) => {
|
/*let emitResult = program.emit(undefined,(args) => {
|
||||||
console.log(args)
|
console.log(args)
|
||||||
});*/
|
});*/
|
||||||
|
|
||||||
let allDiagnostics = plugins.typescript
|
const allDiagnostics = plugins.typescript
|
||||||
.getPreEmitDiagnostics(program)
|
.getPreEmitDiagnostics(program)
|
||||||
.concat(emitResult.diagnostics);
|
.concat(emitResult.diagnostics);
|
||||||
allDiagnostics.forEach(diagnostic => {
|
allDiagnostics.forEach(diagnostic => {
|
||||||
if (diagnostic.file) {
|
if (diagnostic.file) {
|
||||||
let { line, character } = diagnostic.file.getLineAndCharacterOfPosition(diagnostic.start!);
|
const { line, character } = diagnostic.file.getLineAndCharacterOfPosition(diagnostic.start!);
|
||||||
let message = plugins.typescript.flattenDiagnosticMessageText(diagnostic.messageText, '\n');
|
const message = plugins.typescript.flattenDiagnosticMessageText(diagnostic.messageText, '\n');
|
||||||
console.log(`${diagnostic.file.fileName} (${line + 1},${character + 1}): ${message}`);
|
console.log(`${diagnostic.file.fileName} (${line + 1},${character + 1}): ${message}`);
|
||||||
} else {
|
} else {
|
||||||
console.log(
|
console.log(
|
||||||
@ -64,7 +87,7 @@ export const compiler = (
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
let exitCode = emitResult.emitSkipped ? 1 : 0;
|
const exitCode = emitResult.emitSkipped ? 1 : 0;
|
||||||
if (exitCode === 0) {
|
if (exitCode === 0) {
|
||||||
console.log('TypeScript emit succeeded!');
|
console.log('TypeScript emit succeeded!');
|
||||||
done.resolve(emitResult.emittedFiles);
|
done.resolve(emitResult.emittedFiles);
|
||||||
|
46
ts/tsbuild.cli.ts
Normal file
46
ts/tsbuild.cli.ts
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
import * as plugins from './tsbuild.plugins';
|
||||||
|
import * as tsbuild from './tsbuild.exports';
|
||||||
|
|
||||||
|
export const runCli = async () => {
|
||||||
|
const tsbuildCli = new plugins.smartcli.Smartcli();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* the standard task compiles anything in ts/ directory to dist directory
|
||||||
|
*/
|
||||||
|
tsbuildCli.standardTask().subscribe(async (argvArg) => {
|
||||||
|
tsbuild.compileGlobStringObject(
|
||||||
|
{
|
||||||
|
'./ts/**/*.ts': './dist_ts',
|
||||||
|
},
|
||||||
|
{},
|
||||||
|
process.cwd(),
|
||||||
|
argvArg
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* the custom command compiles any customDir to dist_customDir
|
||||||
|
*/
|
||||||
|
tsbuildCli.addCommand('custom').subscribe(async (argvArg) => {
|
||||||
|
const listedDirectories = argvArg._;
|
||||||
|
listedDirectories.shift();
|
||||||
|
const compilationCommandObject: { [key: string]: string } = {};
|
||||||
|
for (const directory of listedDirectories) {
|
||||||
|
compilationCommandObject[`./${directory}/**/*.ts`] = `./dist_${directory}`;
|
||||||
|
}
|
||||||
|
await tsbuild.compileGlobStringObject(compilationCommandObject, {}, process.cwd(), argvArg);
|
||||||
|
});
|
||||||
|
|
||||||
|
tsbuildCli.addCommand('element').subscribe(async (argvArg) => {
|
||||||
|
await tsbuild.compileGlobStringObject(
|
||||||
|
{
|
||||||
|
'./ts_web/**/*.ts': 'dist_ts_web',
|
||||||
|
},
|
||||||
|
{},
|
||||||
|
process.cwd(),
|
||||||
|
{ web: true }
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
tsbuildCli.startParse();
|
||||||
|
};
|
@ -8,9 +8,10 @@ export * from './tsbuild.classes.compiler';
|
|||||||
*/
|
*/
|
||||||
export let compileFileArray = (
|
export let compileFileArray = (
|
||||||
fileStringArrayArg: string[],
|
fileStringArrayArg: string[],
|
||||||
compilerOptionsArg: CompilerOptions = {}
|
compilerOptionsArg: CompilerOptions = {},
|
||||||
|
argvArg?: any
|
||||||
): Promise<any[]> => {
|
): Promise<any[]> => {
|
||||||
return compiler(fileStringArrayArg, mergeCompilerOptions(compilerOptionsArg));
|
return compiler(fileStringArrayArg, mergeCompilerOptions(compilerOptionsArg, argvArg), argvArg);
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -23,19 +24,21 @@ export let compileFileArray = (
|
|||||||
export let compileGlobStringObject = async (
|
export let compileGlobStringObject = async (
|
||||||
globStringObjectArg: any,
|
globStringObjectArg: any,
|
||||||
tsOptionsArg: CompilerOptions = {},
|
tsOptionsArg: CompilerOptions = {},
|
||||||
cwdArg: string = process.cwd()
|
cwdArg: string = process.cwd(),
|
||||||
|
argvArg?: any
|
||||||
) => {
|
) => {
|
||||||
let compiledFiles = [];
|
let compiledFiles: plugins.smartfile.Smartfile[] = [];
|
||||||
for (let keyArg in globStringObjectArg) {
|
for (const keyArg in globStringObjectArg) {
|
||||||
|
if (globStringObjectArg[keyArg]) {
|
||||||
console.log(
|
console.log(
|
||||||
`TypeScript assignment: transpile from ${keyArg} to ${globStringObjectArg[keyArg]}`
|
`TypeScript assignment: transpile from ${keyArg} to ${globStringObjectArg[keyArg]}`
|
||||||
);
|
);
|
||||||
const fileTreeArray = await plugins.smartfile.fs.listFileTree(cwdArg, keyArg);
|
const fileTreeArray = await plugins.smartfile.fs.listFileTree(cwdArg, keyArg);
|
||||||
let absoluteFilePathArray: string[] = plugins.smartpath.transform.toAbsolute(
|
const absoluteFilePathArray: string[] = plugins.smartpath.transform.toAbsolute(
|
||||||
fileTreeArray,
|
fileTreeArray,
|
||||||
cwdArg
|
cwdArg
|
||||||
);
|
);
|
||||||
let destDir: string = plugins.smartpath.transform.toAbsolute(
|
const destDir: string = plugins.smartpath.transform.toAbsolute(
|
||||||
globStringObjectArg[keyArg],
|
globStringObjectArg[keyArg],
|
||||||
cwdArg
|
cwdArg
|
||||||
);
|
);
|
||||||
@ -45,8 +48,9 @@ export let compileGlobStringObject = async (
|
|||||||
};
|
};
|
||||||
compiledFiles = compiledFiles.concat(
|
compiledFiles = compiledFiles.concat(
|
||||||
compiledFiles,
|
compiledFiles,
|
||||||
await compileFileArray(absoluteFilePathArray, tsOptionsArg)
|
await compileFileArray(absoluteFilePathArray, tsOptionsArg, argvArg)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
return compiledFiles;
|
return compiledFiles;
|
||||||
};
|
};
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
|
import * as smartcli from '@pushrocks/smartcli';
|
||||||
import * as smartfile from '@pushrocks/smartfile';
|
import * as smartfile from '@pushrocks/smartfile';
|
||||||
import * as smartpath from '@pushrocks/smartpath';
|
import * as smartpath from '@pushrocks/smartpath';
|
||||||
import * as smartpromise from '@pushrocks/smartpromise';
|
import * as smartpromise from '@pushrocks/smartpromise';
|
||||||
import * as typescript from 'typescript';
|
import typescript from 'typescript';
|
||||||
|
|
||||||
export { smartfile, smartpath, smartpromise, typescript };
|
export { smartcli, smartfile, smartpath, smartpromise, typescript };
|
||||||
|
@ -1,14 +0,0 @@
|
|||||||
{
|
|
||||||
"compilerOptions": {
|
|
||||||
"outDir": "dist/",
|
|
||||||
"module": "commonjs",
|
|
||||||
"target": "es2015",
|
|
||||||
"lib":[
|
|
||||||
"es2016",
|
|
||||||
"es2017"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"include": [
|
|
||||||
"ts/**/*.ts"
|
|
||||||
]
|
|
||||||
}
|
|
16
tslint.json
16
tslint.json
@ -1,3 +1,17 @@
|
|||||||
{
|
{
|
||||||
"extends": "tslint-config-standard"
|
"extends": ["tslint:latest", "tslint-config-prettier"],
|
||||||
|
"rules": {
|
||||||
|
"semicolon": [true, "always"],
|
||||||
|
"no-console": false,
|
||||||
|
"ordered-imports": false,
|
||||||
|
"object-literal-sort-keys": false,
|
||||||
|
"member-ordering": {
|
||||||
|
"options":{
|
||||||
|
"order": [
|
||||||
|
"static-method"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"defaultSeverity": "warning"
|
||||||
}
|
}
|
Reference in New Issue
Block a user