Compare commits

...

54 Commits

Author SHA1 Message Date
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
3e05c116f3 2.1.22 2020-03-13 19:23:53 +00:00
d2dbe40b50 fix(core): update 2020-03-13 19:23:52 +00:00
835fba3452 2.1.21 2020-03-13 19:23:02 +00:00
d35cff7135 fix(core): update 2020-03-13 19:23:01 +00:00
26 changed files with 2645 additions and 1214 deletions

4
.gitignore vendored
View File

@ -15,8 +15,6 @@ node_modules/
# builds
dist/
dist_web/
dist_serve/
dist_ts_web/
dist_*/
# custom

View File

@ -1,18 +1,16 @@
# gitzone ci_default
image: registry.gitlab.com/hosttoday/ht-docker-node:npmci
variables:
GIT_STRATEGY: clone
cache:
paths:
- .npmci_cache/
key: "$CI_BUILD_STAGE"
- .npmci_cache/
key: '$CI_BUILD_STAGE'
stages:
- security
- test
- release
- metadata
- security
- test
- release
- metadata
# ====================
# security stage
@ -20,21 +18,24 @@ stages:
mirror:
stage: security
script:
- npmci git mirror
- npmci git mirror
tags:
- docker
- notpriv
- lossless
- docker
- notpriv
snyk:
audit:
image: registry.gitlab.com/hosttoday/ht-docker-node:npmci
stage: security
script:
- npmci npm prepare
- npmci command npm install -g snyk
- npmci command npm install --ignore-scripts
- npmci command snyk test
- npmci command npm config set registry https://registry.npmjs.org
- npmci command npm audit --audit-level=high
tags:
- docker
- notpriv
- lossless
- docker
- notpriv
# ====================
# test stage
@ -43,37 +44,40 @@ snyk:
testStable:
stage: test
script:
- npmci npm prepare
- npmci node install stable
- npmci npm install
- npmci npm test
- npmci npm prepare
- npmci node install stable
- npmci npm install
- npmci npm test
coverage: /\d+.?\d+?\%\s*coverage/
tags:
- docker
- priv
- lossless
- docker
- priv
testBuild:
stage: test
script:
- npmci npm prepare
- npmci node install lts
- npmci npm install
- npmci command npm run build
- npmci npm prepare
- npmci node install stable
- npmci npm install
- npmci command npm run build
coverage: /\d+.?\d+?\%\s*coverage/
tags:
- docker
- notpriv
- lossless
- docker
- notpriv
release:
stage: release
script:
- npmci node install lts
- npmci npm publish
- npmci node install stable
- npmci npm publish
only:
- tags
- tags
tags:
- docker
- notpriv
- lossless
- docker
- notpriv
# ====================
# metadata stage
@ -83,33 +87,35 @@ codequality:
allow_failure: true
script:
- npmci command npm install -g tslint typescript
- npmci npm prepare
- npmci npm install
- npmci command "tslint -c tslint.json ./ts/**/*.ts"
tags:
- docker
- priv
- lossless
- docker
- priv
trigger:
stage: metadata
script:
- npmci trigger
- npmci trigger
only:
- tags
- tags
tags:
- docker
- notpriv
- lossless
- docker
- notpriv
pages:
image: hosttoday/ht-docker-dbase:npmci
services:
- docker:18-dind
stage: metadata
script:
- npmci node install lts
- npmci command npm install -g @gitzone/tsdoc
- npmci npm prepare
- npmci npm install
- npmci command tsdoc
tags:
- lossless
- docker
- notpriv
only:
@ -117,5 +123,5 @@ pages:
artifacts:
expire_in: 1 week
paths:
- public
- public
allow_failure: true

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: {}

29
.vscode/launch.json vendored Normal file
View File

@ -0,0 +1,29 @@
{
"version": "0.2.0",
"configurations": [
{
"name": "current file",
"type": "node",
"request": "launch",
"args": [
"${relativeFile}"
],
"runtimeArgs": ["-r", "@gitzone/tsrun"],
"cwd": "${workspaceRoot}",
"protocol": "inspector",
"internalConsoleOptions": "openOnSessionStart"
},
{
"name": "test.ts",
"type": "node",
"request": "launch",
"args": [
"test/test.ts"
],
"runtimeArgs": ["-r", "@gitzone/tsrun"],
"cwd": "${workspaceRoot}",
"protocol": "inspector",
"internalConsoleOptions": "openOnSessionStart"
}
]
}

26
.vscode/settings.json vendored Normal file
View File

@ -0,0 +1,26 @@
{
"json.schemas": [
{
"fileMatch": ["/npmextra.json"],
"schema": {
"type": "object",
"properties": {
"npmci": {
"type": "object",
"description": "settings for npmci"
},
"gitzone": {
"type": "object",
"description": "settings for gitzone",
"properties": {
"projectType": {
"type": "string",
"enum": ["website", "element", "service", "npm"]
}
}
}
}
}
}
]
}

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/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

