Compare commits

...

36 Commits

Author SHA1 Message Date
24574bdb4d 2.1.67 2023-08-26 13:27:51 +02:00
2fe98bec22 fix(core): update 2023-08-26 13:27:51 +02:00
87b6a4efb2 2.1.66 2023-06-03 16:45:40 +02:00
dc81d99ac3 fix(core): update 2023-06-03 16:45:40 +02:00
5d0c9b0326 2.1.65 2022-08-03 19:34:52 +02:00
f27c27bd31 fix(core): update 2022-08-03 19:34:51 +02:00
67e42cc0bd 2.1.64 2022-08-03 19:05:31 +02:00
4a71b92868 fix(core): update 2022-08-03 19:05:31 +02:00
c251bce006 2.1.63 2022-05-25 23:43:44 +02:00
f83b872f31 fix(core): update 2022-05-25 23:43:44 +02:00
4e93832683 2.1.62 2022-05-25 11:52:42 +02:00
4d37e880a3 fix(core): update 2022-05-25 11:52:42 +02:00
b7e6412b7a 2.1.61 2022-03-24 18:24:05 +01:00
113717886c fix(core): update 2022-03-24 18:24:05 +01:00
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
19 changed files with 3489 additions and 2894 deletions

View File

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

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

View File

@ -15,7 +15,7 @@
"properties": { "properties": {
"projectType": { "projectType": {
"type": "string", "type": "string",
"enum": ["website", "element", "service", "npm"] "enum": ["website", "element", "service", "npm", "wcc"]
} }
} }
} }

View File

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

File diff suppressed because it is too large Load Diff

View File

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

File diff suppressed because it is too large Load Diff

View File

@ -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
[![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) Status Category | Status Badge
[![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) GitLab Pipelines | [![pipeline status](https://gitlab.com/gitzone/tsbuild/badges/master/pipeline.svg)](https://lossless.cloud)
[![TypeScript](https://img.shields.io/badge/TypeScript->=%203.x-blue.svg)](https://nodejs.org/dist/latest-v10.x/docs/api/) GitLab Pipline Test Coverage | [![coverage report](https://gitlab.com/gitzone/tsbuild/badges/master/coverage.svg)](https://lossless.cloud)
[![node](https://img.shields.io/badge/node->=%2010.x.x-blue.svg)](https://nodejs.org/dist/latest-v10.x/docs/api/) npm | [![npm downloads per month](https://badgen.net/npm/dy/@gitzone/tsbuild)](https://lossless.cloud)
[![JavaScript Style Guide](https://img.shields.io/badge/code%20style-prettier-ff69b4.svg)](https://prettier.io/) 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)
## 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)
[![repo-footer](https://lossless.gitlab.io/publicrelations/repofooter.svg)](https://maintainedby.lossless.com)

View File

@ -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==

View File

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

View File

@ -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 {

View File

@ -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
View 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'
}

View File

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

View File

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

View File

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

View File

@ -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,

View File

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

@ -0,0 +1,11 @@
{
"compilerOptions": {
"experimentalDecorators": true,
"useDefineForClassFields": false,
"target": "ES2022",
"module": "NodeNext",
"moduleResolution": "NodeNext",
"esModuleInterop": true,
"verbatimModuleSyntax": true
}
}