Compare commits

...

52 Commits

Author SHA1 Message Date
4892c8f7ae 2.1.84 2024-07-22 00:07:08 +02:00
687f01d1a3 fix(cli): Fixed transpilation order issue in tsfolders command 2024-07-22 00:07:07 +02:00
071b3e222f 2.1.83 2024-07-21 17:33:22 +02:00
fa41dbf332 fix(cli): Ensure ts_shared folder is compiled sedond to interfaces when present 2024-07-21 17:33:21 +02:00
c45a216379 2.1.82 2024-06-24 12:06:19 +02:00
00046837a7 fix(core): Minor improvements and optimizations in core TypeScript compiler integration. 2024-06-24 12:06:18 +02:00
ed22b539f2 2.1.81 2024-06-24 12:00:38 +02:00
43c7021aea fix(dependencies): Update dependencies to latest versions 2024-06-24 12:00:37 +02:00
b21009f815 2.1.80 2024-05-17 19:19:55 +02:00
deba95dfa6 fix(core): update 2024-05-17 19:19:55 +02:00
50e6fec9b0 2.1.79 2024-05-17 19:19:04 +02:00
f7c2a67d81 fix(core): update 2024-05-17 19:19:03 +02:00
91e3502965 2.1.78 2024-05-17 19:18:26 +02:00
0afddbefce fix(core): update 2024-05-17 19:18:26 +02:00
94e879d9fe 2.1.77 2024-05-17 19:17:52 +02:00
43e2a1d777 fix(core): update 2024-05-17 19:17:51 +02:00
9a1f57b92d 2.1.76 2024-05-14 01:20:50 +02:00
0064f63ddb fix(core): update 2024-05-14 01:20:49 +02:00
6e90bdda36 2.1.75 2024-05-10 16:54:46 +02:00
82cce58d69 fix(core): update 2024-05-10 16:54:45 +02:00
a316cc6725 2.1.74 2024-05-10 16:52:43 +02:00
05738a5c94 fix(core): update 2024-05-10 16:52:43 +02:00
651a06ff7b 2.1.73 2024-05-10 15:55:25 +02:00
2f04474dab fix(core): update 2024-05-10 15:55:25 +02:00
d88af368a4 2.1.72 2024-01-08 16:17:15 +01:00
e60816be4c fix(core): update 2024-01-08 16:17:15 +01:00
a9e383ba2d 2.1.71 2024-01-08 16:06:31 +01:00
a3e1cf9e3d fix(core): update 2024-01-08 16:06:30 +01:00
8790886815 2.1.70 2023-08-26 15:34:43 +02:00
611bd0d542 fix(core): update 2023-08-26 15:34:42 +02:00
b182fa5c0a 2.1.69 2023-08-26 14:40:49 +02:00
03d4996284 fix(core): update 2023-08-26 14:40:48 +02:00
6b2d2c9cc3 2.1.68 2023-08-26 13:30:07 +02:00
e9dc5ae444 fix(core): update 2023-08-26 13:30:06 +02:00
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
21 changed files with 3143 additions and 2946 deletions

View File

@ -13,31 +13,24 @@ stages:
- metadata
before_script:
- npm install -g @shipzone/npmci
- pnpm install -g pnpm
- pnpm install -g @shipzone/npmci
- npmci npm prepare
# ====================
# security stage
# ====================
mirror:
stage: security
script:
- npmci git mirror
only:
- tags
tags:
- lossless
- docker
- notpriv
# ====================
# security stage
# ====================
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
- npmci command npm config set registry https://registry.npmjs.org
- npmci command pnpm audit --audit-level=high --prod
tags:
- lossless
- docker
allow_failure: true
@ -45,11 +38,10 @@ auditDevDependencies:
image: registry.gitlab.com/hosttoday/ht-docker-node:npmci
stage: security
script:
- npmci npm prepare
- npmci command npm install --ignore-scripts
- npmci command npm config set registry https://registry.npmjs.org
- npmci command npm audit --audit-level=high --only=dev
- npmci command pnpm audit --audit-level=high --dev
tags:
- lossless
- docker
allow_failure: true
@ -60,7 +52,6 @@ auditDevDependencies:
testStable:
stage: test
script:
- npmci npm prepare
- npmci node install stable
- npmci npm install
- npmci npm test
@ -71,10 +62,9 @@ testStable:
testBuild:
stage: test
script:
- npmci npm prepare
- npmci node install stable
- npmci npm install
- npmci command npm run build
- npmci npm build
coverage: /\d+.?\d+?\%\s*coverage/
tags:
- docker
@ -122,11 +112,9 @@ trigger:
pages:
stage: metadata
script:
- npmci node install lts
- npmci command npm install -g @gitzone/tsdoc
- npmci npm prepare
- npmci node install stable
- npmci npm install
- npmci command tsdoc
- npmci command npm run buildDocs
tags:
- lossless
- docker

