Compare commits
50 Commits
Author | SHA1 | Date | |
---|---|---|---|
651a06ff7b | |||
2f04474dab | |||
d88af368a4 | |||
e60816be4c | |||
a9e383ba2d | |||
a3e1cf9e3d | |||
8790886815 | |||
611bd0d542 | |||
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 |
@ -12,30 +12,38 @@ stages:
|
|||||||
- release
|
- release
|
||||||
- metadata
|
- metadata
|
||||||
|
|
||||||
|
before_script:
|
||||||
|
- pnpm install -g pnpm
|
||||||
|
- pnpm install -g @shipzone/npmci
|
||||||
|
- npmci npm prepare
|
||||||
|
|
||||||
# ====================
|
# ====================
|
||||||
# security stage
|
# security stage
|
||||||
# ====================
|
# ====================
|
||||||
mirror:
|
# ====================
|
||||||
stage: security
|
# security stage
|
||||||
script:
|
# ====================
|
||||||
- npmci git mirror
|
auditProductionDependencies:
|
||||||
tags:
|
|
||||||
- lossless
|
|
||||||
- docker
|
|
||||||
- notpriv
|
|
||||||
|
|
||||||
audit:
|
|
||||||
image: registry.gitlab.com/hosttoday/ht-docker-node:npmci
|
image: registry.gitlab.com/hosttoday/ht-docker-node:npmci
|
||||||
stage: security
|
stage: security
|
||||||
script:
|
script:
|
||||||
- npmci npm prepare
|
- npmci command npm config set registry https://registry.npmjs.org
|
||||||
- npmci command npm install --ignore-scripts
|
- npmci command pnpm audit --audit-level=high --prod
|
||||||
- npmci command npm config set registry https://registry.npmjs.org
|
|
||||||
- npmci command npm audit --audit-level=high
|
|
||||||
tags:
|
tags:
|
||||||
- lossless
|
- lossless
|
||||||
- docker
|
- docker
|
||||||
- notpriv
|
allow_failure: true
|
||||||
|
|
||||||
|
auditDevDependencies:
|
||||||
|
image: registry.gitlab.com/hosttoday/ht-docker-node:npmci
|
||||||
|
stage: security
|
||||||
|
script:
|
||||||
|
- npmci command npm config set registry https://registry.npmjs.org
|
||||||
|
- npmci command pnpm audit --audit-level=high --dev
|
||||||
|
tags:
|
||||||
|
- lossless
|
||||||
|
- docker
|
||||||
|
allow_failure: true
|
||||||
|
|
||||||
# ====================
|
# ====================
|
||||||
# test stage
|
# test stage
|
||||||
@ -44,28 +52,22 @@ audit:
|
|||||||
testStable:
|
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
|
- docker
|
||||||
- priv
|
|
||||||
|
|
||||||
testBuild:
|
testBuild:
|
||||||
stage: test
|
stage: test
|
||||||
script:
|
script:
|
||||||
- npmci npm prepare
|
|
||||||
- npmci node install stable
|
- npmci node install stable
|
||||||
- npmci npm install
|
- npmci npm install
|
||||||
- npmci command npm run build
|
- npmci npm build
|
||||||
coverage: /\d+.?\d+?\%\s*coverage/
|
coverage: /\d+.?\d+?\%\s*coverage/
|
||||||
tags:
|
tags:
|
||||||
- lossless
|
|
||||||
- docker
|
- docker
|
||||||
- notpriv
|
|
||||||
|
|
||||||
release:
|
release:
|
||||||
stage: release
|
stage: release
|
||||||
@ -85,11 +87,12 @@ release:
|
|||||||
codequality:
|
codequality:
|
||||||
stage: metadata
|
stage: metadata
|
||||||
allow_failure: true
|
allow_failure: true
|
||||||
|
only:
|
||||||
|
- tags
|
||||||
script:
|
script:
|
||||||
- npmci command npm install -g tslint typescript
|
- npmci command npm install -g typescript
|
||||||
- npmci npm prepare
|
- npmci npm prepare
|
||||||
- npmci npm install
|
- npmci npm install
|
||||||
- npmci command "tslint -c tslint.json ./ts/**/*.ts"
|
|
||||||
tags:
|
tags:
|
||||||
- lossless
|
- lossless
|
||||||
- docker
|
- docker
|
||||||
@ -109,11 +112,9 @@ trigger:
|
|||||||
pages:
|
pages:
|
||||||
stage: metadata
|
stage: metadata
|
||||||
script:
|
script:
|
||||||
- npmci node install lts
|
- npmci node install stable
|
||||||
- npmci command npm install -g @gitzone/tsdoc
|
|
||||||
- npmci npm prepare
|
|
||||||
- npmci npm install
|
- npmci npm install
|
||||||
- npmci command tsdoc
|
- npmci command npm run buildDocs
|
||||||
tags:
|
tags:
|
||||||
- lossless
|
- lossless
|
||||||
- docker
|
- docker
|
||||||
|
24
.vscode/launch.json
vendored
24
.vscode/launch.json
vendored
@ -2,28 +2,10 @@
|
|||||||
"version": "0.2.0",
|
"version": "0.2.0",
|
||||||
"configurations": [
|
"configurations": [
|
||||||
{
|
{
|
||||||
"name": "current file",
|
"command": "npm test",
|
||||||
"type": "node",
|
"name": "Run npm test",
|
||||||
"request": "launch",
|
"request": "launch",
|
||||||
"args": [
|
"type": "node-terminal"
|
||||||
"${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"
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
2
.vscode/settings.json
vendored
2
.vscode/settings.json
vendored
@ -15,7 +15,7 @@
|
|||||||
"properties": {
|
"properties": {
|
||||||
"projectType": {
|
"projectType": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"enum": ["website", "element", "service", "npm"]
|
"enum": ["website", "element", "service", "npm", "wcc"]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#!/usr/bin/env node
|
#!/usr/bin/env node
|
||||||
process.env.CLI_CALL = 'true';
|
process.env.CLI_CALL = 'true';
|
||||||
import * as tsrun from '@gitzone/tsrun';
|
import * as tsrun from '@git.zone/tsrun';
|
||||||
tsrun.runPath('./cli.child.js');
|
tsrun.runPath('./cli.child.js');
|
@ -9,7 +9,7 @@
|
|||||||
"githost": "gitlab.com",
|
"githost": "gitlab.com",
|
||||||
"gitscope": "gitzone",
|
"gitscope": "gitzone",
|
||||||
"gitrepo": "tsbuild",
|
"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",
|
"npmPackagename": "@gitzone/tsbuild",
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
}
|
}
|
||||||
|
2768
package-lock.json
generated
2768
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
32
package.json
32
package.json
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@gitzone/tsbuild",
|
"name": "@git.zone/tsbuild",
|
||||||
"version": "2.1.48",
|
"version": "2.1.73",
|
||||||
"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_ts/index.js",
|
"main": "dist_ts/index.js",
|
||||||
@ -11,8 +11,8 @@
|
|||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"test": "tsrun test/test.ts",
|
"test": "tsrun test/test.ts",
|
||||||
"testCustom": "node cli.ts.js custom ts_web",
|
"build": "node cli.ts.js --web --allowimplicitany",
|
||||||
"build": "node cli.ts.js --web"
|
"buildDocs": "tsdoc"
|
||||||
},
|
},
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
@ -28,18 +28,19 @@
|
|||||||
},
|
},
|
||||||
"homepage": "https://gitlab.com/pushrocks/tsn#README",
|
"homepage": "https://gitlab.com/pushrocks/tsn#README",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@pushrocks/early": "^3.0.6",
|
"@push.rocks/early": "^4.0.4",
|
||||||
"@pushrocks/smartcli": "^3.0.14",
|
"@push.rocks/smartcli": "^4.0.10",
|
||||||
"@pushrocks/smartfile": "^9.0.6",
|
"@push.rocks/smartdelay": "^3.0.5",
|
||||||
"@pushrocks/smartlog": "^2.0.44",
|
"@push.rocks/smartfile": "^11.0.14",
|
||||||
"@pushrocks/smartpath": "^4.0.3",
|
"@push.rocks/smartlog": "^3.0.3",
|
||||||
"@pushrocks/smartpromise": "^3.1.7",
|
"@push.rocks/smartpath": "^5.0.18",
|
||||||
"typescript": "4.7.0"
|
"@push.rocks/smartpromise": "^4.0.3",
|
||||||
|
"typescript": "5.4.5"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@gitzone/tsrun": "^1.2.29",
|
"@git.zone/tsrun": "^1.2.46",
|
||||||
"@pushrocks/tapbundle": "^4.0.8",
|
"@push.rocks/tapbundle": "^5.0.23",
|
||||||
"@types/node": "^17.0.21"
|
"@types/node": "^20.12.11"
|
||||||
},
|
},
|
||||||
"files": [
|
"files": [
|
||||||
"ts/**/*",
|
"ts/**/*",
|
||||||
@ -52,5 +53,8 @@
|
|||||||
"cli.js",
|
"cli.js",
|
||||||
"npmextra.json",
|
"npmextra.json",
|
||||||
"readme.md"
|
"readme.md"
|
||||||
|
],
|
||||||
|
"browserslist": [
|
||||||
|
"last 1 chrome versions"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
2343
pnpm-lock.yaml
generated
Normal file
2343
pnpm-lock.yaml
generated
Normal file
File diff suppressed because it is too large
Load Diff
29
readme.md
29
readme.md
@ -8,13 +8,19 @@ TypeScript nightly to easily make use of latest features
|
|||||||
* [docs (typedoc)](https://gitzone.gitlab.io/tsbuild/)
|
* [docs (typedoc)](https://gitzone.gitlab.io/tsbuild/)
|
||||||
|
|
||||||
## Status for master
|
## Status for master
|
||||||
[](https://gitlab.com/gitzone/tsbuild/commits/master)
|
|
||||||
[](https://gitlab.com/gitzone/tsbuild/commits/master)
|
Status Category | Status Badge
|
||||||
[](https://www.npmjs.com/package/@gitzone/tsbuild)
|
-- | --
|
||||||
[](https://snyk.io/test/npm/@gitzone/tsbuild)
|
GitLab Pipelines | [](https://lossless.cloud)
|
||||||
[](https://nodejs.org/dist/latest-v10.x/docs/api/)
|
GitLab Pipline Test Coverage | [](https://lossless.cloud)
|
||||||
[](https://nodejs.org/dist/latest-v10.x/docs/api/)
|
npm | [](https://lossless.cloud)
|
||||||
[](https://prettier.io/)
|
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
|
## Usage
|
||||||
|
|
||||||
@ -25,12 +31,12 @@ import * as tsn from 'tsn';
|
|||||||
|
|
||||||
let myGlobStringObject = {
|
let myGlobStringObject = {
|
||||||
'./myTsFolder/**/*.ts': './myDestinationFolder/',
|
'./myTsFolder/**/*.ts': './myDestinationFolder/',
|
||||||
'./someOtherTsFolder/**/*.ts': './myOtherDestinationFolder/'
|
'./someOtherTsFolder/**/*.ts': './myOtherDestinationFolder/',
|
||||||
};
|
};
|
||||||
|
|
||||||
let tsOptions = {
|
let tsOptions = {
|
||||||
target: tsn.ScriptTarget.ES2015,
|
target: tsn.ScriptTarget.ES2015,
|
||||||
module: tsn.ModuleKind.CommonJS
|
module: tsn.ModuleKind.CommonJS,
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -73,7 +79,6 @@ We are always happy for code contributions. If you are not the code contributing
|
|||||||
|
|
||||||
For further information read the linked docs at the top of this readme.
|
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)
|
| By using this npm module you agree to our [privacy policy](https://lossless.gmbH/privacy)
|
||||||
|
|
||||||
[](https://maintainedby.lossless.com)
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
console.log('test');
|
console.log('test');
|
||||||
console.log('test2');
|
console.log('test2');
|
||||||
import * as early from '@pushrocks/early';
|
import * as early from '@push.rocks/early';
|
||||||
early.start();
|
early.start();
|
||||||
early.stop();
|
early.stop();
|
||||||
import { anExportedString } from './tocompile2.js';
|
import { anExportedString } from './tocompile2.js';
|
||||||
@ -14,4 +14,4 @@ class test2 {
|
|||||||
const run = async () => {
|
const run = async () => {
|
||||||
return 'hi';
|
return 'hi';
|
||||||
};
|
};
|
||||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9jb21waWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdG9jb21waWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDcEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUVyQixPQUFPLEtBQUssS0FBSyxNQUFNLGtCQUFrQixDQUFDO0FBRTFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztBQUNkLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUViLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztBQUU5QixNQUFNLEtBQUs7SUFFVDtRQURBLFNBQUksR0FBYSxFQUFFLENBQUM7UUFFbEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwQixDQUFDO0NBQ0Y7QUFFRCxNQUFNLEdBQUcsR0FBRyxLQUFLLElBQXFCLEVBQUU7SUFDdEMsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDLENBQUMifQ==
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9jb21waWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdG9jb21waWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDcEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUVyQixPQUFPLEtBQUssS0FBSyxNQUFNLG1CQUFtQixDQUFDO0FBRTNDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztBQUNkLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUViLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztBQUU5QixNQUFNLEtBQUs7SUFFVDtRQURBLFNBQUksR0FBYSxFQUFFLENBQUM7UUFFbEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwQixDQUFDO0NBQ0Y7QUFFRCxNQUFNLEdBQUcsR0FBRyxLQUFLLElBQXFCLEVBQUU7SUFDdEMsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDLENBQUMifQ==
|
@ -1,12 +1,12 @@
|
|||||||
console.log('test');
|
console.log('test');
|
||||||
console.log('test2');
|
console.log('test2');
|
||||||
|
|
||||||
import * as early from '@pushrocks/early';
|
import * as early from '@push.rocks/early';
|
||||||
|
|
||||||
early.start();
|
early.start();
|
||||||
early.stop();
|
early.stop();
|
||||||
|
|
||||||
import {anExportedString} from './tocompile2.js';
|
import { anExportedString } from './tocompile2.js';
|
||||||
console.log(anExportedString);
|
console.log(anExportedString);
|
||||||
|
|
||||||
class test2 {
|
class test2 {
|
||||||
|
@ -1,18 +1,18 @@
|
|||||||
import { tap, expect, expectAsync } from '@pushrocks/tapbundle';
|
import { tap, expect, expectAsync } from '@push.rocks/tapbundle';
|
||||||
|
|
||||||
import * as tsbuild from '../ts/index.js';
|
import * as tsbuild from '../ts/index.js';
|
||||||
|
|
||||||
let assetfiles: string[] = ['./test/assets/tocompile.ts', './test/assets/tocompile2.ts'];
|
let assetfiles: string[] = ['./test/assets/tocompile.ts', './test/assets/tocompile2.ts'];
|
||||||
|
|
||||||
let assetfiles2 = {
|
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 => {
|
tap.test('should convert files from an array with single files to output', async (tools) => {
|
||||||
tsbuild.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) => {
|
||||||
tsbuild.compileGlobStringObject(assetfiles2);
|
tsbuild.compileGlobStringObject(assetfiles2);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
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.73',
|
||||||
|
description: 'TypeScript nightly to easily make use of latest features'
|
||||||
|
}
|
@ -1,4 +1,4 @@
|
|||||||
import * as early from '@pushrocks/early';
|
import * as early from '@push.rocks/early';
|
||||||
early.start('tsbuild');
|
early.start('tsbuild');
|
||||||
export * from './tsbuild.exports.js';
|
export * from './tsbuild.exports.js';
|
||||||
export * from './tsbuild.cli.js';
|
export * from './tsbuild.cli.js';
|
||||||
|
4
ts/paths.ts
Normal file
4
ts/paths.ts
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
import * as plugins from './plugins.js';
|
||||||
|
|
||||||
|
export const cwd = process.cwd();
|
||||||
|
export const packageDir = plugins.path.join(plugins.smartpath.get.dirnameFromImportMetaUrl(import.meta.url), '../');
|
22
ts/plugins.ts
Normal file
22
ts/plugins.ts
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
// node native
|
||||||
|
import * as path from 'path';
|
||||||
|
|
||||||
|
export {
|
||||||
|
path
|
||||||
|
}
|
||||||
|
|
||||||
|
// @push.rocks scope
|
||||||
|
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';
|
||||||
|
|
||||||
|
export { smartcli, smartdelay, smartfile, smartpath, smartpromise };
|
||||||
|
|
||||||
|
// third party scope
|
||||||
|
import typescript from 'typescript';
|
||||||
|
|
||||||
|
export {
|
||||||
|
typescript
|
||||||
|
}
|
@ -1,7 +1,6 @@
|
|||||||
// import all the stuff we need
|
// import all the stuff we need
|
||||||
import * as plugins from './tsbuild.plugins.js';
|
import * as plugins from './plugins.js';
|
||||||
import { CompilerOptions, ScriptTarget, ModuleKind } from './tsbuild.exports.js';
|
import type { CompilerOptions, ScriptTarget, ModuleKind } from './tsbuild.exports.js';
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* the default typescript compilerOptions
|
* the default typescript compilerOptions
|
||||||
@ -13,18 +12,14 @@ export const compilerOptionsDefault: CompilerOptions = {
|
|||||||
inlineSourceMap: true,
|
inlineSourceMap: true,
|
||||||
noEmitOnError: true,
|
noEmitOnError: true,
|
||||||
outDir: 'dist_ts/',
|
outDir: 'dist_ts/',
|
||||||
module: plugins.typescript.ModuleKind.ES2020,
|
module: plugins.typescript.ModuleKind.NodeNext,
|
||||||
target: plugins.typescript.ScriptTarget.ES2020,
|
target: plugins.typescript.ScriptTarget.ESNext,
|
||||||
moduleResolution: plugins.typescript.ModuleResolutionKind.Node12,
|
moduleResolution: plugins.typescript.ModuleResolutionKind.NodeNext,
|
||||||
lib: [],
|
lib: ['lib.dom.d.ts'],
|
||||||
noImplicitAny: false,
|
noImplicitAny: true,
|
||||||
esModuleInterop: true,
|
esModuleInterop: true,
|
||||||
importsNotUsedAsValues: plugins.typescript.ImportsNotUsedAsValues.Preserve
|
useDefineForClassFields: false,
|
||||||
};
|
verbatimModuleSyntax: true,
|
||||||
|
|
||||||
export const compilerOptionsWebDefault: CompilerOptions = {
|
|
||||||
...compilerOptionsDefault,
|
|
||||||
lib: [...compilerOptionsDefault.lib, 'lib.dom.d.ts']
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -34,34 +29,48 @@ export const mergeCompilerOptions = (
|
|||||||
customTsOptions: CompilerOptions,
|
customTsOptions: CompilerOptions,
|
||||||
argvArg?: any
|
argvArg?: any
|
||||||
): CompilerOptions => {
|
): CompilerOptions => {
|
||||||
const defaultOptionsToMerge = (() => {
|
|
||||||
if (argvArg && argvArg.web) {
|
|
||||||
return compilerOptionsWebDefault;
|
|
||||||
} else {
|
|
||||||
return compilerOptionsDefault;
|
|
||||||
}
|
|
||||||
})();
|
|
||||||
|
|
||||||
// create merged options
|
// create merged options
|
||||||
const mergedOptions: CompilerOptions = {
|
const mergedOptions: CompilerOptions = {
|
||||||
...defaultOptionsToMerge,
|
...compilerOptionsDefault,
|
||||||
...customTsOptions,
|
...customTsOptions,
|
||||||
...argvArg && argvArg.skiplibcheck ? {
|
...(argvArg && argvArg.skiplibcheck
|
||||||
skipLibCheck: true
|
? {
|
||||||
} : {},
|
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;
|
return mergedOptions;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* the internal main compiler function that compiles the files
|
* the internal main compiler function that compiles the files
|
||||||
*/
|
*/
|
||||||
export const compiler = (
|
export const compiler = async (
|
||||||
fileNames: string[],
|
fileNames: string[],
|
||||||
options: plugins.typescript.CompilerOptions,
|
options: plugins.typescript.CompilerOptions,
|
||||||
argvArg?: any
|
argvArg?: any
|
||||||
): Promise<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...`);
|
console.log(`Compiling ${fileNames.length} files...`);
|
||||||
const done = plugins.smartpromise.defer<any[]>();
|
const done = plugins.smartpromise.defer<any[]>();
|
||||||
const program = plugins.typescript.createProgram(fileNames, options);
|
const program = plugins.typescript.createProgram(fileNames, options);
|
||||||
@ -75,7 +84,7 @@ export const compiler = (
|
|||||||
const 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) {
|
||||||
const { line, character } = diagnostic.file.getLineAndCharacterOfPosition(diagnostic.start!);
|
const { line, character } = diagnostic.file.getLineAndCharacterOfPosition(diagnostic.start!);
|
||||||
const message = plugins.typescript.flattenDiagnosticMessageText(diagnostic.messageText, '\n');
|
const message = plugins.typescript.flattenDiagnosticMessageText(diagnostic.messageText, '\n');
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import * as plugins from './tsbuild.plugins.js';
|
import * as plugins from './plugins.js';
|
||||||
|
import * as paths from './paths.js';
|
||||||
import * as tsbuild from './tsbuild.exports.js';
|
import * as tsbuild from './tsbuild.exports.js';
|
||||||
|
|
||||||
export const runCli = async () => {
|
export const runCli = async () => {
|
||||||
@ -7,7 +8,7 @@ export const runCli = async () => {
|
|||||||
/**
|
/**
|
||||||
* the standard task compiles anything in ts/ directory to dist directory
|
* the standard task compiles anything in ts/ directory to dist directory
|
||||||
*/
|
*/
|
||||||
tsbuildCli.standardTask().subscribe(async (argvArg) => {
|
tsbuildCli.standardCommand().subscribe(async (argvArg) => {
|
||||||
tsbuild.compileGlobStringObject(
|
tsbuild.compileGlobStringObject(
|
||||||
{
|
{
|
||||||
'./ts/**/*.ts': './dist_ts',
|
'./ts/**/*.ts': './dist_ts',
|
||||||
@ -23,7 +24,7 @@ export const runCli = async () => {
|
|||||||
*/
|
*/
|
||||||
tsbuildCli.addCommand('custom').subscribe(async (argvArg) => {
|
tsbuildCli.addCommand('custom').subscribe(async (argvArg) => {
|
||||||
const listedDirectories = argvArg._;
|
const listedDirectories = argvArg._;
|
||||||
listedDirectories.shift();
|
listedDirectories.shift(); // removes the first element that is "custom"
|
||||||
const compilationCommandObject: { [key: string]: string } = {};
|
const compilationCommandObject: { [key: string]: string } = {};
|
||||||
for (const directory of listedDirectories) {
|
for (const directory of listedDirectories) {
|
||||||
compilationCommandObject[`./${directory}/**/*.ts`] = `./dist_${directory}`;
|
compilationCommandObject[`./${directory}/**/*.ts`] = `./dist_${directory}`;
|
||||||
@ -31,15 +32,16 @@ export const runCli = async () => {
|
|||||||
await tsbuild.compileGlobStringObject(compilationCommandObject, {}, process.cwd(), argvArg);
|
await tsbuild.compileGlobStringObject(compilationCommandObject, {}, process.cwd(), argvArg);
|
||||||
});
|
});
|
||||||
|
|
||||||
tsbuildCli.addCommand('element').subscribe(async (argvArg) => {
|
/**
|
||||||
await tsbuild.compileGlobStringObject(
|
* the custom command compiles any customDir to dist_customDir
|
||||||
{
|
*/
|
||||||
'./ts_web/**/*.ts': 'dist_ts_web',
|
tsbuildCli.addCommand('tsfolders').subscribe(async (argvArg) => {
|
||||||
},
|
const tsFolders = await plugins.smartfile.fs.listFolders(paths.cwd, /^ts/)
|
||||||
{},
|
const compilationCommandObject: { [key: string]: string } = {};
|
||||||
process.cwd(),
|
for (const tsFolder of tsFolders) {
|
||||||
{ web: true }
|
compilationCommandObject[`./${tsFolder}/**/*.ts`] = `./dist_${tsFolder}`;
|
||||||
);
|
}
|
||||||
|
await tsbuild.compileGlobStringObject(compilationCommandObject, {}, process.cwd(), argvArg);
|
||||||
});
|
});
|
||||||
|
|
||||||
tsbuildCli.startParse();
|
tsbuildCli.startParse();
|
||||||
|
@ -1,12 +1,8 @@
|
|||||||
import * as plugins from './tsbuild.plugins.js';
|
import * as plugins from './plugins.js';
|
||||||
import type { CompilerOptions, ScriptTarget, ModuleKind } from 'typescript';
|
import type { CompilerOptions, ScriptTarget, ModuleKind } from 'typescript';
|
||||||
import { compiler, mergeCompilerOptions } from './tsbuild.classes.compiler.js';
|
import { compiler, mergeCompilerOptions } from './tsbuild.classes.compiler.js';
|
||||||
|
|
||||||
export type {
|
export type { CompilerOptions, ScriptTarget, ModuleKind };
|
||||||
CompilerOptions,
|
|
||||||
ScriptTarget,
|
|
||||||
ModuleKind
|
|
||||||
}
|
|
||||||
|
|
||||||
export * from './tsbuild.classes.compiler.js';
|
export * from './tsbuild.classes.compiler.js';
|
||||||
|
|
||||||
@ -34,7 +30,7 @@ export let compileGlobStringObject = async (
|
|||||||
cwdArg: string = process.cwd(),
|
cwdArg: string = process.cwd(),
|
||||||
argvArg?: any
|
argvArg?: any
|
||||||
) => {
|
) => {
|
||||||
let compiledFiles: plugins.smartfile.Smartfile[] = [];
|
let compiledFiles: plugins.smartfile.SmartFile[] = [];
|
||||||
for (const keyArg in globStringObjectArg) {
|
for (const keyArg in globStringObjectArg) {
|
||||||
if (globStringObjectArg[keyArg]) {
|
if (globStringObjectArg[keyArg]) {
|
||||||
console.log(
|
console.log(
|
||||||
@ -44,14 +40,14 @@ export let compileGlobStringObject = async (
|
|||||||
const absoluteFilePathArray: string[] = plugins.smartpath.transform.toAbsolute(
|
const absoluteFilePathArray: string[] = plugins.smartpath.transform.toAbsolute(
|
||||||
fileTreeArray,
|
fileTreeArray,
|
||||||
cwdArg
|
cwdArg
|
||||||
);
|
) as string[];
|
||||||
const destDir: string = plugins.smartpath.transform.toAbsolute(
|
const destDir: string = plugins.smartpath.transform.toAbsolute(
|
||||||
globStringObjectArg[keyArg],
|
globStringObjectArg[keyArg],
|
||||||
cwdArg
|
cwdArg
|
||||||
);
|
) as string;
|
||||||
tsOptionsArg = {
|
tsOptionsArg = {
|
||||||
...tsOptionsArg,
|
...tsOptionsArg,
|
||||||
outDir: destDir
|
outDir: destDir,
|
||||||
};
|
};
|
||||||
compiledFiles = compiledFiles.concat(
|
compiledFiles = compiledFiles.concat(
|
||||||
compiledFiles,
|
compiledFiles,
|
||||||
|
@ -1,7 +0,0 @@
|
|||||||
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 typescript from 'typescript';
|
|
||||||
|
|
||||||
export { smartcli, smartfile, smartpath, smartpromise, typescript };
|
|
11
tsconfig.json
Normal file
11
tsconfig.json
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
"compilerOptions": {
|
||||||
|
"experimentalDecorators": true,
|
||||||
|
"useDefineForClassFields": false,
|
||||||
|
"target": "ES2022",
|
||||||
|
"module": "NodeNext",
|
||||||
|
"moduleResolution": "NodeNext",
|
||||||
|
"esModuleInterop": true,
|
||||||
|
"verbatimModuleSyntax": true
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user