Compare commits

..

3 Commits

Author SHA1 Message Date
135e860c71 1.1.3 2018-07-13 22:31:34 +02:00
56be247d16 1.1.2 2018-07-13 22:31:15 +02:00
94ce004e91 fix(dependencies): update to @pushrocks/smartfile 2018-07-13 22:31:15 +02:00
8 changed files with 244 additions and 969 deletions

View File

@ -117,9 +117,8 @@ pages:
image: hosttoday/ht-docker-node:npmci image: hosttoday/ht-docker-node:npmci
stage: metadata stage: metadata
script: script:
- npmci command npm install -g typedoc typescript - npmci command npm install -g npmpage
- npmci npm install - npmci command npmpage
- npmci command typedoc --module "commonjs" --target "ES2016" --out public/ ts/
tags: tags:
- docker - docker
- notpriv - notpriv

26
dist/index.js vendored
View File

@ -2,20 +2,26 @@
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
const path = require("path"); const path = require("path");
const tsNode = require("ts-node"); const tsNode = require("ts-node");
const tsCacheDir = path.join(__dirname, "../tscache");
const defaultTsNodeOptions = { const defaultTsNodeOptions = {
compilerOptions: { compilerOptions: {
lib: ['es2016', 'es2017'], lib: ["es2016", "es2017"],
target: 'es2015', target: "es2015"
experimentalDecorators: true
}, },
skipIgnore: true skipIgnore: true,
cacheDirectory: tsCacheDir
}; };
if (process.argv.includes('--web')) { // check wether a cache is feasible
const previousCompilerOptions = defaultTsNodeOptions.compilerOptions; if (process.argv.includes("--nocache")) {
defaultTsNodeOptions.compilerOptions = Object.assign({}, previousCompilerOptions, { lib: [...previousCompilerOptions.lib, 'dom'] }); defaultTsNodeOptions.cache = false;
} }
if (process.argv.includes('--nocache')) { else {
// currently caching is not used var fs = require('fs');
fs.access(tsCacheDir, fs.constants.W_OK, function (err) {
if (err) {
defaultTsNodeOptions.cache = false;
}
});
} }
tsNode.register(defaultTsNodeOptions); tsNode.register(defaultTsNodeOptions);
if (process.env.CLI_CALL_TSRUN) { if (process.env.CLI_CALL_TSRUN) {
@ -26,4 +32,4 @@ if (process.env.CLI_CALL_TSRUN) {
const pathToLoad = path.join(process.cwd(), pathToTsFile); const pathToLoad = path.join(process.cwd(), pathToTsFile);
Promise.resolve().then(() => require(pathToLoad)); Promise.resolve().then(() => require(pathToLoad));
} }
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDZCQUE2QjtBQUM3QixrQ0FBa0M7QUFHbEMsTUFBTSxvQkFBb0IsR0FBbUI7SUFDM0MsZUFBZSxFQUFtQjtRQUNoQyxHQUFHLEVBQUUsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDO1FBQ3pCLE1BQU0sRUFBTyxRQUFRO1FBQ3JCLHNCQUFzQixFQUFFLElBQUk7S0FDN0I7SUFDRCxVQUFVLEVBQUUsSUFBSTtDQUNqQixDQUFDO0FBRUYsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRTtJQUNsQyxNQUFNLHVCQUF1QixHQUFHLG9CQUFvQixDQUFDLGVBQWtDLENBQUM7SUFDeEYsb0JBQW9CLENBQUMsZUFBZSxxQkFDL0IsdUJBQXVCLElBQzFCLEdBQUcsRUFBRSxDQUFDLEdBQUcsdUJBQXVCLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxHQUM3QyxDQUFBO0NBQ0Y7QUFFRCxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxFQUFFO0lBQ3RDLGdDQUFnQztDQUNqQztBQUVELE1BQU0sQ0FBQyxRQUFRLENBQUMsb0JBQW9CLENBQUMsQ0FBQztBQUV0QyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFFO0lBQzlCLHlCQUF5QjtJQUN6QixxQ0FBcUM7SUFDckMsc0NBQXNDO0lBQ3RDLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFckMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDMUQscUNBQU8sVUFBVSxHQUFFO0NBQ3BCIn0= //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDZCQUE2QjtBQUM3QixrQ0FBa0M7QUFFbEMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsWUFBWSxDQUFDLENBQUM7QUFFdEQsTUFBTSxvQkFBb0IsR0FBbUI7SUFDM0MsZUFBZSxFQUFFO1FBQ2YsR0FBRyxFQUFFLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQztRQUN6QixNQUFNLEVBQUUsUUFBUTtLQUNqQjtJQUNELFVBQVUsRUFBRSxJQUFJO0lBQ2hCLGNBQWMsRUFBRSxVQUFVO0NBQzNCLENBQUM7QUFFRixtQ0FBbUM7QUFDbkMsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsRUFBRTtJQUN0QyxvQkFBb0IsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0NBQ3BDO0tBQU07SUFDTCxJQUFJLEVBQUUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkIsRUFBRSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsVUFBUyxHQUFHO1FBQ25ELElBQUksR0FBRyxFQUFFO1lBQ1Asb0JBQW9CLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztTQUNwQztJQUNILENBQUMsQ0FBQyxDQUFDO0NBQ0o7QUFFRCxNQUFNLENBQUMsUUFBUSxDQUFDLG9CQUFvQixDQUFDLENBQUM7QUFFdEMsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsRUFBRTtJQUM5Qix5QkFBeUI7SUFDekIscUNBQXFDO0lBQ3JDLHNDQUFzQztJQUN0QyxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRXJDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQzFELHFDQUFPLFVBQVUsR0FBRTtDQUNwQiJ9

View File

@ -2,7 +2,10 @@
"npmts": { "npmts": {
}, },
"npmci": { "npmci": {
"npmGlobalTools": [], "npmGlobalTools": [
"@gitzone/npmts",
"ts-node"
],
"npmAccessLevel": "public" "npmAccessLevel": "public"
} }
} }

