Compare commits

...

68 Commits

Author SHA1 Message Date
98b4d4bc5b 2.1.60 2022-03-18 22:12:28 +01:00
83f496f0ca fix(core): update 2022-03-18 22:12:27 +01:00
662b7d4e6c 2.1.59 2022-03-18 14:33:22 +01:00
ab43ea0a10 fix(core): update 2022-03-18 14:33:22 +01:00
0561f655cb 2.1.58 2022-03-18 14:32:35 +01:00
b0b1be70ab fix(core): update 2022-03-18 14:32:35 +01:00
dda03bad45 2.1.57 2022-03-18 14:31:48 +01:00
a0b9f8d8f3 fix(core): update 2022-03-18 14:31:48 +01:00
da823e51d5 2.1.56 2022-03-15 20:06:48 +01:00
b68aa06941 fix(core): update 2022-03-15 20:06:48 +01:00
f5ee2c2c70 2.1.55 2022-03-15 10:21:15 +01:00
0c018e6448 fix(core): update 2022-03-15 10:21:15 +01:00
565c66e4e6 2.1.54 2022-03-15 10:18:09 +01:00
72ad77446c fix(core): update 2022-03-15 10:18:08 +01:00
59ce28395f 2.1.53 2022-03-15 10:04:59 +01:00
cddd7ffd25 fix(core): update 2022-03-15 10:04:59 +01:00
48ef556e6b 2.1.52 2022-03-15 09:59:31 +01:00
0645beb199 fix(core): update 2022-03-15 09:59:30 +01:00
97f52d1016 2.1.51 2022-03-15 09:45:49 +01:00
8d725e2e11 fix(core): update 2022-03-15 09:45:49 +01:00
42b83b888e 2.1.50 2022-03-14 21:46:42 +01:00
832664b667 fix(core): update 2022-03-14 21:46:41 +01:00
4925809030 2.1.49 2022-03-14 16:04:07 +01:00
622a080b3c fix(core): update 2022-03-14 16:04:07 +01:00
18747dbc83 2.1.48 2022-03-12 23:15:28 +01:00
210a7a07f7 fix(core): update 2022-03-12 23:15:28 +01:00
211d42c36b 2.1.47 2022-03-12 21:09:33 +01:00
cfbe4bbcb9 fix(core): update 2022-03-12 21:09:33 +01:00
72350a49ec 2.1.46 2022-03-12 19:42:49 +01:00
d4a0d03301 fix(core): update 2022-03-12 19:42:49 +01:00
75f506ba0e 2.1.45 2022-03-12 19:32:15 +01:00
035207f4f9 fix(core): update 2022-03-12 19:32:15 +01:00
6d2d48af9d 2.1.44 2022-03-12 19:05:47 +01:00
9adbce12e1 fix(core): update 2022-03-12 19:05:46 +01:00
318189c7b2 2.1.43 2022-03-11 18:08:24 +01:00
167483b909 2.1.42 2022-03-11 18:08:19 +01:00
67db62e7d5 2.1.41 2022-03-11 18:07:07 +01:00
ddf76c31b9 2.1.40 2022-03-11 18:07:02 +01:00
6a0a53adda fix(core): update 2022-03-11 18:07:01 +01:00
eb1a70ea70 2.1.39 2022-03-11 18:05:10 +01:00
c10ddd3c1e 2.1.38 2022-03-11 18:05:03 +01:00
9c9f7ae1dc fix(core): update 2022-03-11 18:05:02 +01:00
70245584d7 2.1.37 2022-03-11 17:45:57 +01:00
f11d7c6cb0 2.1.36 2022-03-11 17:45:51 +01:00
dc7980e619 fix(core): update 2022-03-11 17:45:51 +01:00
686a428624 2.1.35 2022-03-11 17:41:00 +01:00
6772bb439c 2.1.34 2022-03-11 17:40:52 +01:00
3acab250db fix(core): update 2022-03-11 17:40:52 +01:00
ec90a006ce 2.1.33 2022-03-11 17:39:10 +01:00
30ba0c99fd 2.1.32 2022-03-11 17:38:54 +01:00
17a7749f23 fix(core): update 2022-03-11 17:38:54 +01:00
3926a66d1d 2.1.31 2022-03-11 17:36:32 +01:00
6eb5755aed 2.1.30 2022-03-11 17:36:27 +01:00
165113f132 fix(core): update 2022-03-11 17:36:27 +01:00
7ee9935a9a 2.1.29 2022-01-19 17:59:08 +01:00
5128d450bc fix(core): update 2022-01-19 17:59:07 +01:00
8708b1442d 2.1.28 2021-10-06 13:33:35 +02:00
0e39dfecba fix(core): update 2021-10-06 13:33:35 +02:00
b4e8accad6 2.1.27 2021-09-08 22:18:27 +02:00
1415d66ffb fix(core): update 2021-09-08 22:18:26 +02:00
38e3eed003 2.1.26 2021-08-17 12:13:52 +02:00
466095ed26 fix(core): update 2021-08-17 12:13:51 +02:00
3d8041fdde 2.1.25 2020-08-10 22:10:20 +00:00
f021525f9e fix(core): update 2020-08-10 22:10:20 +00:00
63fa2e84d4 2.1.24 2020-05-14 09:51:22 +00:00
af66bd8ff1 fix(core): update 2020-05-14 09:51:22 +00:00
53f4e402f5 2.1.23 2020-04-30 09:02:43 +00:00
2f57c26b87 fix(core): update 2020-04-30 09:02:43 +00:00
25 changed files with 2678 additions and 1219 deletions