179
changelog.md Normal file
View File

@ -0,0 +1,179 @@
# Changelog
## 2024-07-22 - 2.1.84 - fix(cli)
Fixed transpilation order issue in tsfolders command
- Corrected the transpilation order so 'ts_shared' is processed before other folders in the 'tsfolders' CLI command.
## 2024-07-21 - 2.1.83 - fix(cli)
Ensure 'ts_shared' folder is compiled first if present
- Added logic to make sure the 'ts_shared' folder is compiled first when running 'tsfolders' command.
## 2024-06-24 - 2.1.82 - fix(core)
Minor improvements and optimizations in core TypeScript compiler integration.
- Updated TypeScript dependency to latest version 5.5.2.
- Enhanced logging in compiler process.
- Improved handling of CLI commands for better flexibility.
- Compiled output directories are now more structured.
- Refactored internal compiler options merge function.
## 2024-06-24 - 2.1.81 - fix(dependencies)
Update dependencies to latest versions
- Upgraded @push.rocks/smartcli from ^4.0.10 to ^4.0.11
- Upgraded @push.rocks/smartfile from ^11.0.14 to ^11.0.21
- Upgraded @push.rocks/smartlog from ^3.0.3 to ^3.0.7
- Upgraded @push.rocks/smartpromise from ^4.0.3 to ^4.0.4
- Upgraded typescript from 5.4.5 to 5.5.2
- Upgraded @git.zone/tsrun from ^1.2.46 to ^1.2.47
- Upgraded @types/node from ^20.12.11 to ^20.14.8
## 2024-05-17 - 2.1.80 - core
Fix multiple core issues.
- Various small fixes and updates to the core functionality.
## 2024-05-17 - 2.1.76 to 2.1.79 - core
Routine core updates and fixes.
- Several minor enhancements and bug fixes.
## 2024-05-14 - 2.1.74 to 2.1.75 - core
General core maintenance updates.
- Core updated to fix minor bugs.
## 2024-05-10 - 2.1.72 to 2.1.73 - core
Minor core updates.
- Improvements and fixes to core components.
## 2024-01-08 - 2.1.70 to 2.1.71 - core
Core functionality enhancements.
- Small fixes and updates in the core.
## 2023-08-26 - 2.1.66 to 2.1.69 - core
Regular core updates and fixes.
- Various updates to improve core functionality.
## 2023-06-03 - 2.1.65 - core
Core maintenance update.
- Fixed issues in core functionality.
## 2022-08-03 - 2.1.63 to 2.1.64 - core
Minor core updates and fixes.
- Updated core functionality with minor fixes.
## 2022-05-25 - 2.1.61 to 2.1.62 - core
Routine core updates.
- Fixed minor bugs in the core.
## 2022-03-24 - 2.1.60 - core
Core functionality update.
- Fixed various minor issues in core.
## 2022-03-18 - 2.1.57 to 2.1.59 - core
Minor core updates and enhancements.
- Updated core components with small fixes.
## 2022-03-15 - 2.1.50 to 2.1.56 - core
Several core bug fixes.
- Fixed various minor issues in the core functionality.
## 2022-03-14 - 2.1.49 - core
Core update.
- Fixed minor bugs in the core.
## 2022-03-12 - 2.1.43 to 2.1.48 - core
General core maintenance updates.
- Core updated to fix minor bugs and improve functionality.
## 2022-03-11 - 2.1.33 to 2.1.42 - core
Core functionality enhancements and fixes.
- Multiple updates to improve core functionality and fix bugs.
## 2022-03-11 - 2.1.29 to 2.1.32 - core
Routine core updates.
- Minor bug fixes and improvements in core functionality.
## 2022-01-19 - 2.1.28 to 2.1.29 - core
Core bug fixes.
- Updated core to address minor issues.
## 2021-10-06 - 2.1.27 - core
Minor core update.
- Fixed core bugs.
## 2021-09-08 - 2.1.26 - core
Core update.
- Fixed minor bugs in the core.
## 2021-08-17 - 2.1.25 - core
Core bug fixes.
- Small updates to improve core functionality.
## 2020-08-11 - 2.1.24 - core
Routine core update.
- Fixed minor bugs in the core.
## 2020-05-14 - 2.1.23 - core
General core updates.
- Fixes to improve core stability.
## 2020-03-13 - 2.1.20 to 2.1.22 - core
Minor core updates.
- Enhancements and fixes for core functionality.
## 2020-03-09 - 2.1.19 - core
Maintenance core update.
- Fixes addressing minor issues in core functionality.
## 2019-08-26 - 2.1.16 to 2.1.17 - core
Routine minor core updates.
- Improvement and fixes within the core functionality.
## 2019-01-27 - 2.1.6 - custom directory compilation
Now picking up TypeScript files correctly.
- Resolved compilation issues with custom directories.
## 2018-12-05 - 2.1.0 to 2.1.1 - core
Minor core updates.
- Small enhancements and fixes applied to core functionality.
## 2018-12-05 - 2.0.22 - cli options
Now support --web for web compilations targeting Google Chrome.
- Added new CLI option for web compilation.
## 2018-07-25 - 2.0.15 to 2.0.19 - various
Multiple fixes across core, dependency, and compiler modules.
- Packagename fix in core.
- Dependency updates.
- Compiler options fixed.
- Initial core updates.

