Compare commits
86 Commits
Author | SHA1 | Date | |
---|---|---|---|
b182fa5c0a | |||
03d4996284 | |||
6b2d2c9cc3 | |||
e9dc5ae444 | |||
24574bdb4d | |||
2fe98bec22 | |||
87b6a4efb2 | |||
dc81d99ac3 | |||
5d0c9b0326 | |||
f27c27bd31 | |||
67e42cc0bd | |||
4a71b92868 | |||
c251bce006 | |||
f83b872f31 | |||
4e93832683 | |||
4d37e880a3 | |||
b7e6412b7a | |||
113717886c | |||
98b4d4bc5b | |||
83f496f0ca | |||
662b7d4e6c | |||
ab43ea0a10 | |||
0561f655cb | |||
b0b1be70ab | |||
dda03bad45 | |||
a0b9f8d8f3 | |||
da823e51d5 | |||
b68aa06941 | |||
f5ee2c2c70 | |||
0c018e6448 | |||
565c66e4e6 | |||
72ad77446c | |||
59ce28395f | |||
cddd7ffd25 | |||
48ef556e6b | |||
0645beb199 | |||
97f52d1016 | |||
8d725e2e11 | |||
42b83b888e | |||
832664b667 | |||
4925809030 | |||
622a080b3c | |||
18747dbc83 | |||
210a7a07f7 | |||
211d42c36b | |||
cfbe4bbcb9 | |||
72350a49ec | |||
d4a0d03301 | |||
75f506ba0e | |||
035207f4f9 | |||
6d2d48af9d | |||
9adbce12e1 | |||
318189c7b2 | |||
167483b909 | |||
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 |
@ -12,29 +12,38 @@ stages:
|
||||
- release
|
||||
- metadata
|
||||
|
||||
before_script:
|
||||
- pnpm install -g pnpm
|
||||
- pnpm install -g @shipzone/npmci
|
||||
- npmci npm prepare
|
||||
|
||||
# ====================
|
||||
# security stage
|
||||
# ====================
|
||||
mirror:
|
||||
# ====================
|
||||
# security stage
|
||||
# ====================
|
||||
auditProductionDependencies:
|
||||
image: registry.gitlab.com/hosttoday/ht-docker-node:npmci
|
||||
stage: security
|
||||
script:
|
||||
- npmci git mirror
|
||||
- npmci command npm config set registry https://registry.npmjs.org
|
||||
- npmci command pnpm audit --audit-level=high --prod
|
||||
tags:
|
||||
- lossless
|
||||
- docker
|
||||
- notpriv
|
||||
allow_failure: true
|
||||
|
||||
snyk:
|
||||
image: registry.gitlab.com/hosttoday/ht-docker-node:snyk
|
||||
auditDevDependencies:
|
||||
image: registry.gitlab.com/hosttoday/ht-docker-node:npmci
|
||||
stage: security
|
||||
script:
|
||||
- npmci npm prepare
|
||||
- npmci command npm install --ignore-scripts
|
||||
- npmci command snyk test
|
||||
- npmci command npm config set registry https://registry.npmjs.org
|
||||
- npmci command pnpm audit --audit-level=high --dev
|
||||
tags:
|
||||
- lossless
|
||||
- docker
|
||||
- notpriv
|
||||
allow_failure: true
|
||||
|
||||
# ====================
|
||||
# test stage
|
||||
@ -43,28 +52,22 @@ snyk:
|
||||
testStable:
|
||||
stage: test
|
||||
script:
|
||||
- npmci npm prepare
|
||||
- npmci node install stable
|
||||
- npmci npm install
|
||||
- npmci npm test
|
||||
coverage: /\d+.?\d+?\%\s*coverage/
|
||||
tags:
|
||||
- lossless
|
||||
- docker
|
||||
- priv
|
||||
|
||||
testBuild:
|
||||
stage: test
|
||||
script:
|
||||
- npmci npm prepare
|
||||
- npmci node install stable
|
||||
- npmci npm install
|
||||
- npmci command npm run build
|
||||
- npmci npm build
|
||||
coverage: /\d+.?\d+?\%\s*coverage/
|
||||
tags:
|
||||
- lossless
|
||||
- docker
|
||||
- notpriv
|
||||
|
||||
release:
|
||||
stage: release
|
||||
@ -84,11 +87,12 @@ release:
|
||||
codequality:
|
||||
stage: metadata
|
||||
allow_failure: true
|
||||
only:
|
||||
- tags
|
||||
script:
|
||||
- npmci command npm install -g tslint typescript
|
||||
- npmci command npm install -g typescript
|
||||
- npmci npm prepare
|
||||
- npmci npm install
|
||||
- npmci command "tslint -c tslint.json ./ts/**/*.ts"
|
||||
tags:
|
||||
- lossless
|
||||
- docker
|
||||
@ -108,11 +112,9 @@ trigger:
|
||||
pages:
|
||||
stage: metadata
|
||||
script:
|
||||
- npmci node install lts
|
||||
- npmci command npm install -g @gitzone/tsdoc
|
||||
- npmci npm prepare
|
||||
- npmci node install stable
|
||||
- npmci npm install
|
||||
- npmci command tsdoc
|
||||
- npmci command npm run buildDocs
|
||||
tags:
|
||||
- lossless
|
||||
- docker
|
||||
|
4
.snyk
4
.snyk
@ -1,4 +0,0 @@
|
||||
# Snyk (https://snyk.io) policy file, patches or ignores known vulnerabilities.
|
||||
version: v1.13.3
|
||||
ignore: {}
|
||||
patch: {}
|
24
.vscode/launch.json
vendored
24
.vscode/launch.json
vendored
@ -2,28 +2,10 @@
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
{
|
||||
"name": "current file",
|
||||
"type": "node",
|
||||
"command": "npm test",
|
||||
"name": "Run npm test",
|
||||
"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"
|
||||
"type": "node-terminal"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
2
.vscode/settings.json
vendored
2
.vscode/settings.json
vendored
@ -15,7 +15,7 @@
|
||||
"properties": {
|
||||
"projectType": {
|
||||
"type": "string",
|
||||
"enum": ["website", "element", "service", "npm"]
|
||||
"enum": ["website", "element", "service", "npm", "wcc"]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
4
cli.child.ts
Normal file
4
cli.child.ts
Normal file
@ -0,0 +1,4 @@
|
||||
#!/usr/bin/env node
|
||||
process.env.CLI_CALL = 'true';
|
||||
import * as cliTool from './ts/index.js';
|
||||
cliTool.runCli();
|
5
cli.js
5
cli.js
@ -1,3 +1,4 @@
|
||||
#!/usr/bin/env node
|
||||
process.env.CLI_CALL_TSBUILD = 'true'
|
||||
var index = require("./dist_ts/index.js");
|
||||
process.env.CLI_CALL = 'true';
|
||||
const cliTool = await import('./dist_ts/index.js');
|
||||
cliTool.runCli();
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/env node
|
||||
process.env.CLI_CALL_TSBUILD = 'true';
|
||||
require('@gitzone/tsrun');
|
||||
require('./ts/index');
|
||||
process.env.CLI_CALL = 'true';
|
||||
import * as tsrun from '@gitzone/tsrun';
|
||||
tsrun.runPath('./cli.child.js');
|
@ -9,7 +9,7 @@
|
||||
"githost": "gitlab.com",
|
||||
"gitscope": "gitzone",
|
||||
"gitrepo": "tsbuild",
|
||||
"shortDescription": "TypeScript nightly to easily make use of latest features",
|
||||
"description": "TypeScript nightly to easily make use of latest features",
|
||||
"npmPackagename": "@gitzone/tsbuild",
|
||||
"license": "MIT"
|
||||
}
|
||||
|
1411
package-lock.json
generated
1411
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
40
package.json
40
package.json
@ -1,17 +1,19 @@
|
||||
{
|
||||
"name": "@gitzone/tsbuild",
|
||||
"version": "2.1.22",
|
||||
"name": "@git.zone/tsbuild",
|
||||
"version": "2.1.69",
|
||||
"private": false,
|
||||
"description": "TypeScript nightly to easily make use of latest features",
|
||||
"main": "dist_ts/index.js",
|
||||
"typings": "dist/index.d.ts",
|
||||
"typings": "dist_ts/index.d.ts",
|
||||
"type": "module",
|
||||
"bin": {
|
||||
"tsbuild": "cli.js"
|
||||
"tsbuild": "./cli.js"
|
||||
},
|
||||
"scripts": {
|
||||
"test": "tsrun test/test.ts",
|
||||
"testCustom": "node cli.ts.js custom ts_web",
|
||||
"build": "node cli.ts.js"
|
||||
"build": "node cli.ts.js --web --allowimplicitany",
|
||||
"buildDocs": "tsdoc"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
@ -27,31 +29,33 @@
|
||||
},
|
||||
"homepage": "https://gitlab.com/pushrocks/tsn#README",
|
||||
"dependencies": {
|
||||
"@pushrocks/smartcli": "^3.0.7",
|
||||
"@pushrocks/smartfile": "^7.0.2",
|
||||
"@pushrocks/smartlog": "^2.0.19",
|
||||
"@pushrocks/smartpath": "^4.0.1",
|
||||
"@pushrocks/smartpromise": "^3.0.2",
|
||||
"typescript": "^3.5.2"
|
||||
"@push.rocks/early": "^4.0.4",
|
||||
"@push.rocks/smartcli": "^4.0.8",
|
||||
"@push.rocks/smartdelay": "^3.0.5",
|
||||
"@push.rocks/smartfile": "^10.0.30",
|
||||
"@push.rocks/smartlog": "^3.0.3",
|
||||
"@push.rocks/smartpath": "^5.0.11",
|
||||
"@push.rocks/smartpromise": "^4.0.3",
|
||||
"typescript": "5.1.6"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@gitzone/tsrun": "^1.2.8",
|
||||
"@pushrocks/tapbundle": "^3.0.13",
|
||||
"@types/node": "^12.7.2",
|
||||
"tslint": "^5.19.0",
|
||||
"tslint-config-prettier": "^1.18.0"
|
||||
"@gitzone/tsrun": "^1.2.44",
|
||||
"@push.rocks/tapbundle": "^5.0.15",
|
||||
"@types/node": "^20.5.6"
|
||||
},
|
||||
"files": [
|
||||
"ts/**/*",
|
||||
"ts_web/**/*",
|
||||
"dist/**/*",
|
||||
"dist_bundle/**/*",
|
||||
"dist_web/**/*",
|
||||
"dist_*/**/*",
|
||||
"dist_ts/**/*",
|
||||
"dist_ts_web/**/*",
|
||||
"assets/**/*",
|
||||
"cli.js",
|
||||
"npmextra.json",
|
||||
"readme.md"
|
||||
],
|
||||
"browserslist": [
|
||||
"last 1 chrome versions"
|
||||
]
|
||||
}
|
||||
|
3338
pnpm-lock.yaml
generated
Normal file
3338
pnpm-lock.yaml
generated
Normal file
File diff suppressed because it is too large
Load Diff
30
readme.md
30
readme.md
@ -8,13 +8,19 @@ TypeScript nightly to easily make use of latest features
|
||||
* [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/)
|
||||
|
||||
Status Category | Status Badge
|
||||
-- | --
|
||||
GitLab Pipelines | [](https://lossless.cloud)
|
||||
GitLab Pipline Test Coverage | [](https://lossless.cloud)
|
||||
npm | [](https://lossless.cloud)
|
||||
Snyk | [](https://lossless.cloud)
|
||||
TypeScript Support | [](https://lossless.cloud)
|
||||
node Support | [](https://nodejs.org/dist/latest-v10.x/docs/api/)
|
||||
Code Style | [](https://lossless.cloud)
|
||||
PackagePhobia (total standalone install weight) | [](https://lossless.cloud)
|
||||
PackagePhobia (package size on registry) | [](https://lossless.cloud)
|
||||
BundlePhobia (total size when bundled) | [](https://lossless.cloud)
|
||||
|
||||
## Usage
|
||||
|
||||
@ -25,12 +31,12 @@ import * as tsn from 'tsn';
|
||||
|
||||
let myGlobStringObject = {
|
||||
'./myTsFolder/**/*.ts': './myDestinationFolder/',
|
||||
'./someOtherTsFolder/**/*.ts': './myOtherDestinationFolder/'
|
||||
'./someOtherTsFolder/**/*.ts': './myOtherDestinationFolder/',
|
||||
};
|
||||
|
||||
let tsOptions = {
|
||||
target: tsn.ScriptTarget.ES2015,
|
||||
module: tsn.ModuleKind.CommonJS
|
||||
module: tsn.ModuleKind.CommonJS,
|
||||
};
|
||||
|
||||
/*
|
||||
@ -67,14 +73,12 @@ tsn.compileGlobStringObject(
|
||||
|
||||
[](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)
|
||||
## Legal
|
||||
> MIT licensed | **©** [Task Venture Capital GmbH](https://task.vc)
|
||||
| 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 {
|
||||
test: string[];
|
||||
constructor();
|
||||
}
|
||||
declare const run: () => Promise<string>;
|
||||
export {};
|
||||
|
@ -1,5 +1,10 @@
|
||||
console.log('test');
|
||||
console.log('test2');
|
||||
import * as early from '@push.rocks/early';
|
||||
early.start();
|
||||
early.stop();
|
||||
import { anExportedString } from './tocompile2.js';
|
||||
console.log(anExportedString);
|
||||
class test2 {
|
||||
constructor() {
|
||||
this.test = [];
|
||||
@ -9,4 +14,4 @@ class test2 {
|
||||
const run = async () => {
|
||||
return 'hi';
|
||||
};
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9jb21waWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdG9jb21waWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDcEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUNyQixNQUFNLEtBQUs7SUFFVDtRQURBLFNBQUksR0FBYSxFQUFFLENBQUM7UUFFbEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwQixDQUFDO0NBQ0Y7QUFFRCxNQUFNLEdBQUcsR0FBRyxLQUFLLElBQXFCLEVBQUU7SUFDdEMsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDLENBQUMifQ==
|
||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9jb21waWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdG9jb21waWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDcEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUVyQixPQUFPLEtBQUssS0FBSyxNQUFNLG1CQUFtQixDQUFDO0FBRTNDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztBQUNkLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUViLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztBQUU5QixNQUFNLEtBQUs7SUFFVDtRQURBLFNBQUksR0FBYSxFQUFFLENBQUM7UUFFbEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwQixDQUFDO0NBQ0Y7QUFFRCxNQUFNLEdBQUcsR0FBRyxLQUFLLElBQXFCLEVBQUU7SUFDdEMsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDLENBQUMifQ==
|
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');
|
||||
//# 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('test2');
|
||||
|
||||
import * as early from '@push.rocks/early';
|
||||
|
||||
early.start();
|
||||
early.stop();
|
||||
|
||||
import { anExportedString } from './tocompile2.js';
|
||||
console.log(anExportedString);
|
||||
|
||||
class test2 {
|
||||
test: string[] = [];
|
||||
constructor() {
|
||||
|
@ -1 +1,2 @@
|
||||
console.log('hello');
|
||||
export const anExportedString = 'exported string';
|
||||
|
14
test/test.ts
14
test/test.ts
@ -1,19 +1,19 @@
|
||||
import { tap, expect } from '@pushrocks/tapbundle';
|
||||
import { tap, expect, expectAsync } from '@push.rocks/tapbundle';
|
||||
|
||||
import * as tsn from '../ts/index';
|
||||
import * as tsbuild from '../ts/index.js';
|
||||
|
||||
let assetfiles: string[] = ['./test/assets/tocompile.ts', './test/assets/tocompile2.ts'];
|
||||
|
||||
let assetfiles2 = {
|
||||
'./test/assets/**/!(*.d.ts|*.js|output)': './test/assets/output'
|
||||
'./test/assets/**/!(*.d.ts|*.js|output)': './test/assets/output',
|
||||
};
|
||||
|
||||
tap.test('should convert files from an array with single files to output', async tools => {
|
||||
tsn.compileFileArray(assetfiles, { outDir: './test/assets/output' });
|
||||
tap.test('should convert files from an array with single files to output', async (tools) => {
|
||||
tsbuild.compileFileArray(assetfiles, { outDir: './test/assets/output' });
|
||||
});
|
||||
|
||||
tap.test('should convert files from an array with single files to output', async tools => {
|
||||
tsn.compileGlobStringObject(assetfiles2);
|
||||
tap.test('should convert files from an array with single files to output', async (tools) => {
|
||||
tsbuild.compileGlobStringObject(assetfiles2);
|
||||
});
|
||||
|
||||
tap.start();
|
||||
|
8
ts/00_commitinfo_data.ts
Normal file
8
ts/00_commitinfo_data.ts
Normal file
@ -0,0 +1,8 @@
|
||||
/**
|
||||
* autocreated commitinfo by @pushrocks/commitinfo
|
||||
*/
|
||||
export const commitinfo = {
|
||||
name: '@git.zone/tsbuild',
|
||||
version: '2.1.69',
|
||||
description: 'TypeScript nightly to easily make use of latest features'
|
||||
}
|
@ -1,3 +1,5 @@
|
||||
export * from './tsbuild.exports';
|
||||
|
||||
import './tsbuild.cli';
|
||||
import * as early from '@push.rocks/early';
|
||||
early.start('tsbuild');
|
||||
export * from './tsbuild.exports.js';
|
||||
export * from './tsbuild.cli.js';
|
||||
early.stop();
|
||||
|
@ -1,7 +1,6 @@
|
||||
// import all the stuff we need
|
||||
import * as plugins from './tsbuild.plugins';
|
||||
import { CompilerOptions } from 'typescript';
|
||||
export { CompilerOptions, ScriptTarget, ModuleKind } from 'typescript';
|
||||
import * as plugins from './tsbuild.plugins.js';
|
||||
import type { CompilerOptions, ScriptTarget, ModuleKind } from './tsbuild.exports.js';
|
||||
|
||||
/**
|
||||
* the default typescript compilerOptions
|
||||
@ -13,16 +12,14 @@ export const compilerOptionsDefault: CompilerOptions = {
|
||||
inlineSourceMap: true,
|
||||
noEmitOnError: true,
|
||||
outDir: 'dist_ts/',
|
||||
module: plugins.typescript.ModuleKind.CommonJS,
|
||||
lib: ['lib.es2017.d.ts'],
|
||||
noImplicitAny: false,
|
||||
module: plugins.typescript.ModuleKind.NodeNext,
|
||||
target: plugins.typescript.ScriptTarget.ESNext,
|
||||
moduleResolution: plugins.typescript.ModuleResolutionKind.NodeNext,
|
||||
lib: ['lib.dom.d.ts'],
|
||||
noImplicitAny: true,
|
||||
esModuleInterop: true,
|
||||
target: plugins.typescript.ScriptTarget.ES2017
|
||||
};
|
||||
|
||||
export const compilerOptionsWebDefault: CompilerOptions = {
|
||||
...compilerOptionsDefault,
|
||||
lib: [...compilerOptionsDefault.lib, 'lib.dom.d.ts']
|
||||
useDefineForClassFields: false,
|
||||
verbatimModuleSyntax: true,
|
||||
};
|
||||
|
||||
/**
|
||||
@ -32,31 +29,48 @@ export const mergeCompilerOptions = (
|
||||
customTsOptions: CompilerOptions,
|
||||
argvArg?: any
|
||||
): CompilerOptions => {
|
||||
const defaultOptionsToMerge = (() => {
|
||||
if (argvArg && argvArg.web) {
|
||||
return compilerOptionsWebDefault;
|
||||
} else {
|
||||
return compilerOptionsDefault;
|
||||
}
|
||||
})();
|
||||
|
||||
// create merged options
|
||||
const mergedOptions: CompilerOptions = {
|
||||
...defaultOptionsToMerge,
|
||||
...customTsOptions
|
||||
...compilerOptionsDefault,
|
||||
...customTsOptions,
|
||||
...(argvArg && argvArg.skiplibcheck
|
||||
? {
|
||||
skipLibCheck: true,
|
||||
}
|
||||
: {}),
|
||||
...(argvArg && argvArg.allowimplicitany
|
||||
? {
|
||||
noImplicitAny: false,
|
||||
}
|
||||
: {}),
|
||||
...(argvArg && argvArg.commonjs
|
||||
? {
|
||||
module: plugins.typescript.ModuleKind.CommonJS,
|
||||
moduleResolution: plugins.typescript.ModuleResolutionKind.NodeJs,
|
||||
}
|
||||
: {}),
|
||||
};
|
||||
|
||||
console.log(mergedOptions);
|
||||
|
||||
return mergedOptions;
|
||||
};
|
||||
|
||||
/**
|
||||
* the internal main compiler function that compiles the files
|
||||
*/
|
||||
export const compiler = (
|
||||
export const compiler = async (
|
||||
fileNames: string[],
|
||||
options: plugins.typescript.CompilerOptions,
|
||||
argvArg?: any
|
||||
): Promise<any[]> => {
|
||||
if (options.skipLibCheck) {
|
||||
console.log('? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?');
|
||||
console.log('You are skipping libcheck... Is that really wanted?');
|
||||
console.log('continuing in 5 seconds...');
|
||||
console.log('? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?');
|
||||
await plugins.smartdelay.delayFor(5000);
|
||||
}
|
||||
console.log(`Compiling ${fileNames.length} files...`);
|
||||
const done = plugins.smartpromise.defer<any[]>();
|
||||
const program = plugins.typescript.createProgram(fileNames, options);
|
||||
@ -70,7 +84,7 @@ export const compiler = (
|
||||
const allDiagnostics = plugins.typescript
|
||||
.getPreEmitDiagnostics(program)
|
||||
.concat(emitResult.diagnostics);
|
||||
allDiagnostics.forEach(diagnostic => {
|
||||
allDiagnostics.forEach((diagnostic) => {
|
||||
if (diagnostic.file) {
|
||||
const { line, character } = diagnostic.file.getLineAndCharacterOfPosition(diagnostic.start!);
|
||||
const message = plugins.typescript.flattenDiagnosticMessageText(diagnostic.messageText, '\n');
|
||||
|
@ -1,46 +1,46 @@
|
||||
import * as plugins from './tsbuild.plugins';
|
||||
import * as tsbuild from './tsbuild.exports';
|
||||
import * as plugins from './tsbuild.plugins.js';
|
||||
import * as tsbuild from './tsbuild.exports.js';
|
||||
|
||||
const tsbuildCli = new plugins.smartcli.Smartcli();
|
||||
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 => {
|
||||
if (process.env.CLI_CALL_TSBUILD === 'true') {
|
||||
/**
|
||||
* the standard task compiles anything in ts/ directory to dist directory
|
||||
*/
|
||||
tsbuildCli.standardCommand().subscribe(async (argvArg) => {
|
||||
tsbuild.compileGlobStringObject(
|
||||
{
|
||||
'./ts/**/*.ts': './dist_ts'
|
||||
'./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);
|
||||
});
|
||||
/**
|
||||
* 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.addCommand('element').subscribe(async (argvArg) => {
|
||||
await tsbuild.compileGlobStringObject(
|
||||
{
|
||||
'./ts_web/**/*.ts': 'dist_ts_web',
|
||||
},
|
||||
{},
|
||||
process.cwd(),
|
||||
{ web: true, ...argvArg }
|
||||
);
|
||||
});
|
||||
|
||||
tsbuildCli.startParse();
|
||||
tsbuildCli.startParse();
|
||||
};
|
||||
|
@ -1,7 +1,10 @@
|
||||
import * as plugins from './tsbuild.plugins';
|
||||
import { compiler, CompilerOptions, mergeCompilerOptions } from './tsbuild.classes.compiler';
|
||||
import * as plugins from './tsbuild.plugins.js';
|
||||
import type { CompilerOptions, ScriptTarget, ModuleKind } from 'typescript';
|
||||
import { compiler, mergeCompilerOptions } from './tsbuild.classes.compiler.js';
|
||||
|
||||
export * from './tsbuild.classes.compiler';
|
||||
export type { CompilerOptions, ScriptTarget, ModuleKind };
|
||||
|
||||
export * from './tsbuild.classes.compiler.js';
|
||||
|
||||
/**
|
||||
* compile am array of absolute file paths
|
||||
@ -27,24 +30,24 @@ export let compileGlobStringObject = async (
|
||||
cwdArg: string = process.cwd(),
|
||||
argvArg?: any
|
||||
) => {
|
||||
let compiledFiles = [];
|
||||
let compiledFiles: plugins.smartfile.Smartfile[] = [];
|
||||
for (const keyArg in globStringObjectArg) {
|
||||
if (globStringObjectArg[keyArg]) {
|
||||
console.log(
|
||||
`TypeScript assignment: transpile from ${keyArg} to ${globStringObjectArg[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,
|
||||
cwdArg
|
||||
);
|
||||
let destDir: string = plugins.smartpath.transform.toAbsolute(
|
||||
) as string[];
|
||||
const destDir: string = plugins.smartpath.transform.toAbsolute(
|
||||
globStringObjectArg[keyArg],
|
||||
cwdArg
|
||||
);
|
||||
) as string;
|
||||
tsOptionsArg = {
|
||||
...tsOptionsArg,
|
||||
outDir: destDir
|
||||
outDir: destDir,
|
||||
};
|
||||
compiledFiles = compiledFiles.concat(
|
||||
compiledFiles,
|
||||
|
@ -1,7 +1,8 @@
|
||||
import * as smartcli from '@pushrocks/smartcli';
|
||||
import * as smartfile from '@pushrocks/smartfile';
|
||||
import * as smartpath from '@pushrocks/smartpath';
|
||||
import * as smartpromise from '@pushrocks/smartpromise';
|
||||
import * as typescript from 'typescript';
|
||||
import * as smartcli from '@push.rocks/smartcli';
|
||||
import * as smartdelay from '@push.rocks/smartdelay';
|
||||
import * as smartfile from '@push.rocks/smartfile';
|
||||
import * as smartpath from '@push.rocks/smartpath';
|
||||
import * as smartpromise from '@push.rocks/smartpromise';
|
||||
import typescript from 'typescript';
|
||||
|
||||
export { smartcli, smartfile, smartpath, smartpromise, typescript };
|
||||
export { smartcli, smartdelay, smartfile, smartpath, smartpromise, typescript };
|
||||
|
@ -1,14 +1,11 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"outDir": "dist_ts/",
|
||||
"module": "commonjs",
|
||||
"target": "es2015",
|
||||
"lib":[
|
||||
"es2016",
|
||||
"es2017"
|
||||
]
|
||||
},
|
||||
"include": [
|
||||
"ts/**/*.ts"
|
||||
]
|
||||
}
|
||||
"experimentalDecorators": true,
|
||||
"useDefineForClassFields": false,
|
||||
"target": "ES2022",
|
||||
"module": "NodeNext",
|
||||
"moduleResolution": "NodeNext",
|
||||
"esModuleInterop": true,
|
||||
"verbatimModuleSyntax": true
|
||||
}
|
||||
}
|
||||
|
17
tslint.json
17
tslint.json
@ -1,17 +0,0 @@
|
||||
{
|
||||
"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