View File

@ -12,6 +12,9 @@ stages:
- release
- metadata
before_script:
- npm install -g @shipzone/npmci
# ====================
# security stage
# ====================
@ -19,22 +22,36 @@ mirror:
stage: security
script:
- npmci git mirror
only:
- tags
tags:
- lossless
- docker
- notpriv
snyk:
image: registry.gitlab.com/hosttoday/ht-docker-node:snyk
auditProductionDependencies:
image: registry.gitlab.com/hosttoday/ht-docker-node:npmci
stage: security
script:
- npmci npm prepare
- npmci command npm install --production --ignore-scripts
- npmci command npm config set registry https://registry.npmjs.org
- npmci command npm audit --audit-level=high --only=prod --production
tags:
- docker
allow_failure: true
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 npm audit --audit-level=high --only=dev
tags:
- lossless
- docker
- notpriv
allow_failure: true
# ====================
# test stage
@ -49,9 +66,7 @@ testStable:
- npmci npm test
coverage: /\d+.?\d+?\%\s*coverage/
tags:
- lossless
- docker
- priv
testBuild:
stage: test
@ -62,9 +77,7 @@ testBuild:
- npmci command npm run build
coverage: /\d+.?\d+?\%\s*coverage/
tags:
- lossless
- docker
- notpriv
release:
stage: release
@ -84,11 +97,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

4
.snyk
View File

@ -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
View File

@ -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"
}
]
}

View File

@ -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
View 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
View File

@ -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();

View File

@ -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');

View File

@ -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"
}

3520
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,17 +1,18 @@
{
"name": "@gitzone/tsbuild",
"version": "2.1.22",
"version": "2.1.60",
"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"
},
"repository": {
"type": "git",
@ -27,31 +28,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"
"@pushrocks/early": "^3.0.6",
"@pushrocks/smartcli": "^3.0.14",
"@pushrocks/smartdelay": "^2.0.13",
"@pushrocks/smartfile": "^9.0.6",
"@pushrocks/smartlog": "^2.0.44",
"@pushrocks/smartpath": "^5.0.4",
"@pushrocks/smartpromise": "^3.1.7",
"typescript": "4.7.0"
},
"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.31",
"@pushrocks/tapbundle": "^5.0.2",
"@types/node": "^17.0.21"
},
"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"
]
}

View File