1069
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
{ {
"name": "@gitzone/tsrun", "name": "@gitzone/tsrun",
"version": "1.2.0", "version": "1.1.3",
"description": "run typescript programs efficiently", "description": "run typescript programs efficiently",
"main": "dist/index.js", "main": "dist/index.js",
"typings": "dist/index.d.ts", "typings": "dist/index.d.ts",
@ -10,20 +10,18 @@
"tsrun": "./cli.js" "tsrun": "./cli.js"
}, },
"scripts": { "scripts": {
"test": "(tsbuild && node ./cli.js test/test.ts)", "test": "(npmts --notest && node ./cli.js test/test.ts)",
"format": "(gitzone format)", "format": "(gitzone format)",
"build": "(tsbuild)" "build": "echo \"Not needed for now\"",
"postinstall": "(node ./cli.js scripts/postinstall.ts)"
}, },
"devDependencies": { "devDependencies": {
"@types/node": "^11.10.4", "@types/node": "^10.5.2"
"tslint": "^5.13.1",
"tslint-config-prettier": "^1.18.0"
}, },
"dependencies": { "dependencies": {
"@gitzone/tsbuild": "^2.1.8", "@pushrocks/smartfile": "^6.0.3",
"@pushrocks/smartfile": "^7.0.0", "ts-node": "^7.0.0",
"ts-node": "^8.0.2", "typescript": "^2.9.2"
"typescript": "^3.3.3333"
}, },
"private": false "private": false
} }

View File

