From b0b1be70ab1d160fe5c2bfc27ba9e3f58a5ea5b7 Mon Sep 17 00:00:00 2001 From: Philipp Kunz Date: Fri, 18 Mar 2022 14:32:35 +0100 Subject: [PATCH] fix(core): update --- .gitlab-ci.yml | 33 ++++++++++++++++++-------- .vscode/launch.json | 24 +++---------------- .vscode/settings.json | 2 +- npmextra.json | 2 +- package.json | 5 +++- readme.md | 25 ++++++++++++-------- test/assets/output/tocompile2.d.ts | 2 +- test/assets/tocompile.ts | 2 +- test/test.ts | 6 ++--- ts/tsbuild.classes.compiler.ts | 37 +++++++++++++++++------------- ts/tsbuild.cli.ts | 2 +- ts/tsbuild.exports.ts | 8 ++----- 12 files changed, 77 insertions(+), 71 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 8ebc8b5..7b61eb3 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -12,6 +12,9 @@ stages: - release - metadata +before_script: + - npm install -g @shipzone/npmci + # ==================== # security stage # ==================== @@ -19,23 +22,36 @@ mirror: stage: security script: - npmci git mirror + only: + - tags tags: - lossless - docker - notpriv -audit: +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 npm config set registry https://registry.npmjs.org - - npmci command npm audit --audit-level=high + - npmci command npm audit --audit-level=high --only=dev tags: - - lossless - docker - - notpriv + allow_failure: true # ==================== # test stage @@ -50,9 +66,7 @@ testStable: - npmci npm test coverage: /\d+.?\d+?\%\s*coverage/ tags: - - lossless - docker - - priv testBuild: stage: test @@ -63,9 +77,7 @@ testBuild: - npmci command npm run build coverage: /\d+.?\d+?\%\s*coverage/ tags: - - lossless - docker - - notpriv release: stage: release @@ -85,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 diff --git a/.vscode/launch.json b/.vscode/launch.json index 112db52..26e9f92 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -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" } ] } diff --git a/.vscode/settings.json b/.vscode/settings.json index 01d2b8d..3648eaa 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -15,7 +15,7 @@ "properties": { "projectType": { "type": "string", - "enum": ["website", "element", "service", "npm"] + "enum": ["website", "element", "service", "npm", "wcc"] } } } diff --git a/npmextra.json b/npmextra.json index 9e360ba..7b879f5 100644 --- a/npmextra.json +++ b/npmextra.json @@ -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" } diff --git a/package.json b/package.json index e06a7eb..ad700f9 100644 --- a/package.json +++ b/package.json @@ -53,5 +53,8 @@ "cli.js", "npmextra.json", "readme.md" + ], + "browserslist": [ + "last 1 chrome versions" ] -} +} \ No newline at end of file diff --git a/readme.md b/readme.md index b786701..9bc5ba3 100644 --- a/readme.md +++ b/readme.md @@ -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, }; /* diff --git a/test/assets/output/tocompile2.d.ts b/test/assets/output/tocompile2.d.ts index b01ef63..2e587e0 100644 --- a/test/assets/output/tocompile2.d.ts +++ b/test/assets/output/tocompile2.d.ts @@ -1 +1 @@ -export declare const anExportedString = "exported string"; +export declare const anExportedString = 'exported string'; diff --git a/test/assets/tocompile.ts b/test/assets/tocompile.ts index 409b24c..3e2f39e 100644 --- a/test/assets/tocompile.ts +++ b/test/assets/tocompile.ts @@ -6,7 +6,7 @@ import * as early from '@pushrocks/early'; early.start(); early.stop(); -import {anExportedString} from './tocompile2.js'; +import { anExportedString } from './tocompile2.js'; console.log(anExportedString); class test2 { diff --git a/test/test.ts b/test/test.ts index 756a9a6..452d551 100644 --- a/test/test.ts +++ b/test/test.ts @@ -5,14 +5,14 @@ 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 => { +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 => { +tap.test('should convert files from an array with single files to output', async (tools) => { tsbuild.compileGlobStringObject(assetfiles2); }); diff --git a/ts/tsbuild.classes.compiler.ts b/ts/tsbuild.classes.compiler.ts index 45fc5bb..6577829 100644 --- a/ts/tsbuild.classes.compiler.ts +++ b/ts/tsbuild.classes.compiler.ts @@ -2,7 +2,6 @@ import * as plugins from './tsbuild.plugins.js'; import { CompilerOptions, ScriptTarget, ModuleKind } from './tsbuild.exports.js'; - /** * the default typescript compilerOptions */ @@ -19,7 +18,7 @@ export const compilerOptionsDefault: CompilerOptions = { lib: ['lib.dom.d.ts'], noImplicitAny: true, esModuleInterop: true, - importsNotUsedAsValues: plugins.typescript.ImportsNotUsedAsValues.Preserve + importsNotUsedAsValues: plugins.typescript.ImportsNotUsedAsValues.Preserve, }; /** @@ -33,19 +32,25 @@ export const mergeCompilerOptions = ( const mergedOptions: CompilerOptions = { ...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, - } : {}, + ...(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) + console.log(mergedOptions); return mergedOptions; }; @@ -59,9 +64,9 @@ export const compiler = async ( argvArg?: any ): Promise => { if (options.skipLibCheck) { - console.log('? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?') + console.log('? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?'); console.log('You are skipping libcheck... Is that really wanted?'); - console.log('? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?') + console.log('? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?'); await plugins.smartdelay.delayFor(5000); } console.log(`Compiling ${fileNames.length} files...`); @@ -77,7 +82,7 @@ export const compiler = async ( 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'); diff --git a/ts/tsbuild.cli.ts b/ts/tsbuild.cli.ts index 086547a..c467199 100644 --- a/ts/tsbuild.cli.ts +++ b/ts/tsbuild.cli.ts @@ -38,7 +38,7 @@ export const runCli = async () => { }, {}, process.cwd(), - { web: true, ...argvArg }, + { web: true, ...argvArg } ); }); diff --git a/ts/tsbuild.exports.ts b/ts/tsbuild.exports.ts index 8177787..a1abdce 100644 --- a/ts/tsbuild.exports.ts +++ b/ts/tsbuild.exports.ts @@ -2,11 +2,7 @@ import * as plugins from './tsbuild.plugins.js'; import type { CompilerOptions, ScriptTarget, ModuleKind } from 'typescript'; import { compiler, mergeCompilerOptions } from './tsbuild.classes.compiler.js'; -export type { - CompilerOptions, - ScriptTarget, - ModuleKind -} +export type { CompilerOptions, ScriptTarget, ModuleKind }; export * from './tsbuild.classes.compiler.js'; @@ -51,7 +47,7 @@ export let compileGlobStringObject = async ( ); tsOptionsArg = { ...tsOptionsArg, - outDir: destDir + outDir: destDir, }; compiledFiles = compiledFiles.concat( compiledFiles,