@ -8,13 +8,20 @@ TypeScript nightly to easily make use of latest features
* [docs (typedoc)](https://gitzone.gitlab.io/tsbuild/)
## Status for master
[![pipeline status](https://gitlab.com/gitzone/tsbuild/badges/master/pipeline.svg)](https://gitlab.com/gitzone/tsbuild/commits/master)
[![coverage report](https://gitlab.com/gitzone/tsbuild/badges/master/coverage.svg)](https://gitlab.com/gitzone/tsbuild/commits/master)
[![npm downloads per month](https://img.shields.io/npm/dm/@gitzone/tsbuild.svg)](https://www.npmjs.com/package/@gitzone/tsbuild)
[![Known Vulnerabilities](https://snyk.io/test/npm/@gitzone/tsbuild/badge.svg)](https://snyk.io/test/npm/@gitzone/tsbuild)
[![TypeScript](https://img.shields.io/badge/TypeScript->=%203.x-blue.svg)](https://nodejs.org/dist/latest-v10.x/docs/api/)
[![node](https://img.shields.io/badge/node->=%2010.x.x-blue.svg)](https://nodejs.org/dist/latest-v10.x/docs/api/)
[![JavaScript Style Guide](https://img.shields.io/badge/code%20style-prettier-ff69b4.svg)](https://prettier.io/)
Status Category | Status Badge
-- | --
GitLab Pipelines | [![pipeline status](https://gitlab.com/gitzone/tsbuild/badges/master/pipeline.svg)](https://lossless.cloud)
GitLab Pipline Test Coverage | [![coverage report](https://gitlab.com/gitzone/tsbuild/badges/master/coverage.svg)](https://lossless.cloud)
npm | [![npm downloads per month](https://badgen.net/npm/dy/@gitzone/tsbuild)](https://lossless.cloud)
Snyk | [![Known Vulnerabilities](https://badgen.net/snyk/gitzone/tsbuild)](https://lossless.cloud)
TypeScript Support | [![TypeScript](https://badgen.net/badge/TypeScript/>=%203.x/blue?icon=typescript)](https://lossless.cloud)
node Support | [![node](https://img.shields.io/badge/node->=%2010.x.x-blue.svg)](https://nodejs.org/dist/latest-v10.x/docs/api/)
Code Style | [![Code Style](https://badgen.net/badge/style/prettier/purple)](https://lossless.cloud)
PackagePhobia (total standalone install weight) | [![PackagePhobia](https://badgen.net/packagephobia/install/@gitzone/tsbuild)](https://lossless.cloud)
PackagePhobia (package size on registry) | [![PackagePhobia](https://badgen.net/packagephobia/publish/@gitzone/tsbuild)](https://lossless.cloud)
BundlePhobia (total size when bundled) | [![BundlePhobia](https://badgen.net/bundlephobia/minzip/@gitzone/tsbuild)](https://lossless.cloud)
Platform support | [![Supports Windows 10](https://badgen.net/badge/supports%20Windows%2010/yes/green?icon=windows)](https://lossless.cloud) [![Supports Mac OS X](https://badgen.net/badge/supports%20Mac%20OS%20X/yes/green?icon=apple)](https://lossless.cloud)
## Usage
@ -25,12 +32,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,7 +74,6 @@ tsn.compileGlobStringObject(
[![npm](https://push.rocks/assets/repo-header.svg)](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). :)

View File

@ -1,5 +1 @@
declare class test2 {
test: string[];
constructor();
}
declare const run: () => Promise<string>;
export {};

View File

@ -1,5 +1,10 @@
console.log('test');
console.log('test2');
import * as early from '@pushrocks/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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9jb21waWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdG9jb21waWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDcEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUVyQixPQUFPLEtBQUssS0FBSyxNQUFNLGtCQUFrQixDQUFDO0FBRTFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztBQUNkLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUViLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztBQUU5QixNQUFNLEtBQUs7SUFFVDtRQURBLFNBQUksR0FBYSxFQUFFLENBQUM7UUFFbEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwQixDQUFDO0NBQ0Y7QUFFRCxNQUFNLEdBQUcsR0FBRyxLQUFLLElBQXFCLEVBQUU7SUFDdEMsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDLENBQUMifQ==

View File

@ -0,0 +1 @@
export declare const anExportedString = 'exported string';

View File

@ -1,2 +1,3 @@
console.log('hello');
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9jb21waWxlMi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RvY29tcGlsZTIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyJ9
export const anExportedString = 'exported string';
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9jb21waWxlMi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RvY29tcGlsZTIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUNyQixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxpQkFBaUIsQ0FBQyJ9

View File

@ -1,5 +1,14 @@
console.log('test');
console.log('test2');
import * as early from '@pushrocks/early';
early.start();
early.stop();
import { anExportedString } from './tocompile2.js';
console.log(anExportedString);
class test2 {
test: string[] = [];
constructor() {

View File

@ -1 +1,2 @@
console.log('hello');
export const anExportedString = 'exported string';

View File

@ -1,19 +1,19 @@
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.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();

View File

@ -1,3 +1,5 @@
export * from './tsbuild.exports';
import './tsbuild.cli';
import * as early from '@pushrocks/early';
early.start('tsbuild');
export * from './tsbuild.exports.js';
export * from './tsbuild.cli.js';
early.stop();

View File

@ -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 { CompilerOptions, ScriptTarget, ModuleKind } from './tsbuild.exports.js';
/**
* the default typescript compilerOptions
@ -13,16 +12,13 @@ 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.ES2022,
target: plugins.typescript.ScriptTarget.ES2022,
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']
importsNotUsedAsValues: plugins.typescript.ImportsNotUsedAsValues.Preserve,
};
/**
@ -32,31 +28,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 +83,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');

View File

@ -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.standardTask().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();
};

View File

@ -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(
const destDir: string = plugins.smartpath.transform.toAbsolute(
globStringObjectArg[keyArg],
cwdArg
);
tsOptionsArg = {
...tsOptionsArg,
outDir: destDir
outDir: destDir,
};
compiledFiles = compiledFiles.concat(
compiledFiles,

View File

@ -1,7 +1,8 @@
import * as smartcli from '@pushrocks/smartcli';
import * as smartdelay from '@pushrocks/smartdelay';
import * as smartfile from '@pushrocks/smartfile';
import * as smartpath from '@pushrocks/smartpath';
import * as smartpromise from '@pushrocks/smartpromise';
import * as typescript from 'typescript';
import typescript from 'typescript';
export { smartcli, smartfile, smartpath, smartpromise, typescript };
export { smartcli, smartdelay, smartfile, smartpath, smartpromise, typescript };

View File

@ -1,14 +0,0 @@
{
"compilerOptions": {
"outDir": "dist_ts/",
"module": "commonjs",
"target": "es2015",
"lib":[
"es2016",
"es2017"
]
},
"include": [
"ts/**/*.ts"
]
}

View File

@ -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"
}