Compare commits
36 Commits
Author | SHA1 | Date | |
---|---|---|---|
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 |
@ -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"]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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
31
package.json
31
package.json
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@gitzone/tsbuild",
|
"name": "@git.zone/tsbuild",
|
||||||
"version": "2.1.49",
|
"version": "2.1.67",
|
||||||
"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",
|
||||||
@ -12,7 +12,8 @@
|
|||||||
"scripts": {
|
"scripts": {
|
||||||
"test": "tsrun test/test.ts",
|
"test": "tsrun test/test.ts",
|
||||||
"testCustom": "node cli.ts.js custom ts_web",
|
"testCustom": "node cli.ts.js custom ts_web",
|
||||||
"build": "node cli.ts.js --web"
|
"build": "node cli.ts.js --web --allowimplicitany",
|
||||||
|
"buildDocs": "tsdoc"
|
||||||
},
|
},
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
@ -28,18 +29,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.8",
|
||||||
"@pushrocks/smartfile": "^9.0.6",
|
"@push.rocks/smartdelay": "^3.0.5",
|
||||||
"@pushrocks/smartlog": "^2.0.44",
|
"@push.rocks/smartfile": "^10.0.30",
|
||||||
"@pushrocks/smartpath": "^4.0.3",
|
"@push.rocks/smartlog": "^3.0.3",
|
||||||
"@pushrocks/smartpromise": "^3.1.7",
|
"@push.rocks/smartpath": "^5.0.11",
|
||||||
"typescript": "4.7.0"
|
"@push.rocks/smartpromise": "^4.0.3",
|
||||||
|
"typescript": "5.1.3"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@gitzone/tsrun": "^1.2.29",
|
"@gitzone/tsrun": "^1.2.44",
|
||||||
"@pushrocks/tapbundle": "^4.0.8",
|
"@push.rocks/tapbundle": "^5.0.15",
|
||||||
"@types/node": "^17.0.21"
|
"@types/node": "^20.5.6"
|
||||||
},
|
},
|
||||||
"files": [
|
"files": [
|
||||||
"ts/**/*",
|
"ts/**/*",
|
||||||
@ -52,5 +54,8 @@
|
|||||||
"cli.js",
|
"cli.js",
|
||||||
"npmextra.json",
|
"npmextra.json",
|
||||||
"readme.md"
|
"readme.md"
|
||||||
|
],
|
||||||
|
"browserslist": [
|
||||||
|
"last 1 chrome versions"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
3345
pnpm-lock.yaml
generated
Normal file
3345
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)
|
|
||||||
|
@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9jb21waWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdG9jb21waWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDcEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUVyQixPQUFPLEtBQUssS0FBSyxNQUFNLGtCQUFrQixDQUFDO0FBRTFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztBQUNkLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUViLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztBQUU5QixNQUFNLEtBQUs7SUFFVDtRQURBLFNBQUksR0FBYSxFQUFFLENBQUM7UUFFbEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwQixDQUFDO0NBQ0Y7QUFFRCxNQUFNLEdBQUcsR0FBRyxLQUFLLElBQXFCLEVBQUU7SUFDdEMsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDLENBQUMifQ==
|
2
test/assets/output/tocompile2.d.ts
vendored
2
test/assets/output/tocompile2.d.ts
vendored
@ -1 +1 @@
|
|||||||
export declare const anExportedString = "exported string";
|
export declare const anExportedString = 'exported string';
|
||||||
|
@ -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.67',
|
||||||
|
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';
|
||||||
|
@ -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 './tsbuild.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: true,
|
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');
|
||||||
|
@ -7,7 +7,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',
|
||||||
@ -38,7 +38,7 @@ export const runCli = async () => {
|
|||||||
},
|
},
|
||||||
{},
|
{},
|
||||||
process.cwd(),
|
process.cwd(),
|
||||||
{ web: true }
|
{ web: true, ...argvArg }
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -2,11 +2,7 @@ import * as plugins from './tsbuild.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';
|
||||||
|
|
||||||
@ -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 +1,8 @@
|
|||||||
import * as smartcli from '@pushrocks/smartcli';
|
import * as smartcli from '@push.rocks/smartcli';
|
||||||
import * as smartfile from '@pushrocks/smartfile';
|
import * as smartdelay from '@push.rocks/smartdelay';
|
||||||
import * as smartpath from '@pushrocks/smartpath';
|
import * as smartfile from '@push.rocks/smartfile';
|
||||||
import * as smartpromise from '@pushrocks/smartpromise';
|
import * as smartpath from '@push.rocks/smartpath';
|
||||||
|
import * as smartpromise from '@push.rocks/smartpromise';
|
||||||
import typescript from 'typescript';
|
import typescript from 'typescript';
|
||||||
|
|
||||||
export { smartcli, smartfile, smartpath, smartpromise, typescript };
|
export { smartcli, smartdelay, 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