@ -1,43 +0,0 @@
# tsrun
run typescript programs efficiently
## Availabililty
[![npm](https://gitzone.gitlab.io/assets/repo-button-npm.svg)](https://www.npmjs.com/package/@gitzone/tsrun)
[![git](https://gitzone.gitlab.io/assets/repo-button-git.svg)](https://GitLab.com/gitzone/tsrun)
[![git](https://gitzone.gitlab.io/assets/repo-button-mirror.svg)](https://github.com/gitzone/tsrun)
[![docs](https://gitzone.gitlab.io/assets/repo-button-docs.svg)](https://gitzone.gitlab.io/tsrun/)
## Status for master
[![build status](https://GitLab.com/gitzone/tsrun/badges/master/build.svg)](https://GitLab.com/gitzone/tsrun/commits/master)
[![coverage report](https://GitLab.com/gitzone/tsrun/badges/master/coverage.svg)](https://GitLab.com/gitzone/tsrun/commits/master)
[![npm downloads per month](https://img.shields.io/npm/dm/@gitzone/tsrun.svg)](https://www.npmjs.com/package/@gitzone/tsrun)
[![bitHound Dependencies](https://www.bithound.io/github/gitzonetools/tsrun/badges/dependencies.svg)](https://www.bithound.io/github/gitzonetools/tsrun/master/dependencies/npm)
[![bitHound Code](https://www.bithound.io/github/gitzonetools/tsrun/badges/code.svg)](https://www.bithound.io/github/gitzonetools/tsrun)
[![Known Vulnerabilities](https://snyk.io/test/npm/@gitzone/tsrun/badge.svg)](https://snyk.io/test/npm/@gitzone/tsrun)
[![TypeScript](https://img.shields.io/badge/TypeScript-2.x-blue.svg)](https://nodejs.org/dist/latest-v6.x/docs/api/)
[![node](https://img.shields.io/badge/node->=%206.x.x-blue.svg)](https://nodejs.org/dist/latest-v6.x/docs/api/)
[![JavaScript Style Guide](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](http://standardjs.com/)
## Usage
Use TypeScript for best in class instellisense.
To simply run a TypeScript file on the fly type
```typescript
tsrun myfiletorun.ts
```
There are two options available:
* `--nocache` will disable any caching. Caching speeds up execution, but causes problems in read only environments (e.g. sometimes docker containers are readonly)
* `--web` will inject browser types. this is useful when testing code with polyfills on node, but that is meant for the browser later on.
For further information read the linked docs at the top of this README.
> licensed | **©** [Lossless GmbH](https://lossless.gmbh)
> | By using this npm module you agree to our [privacy policy](https://lossless.gmbH/privacy.html)
[![repo-footer](https://gitzone.gitlab.io/assets/repo-footer.svg)](https://git.zone)

10
scripts/postinstall.ts Normal file
View File

@ -0,0 +1,10 @@
// This file takes care of some postinstall actions like clearing the TypeScript cache.
import * as smartfile from '@pushrocks/smartfile';
import * as path from 'path';
const run = async () => {
const tsCacheDir = path.join(__dirname, '../tscache');
await smartfile.fs.ensureEmptyDir(tsCacheDir);
}
run();

View File

@ -1,26 +1,27 @@
import * as path from 'path'; import * as path from "path";
import * as tsNode from 'ts-node'; import * as tsNode from "ts-node";
import { CompilerOptions } from 'typescript';
const tsCacheDir = path.join(__dirname, "../tscache");
const defaultTsNodeOptions: tsNode.Options = { const defaultTsNodeOptions: tsNode.Options = {
compilerOptions: <CompilerOptions>{ compilerOptions: {
lib: ['es2016', 'es2017'], lib: ["es2016", "es2017"],
target: <any>'es2015', // Script Target should be a string -> 2 is for ES2015 target: "es2015"
experimentalDecorators: true
}, },
skipIgnore: true skipIgnore: true,
cacheDirectory: tsCacheDir
}; };
if (process.argv.includes('--web')) { // check wether a cache is feasible
const previousCompilerOptions = defaultTsNodeOptions.compilerOptions as CompilerOptions; if (process.argv.includes("--nocache")) {
defaultTsNodeOptions.compilerOptions = { defaultTsNodeOptions.cache = false;
...previousCompilerOptions, } else {
lib: [...previousCompilerOptions.lib, 'dom'] var fs = require('fs');
} fs.access(tsCacheDir, fs.constants.W_OK, function(err) {
} if (err) {
defaultTsNodeOptions.cache = false;
if (process.argv.includes('--nocache')) { }
// currently caching is not used });
} }
tsNode.register(defaultTsNodeOptions); tsNode.register(defaultTsNodeOptions);