View File

@ -1,4 +1,4 @@
#!/usr/bin/env node
process.env.CLI_CALL = 'true';
import * as tsrun from '@gitzone/tsrun';
import * as tsrun from '@git.zone/tsrun';
tsrun.runPath('./cli.child.js');

2863
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
{
"name": "@gitzone/tsbuild",
"version": "2.1.58",
"name": "@git.zone/tsbuild",
"version": "2.1.84",
"private": false,
"description": "TypeScript nightly to easily make use of latest features",
"main": "dist_ts/index.js",
@ -11,8 +11,8 @@
},
"scripts": {
"test": "tsrun test/test.ts",
"testCustom": "node cli.ts.js custom ts_web",
"build": "node cli.ts.js --web --allowimplicitany"
"build": "node cli.ts.js --web --allowimplicitany",
"buildDocs": "tsdoc"
},
"repository": {
"type": "git",
@ -28,19 +28,19 @@
},
"homepage": "https://gitlab.com/pushrocks/tsn#README",
"dependencies": {
"@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"
"@push.rocks/early": "^4.0.4",
"@push.rocks/smartcli": "^4.0.11",
"@push.rocks/smartdelay": "^3.0.5",
"@push.rocks/smartfile": "^11.0.21",
"@push.rocks/smartlog": "^3.0.7",
"@push.rocks/smartpath": "^5.0.18",
"@push.rocks/smartpromise": "^4.0.4",
"typescript": "5.5.2"
},
"devDependencies": {
"@gitzone/tsrun": "^1.2.31",
"@pushrocks/tapbundle": "^5.0.2",
"@types/node": "^17.0.21"
"@git.zone/tsrun": "^1.2.47",
"@push.rocks/tapbundle": "^5.0.23",
"@types/node": "^20.14.8"
},
"files": [
"ts/**/*",

2826
pnpm-lock.yaml generated Normal file

File diff suppressed because it is too large Load Diff

0
readme.hints.md Normal file
View File

View File

@ -21,7 +21,6 @@ Code Style | [![Code Style](https://badgen.net/badge/style/prettier/purple)](htt
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
@ -80,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.
> 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)
[![repo-footer](https://lossless.gitlab.io/publicrelations/repofooter.svg)](https://maintainedby.lossless.com)

View File

@ -1,6 +1,6 @@
console.log('test');
console.log('test2');
import * as early from '@pushrocks/early';
import * as early from '@push.rocks/early';
early.start();
early.stop();
import { anExportedString } from './tocompile2.js';
@ -14,4 +14,4 @@ class test2 {
const run = async () => {
return 'hi';
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9jb21waWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdG9jb21waWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDcEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUVyQixPQUFPLEtBQUssS0FBSyxNQUFNLGtCQUFrQixDQUFDO0FBRTFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztBQUNkLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUViLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztBQUU5QixNQUFNLEtBQUs7SUFFVDtRQURBLFNBQUksR0FBYSxFQUFFLENBQUM7UUFFbEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwQixDQUFDO0NBQ0Y7QUFFRCxNQUFNLEdBQUcsR0FBRyxLQUFLLElBQXFCLEVBQUU7SUFDdEMsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDLENBQUMifQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9jb21waWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdG9jb21waWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDcEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUVyQixPQUFPLEtBQUssS0FBSyxNQUFNLG1CQUFtQixDQUFDO0FBRTNDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztBQUNkLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUViLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztBQUU5QixNQUFNLEtBQUs7SUFFVDtRQURBLFNBQUksR0FBYSxFQUFFLENBQUM7UUFFbEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwQixDQUFDO0NBQ0Y7QUFFRCxNQUFNLEdBQUcsR0FBRyxLQUFLLElBQXFCLEVBQUU7SUFDdEMsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDLENBQUMifQ==

View File

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

View File

@ -1,7 +1,7 @@
console.log('test');
console.log('test2');
import * as early from '@pushrocks/early';
import * as early from '@push.rocks/early';
early.start();
early.stop();

View File

@ -1,4 +1,4 @@
import { tap, expect, expectAsync } from '@pushrocks/tapbundle';
import { tap, expect, expectAsync } from '@push.rocks/tapbundle';
import * as tsbuild from '../ts/index.js';

8
ts/00_commitinfo_data.ts Normal file
View File

@ -0,0 +1,8 @@
/**
* autocreated commitinfo by @push.rocks/commitinfo
*/
export const commitinfo = {
name: '@git.zone/tsbuild',
version: '2.1.84',
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');
export * from './tsbuild.exports.js';
export * from './tsbuild.cli.js';

4
ts/paths.ts Normal file
View File

@ -0,0 +1,4 @@
import * as plugins from './plugins.js';
export const cwd = process.cwd();
export const packageDir = plugins.path.join(plugins.smartpath.get.dirnameFromImportMetaUrl(import.meta.url), '../');

22
ts/plugins.ts Normal file
View File

@ -0,0 +1,22 @@
// node native
import * as path from 'path';
export {
path
}
// @push.rocks scope
import * as smartcli from '@push.rocks/smartcli';
import * as smartdelay from '@push.rocks/smartdelay';
import * as smartfile from '@push.rocks/smartfile';
import * as smartpath from '@push.rocks/smartpath';
import * as smartpromise from '@push.rocks/smartpromise';
export { smartcli, smartdelay, smartfile, smartpath, smartpromise };
// third party scope
import typescript from 'typescript';
export {
typescript
}

View File

@ -1,6 +1,6 @@
// import all the stuff we need
import * as plugins from './tsbuild.plugins.js';
import { CompilerOptions, ScriptTarget, ModuleKind } from './tsbuild.exports.js';
import * as plugins from './plugins.js';
import type { CompilerOptions, ScriptTarget, ModuleKind } from './tsbuild.exports.js';
/**
* the default typescript compilerOptions
@ -12,13 +12,14 @@ export const compilerOptionsDefault: CompilerOptions = {
inlineSourceMap: true,
noEmitOnError: true,
outDir: 'dist_ts/',
module: plugins.typescript.ModuleKind.ES2020,
target: plugins.typescript.ScriptTarget.ES2020,
moduleResolution: plugins.typescript.ModuleResolutionKind.Node12,
lib: ['lib.dom.d.ts'],
module: plugins.typescript.ModuleKind.NodeNext,
target: plugins.typescript.ScriptTarget.ESNext,
moduleResolution: plugins.typescript.ModuleResolutionKind.NodeNext,
lib: ['lib.dom.d.ts', 'lib.es2022.d.ts'],
noImplicitAny: true,
esModuleInterop: true,
importsNotUsedAsValues: plugins.typescript.ImportsNotUsedAsValues.Preserve,
useDefineForClassFields: false,
verbatimModuleSyntax: true,
};
/**
@ -66,6 +67,7 @@ export const compiler = async (
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);
}

View File

@ -1,4 +1,5 @@
import * as plugins from './tsbuild.plugins.js';
import * as plugins from './plugins.js';
import * as paths from './paths.js';
import * as tsbuild from './tsbuild.exports.js';
export const runCli = async () => {
@ -7,7 +8,7 @@ export const runCli = async () => {
/**
* the standard task compiles anything in ts/ directory to dist directory
*/
tsbuildCli.standardTask().subscribe(async (argvArg) => {
tsbuildCli.standardCommand().subscribe(async (argvArg) => {
tsbuild.compileGlobStringObject(
{
'./ts/**/*.ts': './dist_ts',
@ -23,7 +24,7 @@ export const runCli = async () => {
*/
tsbuildCli.addCommand('custom').subscribe(async (argvArg) => {
const listedDirectories = argvArg._;
listedDirectories.shift();
listedDirectories.shift(); // removes the first element that is "custom"
const compilationCommandObject: { [key: string]: string } = {};
for (const directory of listedDirectories) {
compilationCommandObject[`./${directory}/**/*.ts`] = `./dist_${directory}`;
@ -31,15 +32,44 @@ export const runCli = async () => {
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, ...argvArg }
);
/**
* the custom command compiles any customDir to dist_customDir
*/
tsbuildCli.addCommand('tsfolders').subscribe(async (argvArg) => {
const tsFolders = await plugins.smartfile.fs.listFolders(paths.cwd, /^ts/);
// lets make sure shared is always transpiled first
const indexShared = tsFolders.indexOf('ts_shared');
if (indexShared > -1) {
tsFolders.splice(indexShared, 1);
tsFolders.unshift('ts_shared');
}
// lets make sure interfaces are always transpiled first
const indexInterfaces = tsFolders.indexOf('ts_interfaces');
if (indexInterfaces > -1) {
tsFolders.splice(indexInterfaces, 1);
tsFolders.unshift('ts_interfaces');
}
const compilationCommandObject: { [key: string]: string } = {};
console.log(`compiling in this order:`);
console.log(tsFolders);
for (const tsFolder of tsFolders) {
compilationCommandObject[`./${tsFolder}/**/*.ts`] = `./dist_${tsFolder}`;
}
await tsbuild.compileGlobStringObject(compilationCommandObject, {}, process.cwd(), argvArg);
});
/**
* the custom command compiles any customDir to dist_customDir
*/
tsbuildCli.addCommand('interfaces').subscribe(async (argvArg) => {
const tsFolders = ['ts_interfaces'];
const compilationCommandObject: { [key: string]: string } = {};
for (const tsFolder of tsFolders) {
compilationCommandObject[`./${tsFolder}/**/*.ts`] = `./dist_${tsFolder}`;
}
await tsbuild.compileGlobStringObject(compilationCommandObject, {}, process.cwd(), argvArg);
});
tsbuildCli.startParse();

View File

@ -1,4 +1,4 @@
import * as plugins from './tsbuild.plugins.js';
import * as plugins from './plugins.js';
import type { CompilerOptions, ScriptTarget, ModuleKind } from 'typescript';
import { compiler, mergeCompilerOptions } from './tsbuild.classes.compiler.js';
@ -30,7 +30,7 @@ export let compileGlobStringObject = async (
cwdArg: string = process.cwd(),
argvArg?: any
) => {
let compiledFiles: plugins.smartfile.Smartfile[] = [];
let compiledFiles: plugins.smartfile.SmartFile[] = [];
for (const keyArg in globStringObjectArg) {
if (globStringObjectArg[keyArg]) {
console.log(
@ -40,11 +40,11 @@ export let compileGlobStringObject = async (
const absoluteFilePathArray: string[] = plugins.smartpath.transform.toAbsolute(
fileTreeArray,
cwdArg
);
) as string[];
const destDir: string = plugins.smartpath.transform.toAbsolute(
globStringObjectArg[keyArg],
cwdArg
);
) as string;
tsOptionsArg = {
...tsOptionsArg,
outDir: destDir,

View File

@ -1,8 +0,0 @@
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 typescript from '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
}
}