@ -4,6 +4,7 @@
"npmAccessLevel": "public"
},
"gitzone": {
"projectType": "npm",
"module": {
"githost": "gitlab.com",
"gitscope": "gitzone",

3433
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.20",
"version": "2.1.51",
"private": false,
"description": "TypeScript nightly to easily make use of latest features",
"main": "dist/index.js",
"typings": "dist/index.d.ts",
"main": "dist_ts/index.js",
"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,27 +28,27 @@
},
"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/smartfile": "^9.0.6",
"@pushrocks/smartlog": "^2.0.44",
"@pushrocks/smartpath": "^4.0.3",
"@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.29",
"@pushrocks/tapbundle": "^4.0.8",
"@types/node": "^17.0.21"
},
"files": [
"ts/*",
"ts_web/*",
"dist/*",
"dist_web/*",
"dist_ts_web/*",
"assets/*",
"ts/**/*",
"ts_web/**/*",
"dist/**/*",
"dist_*/**/*",
"dist_ts/**/*",
"dist_ts_web/**/*",
"assets/**/*",
"cli.js",
"npmextra.json",
"readme.md"

View File

@ -8,7 +8,7 @@ TypeScript nightly to easily make use of latest features
* [docs (typedoc)](https://gitzone.gitlab.io/tsbuild/)
## Status for master
[![build status](https://gitlab.com/gitzone/tsbuild/badges/master/build.svg)](https://gitlab.com/gitzone/tsbuild/commits/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)
@ -67,6 +67,10 @@ 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). :)
For further information read the linked docs at the top of this readme.
> MIT licensed | **©** [Lossless GmbH](https://lossless.gmbh)

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,6 +1,6 @@
import { tap, expect } from '@pushrocks/tapbundle';
import { tap, expect, expectAsync } from '@pushrocks/tapbundle';
import * as tsn from '../ts/index';
import * as tsbuild from '../ts/index.js';
let assetfiles: string[] = ['./test/assets/tocompile.ts', './test/assets/tocompile2.ts'];
@ -9,11 +9,11 @@ let assetfiles2 = {
};
tap.test('should convert files from an array with single files to output', async tools => {
tsn.compileFileArray(assetfiles, { outDir: './test/assets/output' });
tsbuild.compileFileArray(assetfiles, { outDir: './test/assets/output' });
});
tap.test('should convert files from an array with single files to output', async tools => {
tsn.compileGlobStringObject(assetfiles2);
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,7 @@
// 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
@ -12,12 +12,14 @@ export const compilerOptionsDefault: CompilerOptions = {
experimentalDecorators: true,
inlineSourceMap: true,
noEmitOnError: true,
outDir: 'dist/',
module: plugins.typescript.ModuleKind.CommonJS,
lib: ['lib.es2017.d.ts'],
noImplicitAny: false,
outDir: 'dist_ts/',
module: plugins.typescript.ModuleKind.ES2020,
target: plugins.typescript.ScriptTarget.ES2020,
moduleResolution: plugins.typescript.ModuleResolutionKind.Node12,
lib: [],
noImplicitAny: true,
esModuleInterop: true,
target: plugins.typescript.ScriptTarget.ES2017
importsNotUsedAsValues: plugins.typescript.ImportsNotUsedAsValues.Preserve
};
export const compilerOptionsWebDefault: CompilerOptions = {
@ -41,9 +43,19 @@ export const mergeCompilerOptions = (
})();
// create merged options
let mergedOptions: CompilerOptions = {
const mergedOptions: CompilerOptions = {
...defaultOptionsToMerge,
...customTsOptions
...customTsOptions,
...argvArg && argvArg.skiplibcheck ? {
skipLibCheck: true
} : {},
...argvArg && argvArg.allowimplicitany ? {
noImplicitAny: false
} : {},
...argvArg && argvArg.commonjs ? {
module: plugins.typescript.ModuleKind.CommonJS,
moduleResolution: plugins.typescript.ModuleResolutionKind.Classic,
} : {},
};
return mergedOptions;
@ -58,22 +70,22 @@ export const compiler = (
argvArg?: any
): Promise<any[]> => {
console.log(`Compiling ${fileNames.length} files...`);
let done = plugins.smartpromise.defer<any[]>();
let program = plugins.typescript.createProgram(fileNames, options);
let emitResult = program.emit();
const done = plugins.smartpromise.defer<any[]>();
const program = plugins.typescript.createProgram(fileNames, options);
const emitResult = program.emit();
// implement check only
/*let emitResult = program.emit(undefined,(args) => {
console.log(args)
});*/
let allDiagnostics = plugins.typescript
const allDiagnostics = plugins.typescript
.getPreEmitDiagnostics(program)
.concat(emitResult.diagnostics);
allDiagnostics.forEach(diagnostic => {
if (diagnostic.file) {
let { line, character } = diagnostic.file.getLineAndCharacterOfPosition(diagnostic.start!);
let message = plugins.typescript.flattenDiagnosticMessageText(diagnostic.messageText, '\n');
const { line, character } = diagnostic.file.getLineAndCharacterOfPosition(diagnostic.start!);
const message = plugins.typescript.flattenDiagnosticMessageText(diagnostic.messageText, '\n');
console.log(`${diagnostic.file.fileName} (${line + 1},${character + 1}): ${message}`);
} else {
console.log(
@ -82,7 +94,7 @@ export const compiler = (
}
});
let exitCode = emitResult.emitSkipped ? 1 : 0;
const exitCode = emitResult.emitSkipped ? 1 : 0;
if (exitCode === 0) {
console.log('TypeScript emit succeeded!');
done.resolve(emitResult.emittedFiles);

View File

@ -1,41 +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': './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 }
);
});
tsbuildCli.startParse();
tsbuildCli.startParse();
};

View File

@ -1,7 +1,14 @@
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,18 +34,18 @@ 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
);

View File

@ -2,6 +2,6 @@ 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 typescript from 'typescript';
export { smartcli, smartfile, smartpath, smartpromise, typescript };

View File

@ -1,14 +0,0 @@
{
"compilerOptions": {
"outDir": "dist/",
"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"
}