From b2c5730110270eb2d74b426d432447fa03396a95 Mon Sep 17 00:00:00 2001 From: Phil Kunz Date: Mon, 4 Jun 2018 23:25:19 +0200 Subject: [PATCH] feat(core): initial --- .gitignore | 6 +++ .gitlab-ci.yml | 130 ++++++++++++++++++++++++++++++++++++++++++++++ dependencies.yml | 1 + dist/cli.js | 3 ++ dist/index.d.ts | 1 + dist/index.js | 12 +++++ npmextra.json | 12 +++++ package-lock.json | 91 ++++++++++++++++++++++++++++++++ package.json | 24 +++++++++ test/test.ts | 2 + ts/index.ts | 11 ++++ tslint.json | 3 ++ 12 files changed, 296 insertions(+) create mode 100644 .gitignore create mode 100644 .gitlab-ci.yml create mode 100644 dependencies.yml create mode 100644 dist/cli.js create mode 100644 dist/index.d.ts create mode 100644 dist/index.js create mode 100644 npmextra.json create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 test/test.ts create mode 100644 ts/index.ts create mode 100644 tslint.json diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..344b0dc --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +.nogit/ +node_modules/ +coverage/ +public/ +pages/ +.yarn/ diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..fda96fb --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,130 @@ +# gitzone standard +image: hosttoday/ht-docker-node:npmci + +cache: + paths: + - .npmci_cache/ + key: "$CI_BUILD_STAGE" + +stages: +- security +- test +- release +- metadata + +# ==================== +# security stage +# ==================== +mirror: + stage: security + script: + - npmci git mirror + tags: + - docker + - notpriv + +snyk: + stage: security + script: + - npmci command npm install -g snyk + - npmci command npm install --ignore-scripts + - npmci command snyk test + tags: + - docker + - notpriv + +# ==================== +# test stage +# ==================== +testLEGACY: + stage: test + script: + - npmci node install legacy + - npmci npm install + - npmci npm test + coverage: /\d+.?\d+?\%\s*coverage/ + tags: + - docker + - notpriv + allow_failure: true + +testLTS: + stage: test + script: + - npmci node install lts + - npmci npm install + - npmci npm test + coverage: /\d+.?\d+?\%\s*coverage/ + tags: + - docker + - notpriv + +testSTABLE: + stage: test + script: + - npmci node install stable + - npmci npm install + - npmci npm test + coverage: /\d+.?\d+?\%\s*coverage/ + tags: + - docker + - notpriv + +release: + stage: release + script: + - npmci node install stable + - npmci npm publish + only: + - tags + tags: + - docker + - notpriv + +# ==================== +# metadata stage +# ==================== +codequality: + stage: metadata + image: docker:stable + allow_failure: true + services: + - docker:stable-dind + script: + - export SP_VERSION=$(echo "$CI_SERVER_VERSION" | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1-\2-stable/') + - docker run + --env SOURCE_CODE="$PWD" + --volume "$PWD":/code + --volume /var/run/docker.sock:/var/run/docker.sock + "registry.gitlab.com/gitlab-org/security-products/codequality:$SP_VERSION" /code + artifacts: + paths: [codeclimate.json] + tags: + - docker + - priv + +trigger: + stage: metadata + script: + - npmci trigger + only: + - tags + tags: + - docker + - notpriv + +pages: + image: hosttoday/ht-docker-node:npmci + stage: metadata + script: + - npmci command npm install -g npmpage + - npmci command npmpage + tags: + - docker + - notpriv + only: + - tags + artifacts: + expire_in: 1 week + paths: + - public diff --git a/dependencies.yml b/dependencies.yml new file mode 100644 index 0000000..a92af02 --- /dev/null +++ b/dependencies.yml @@ -0,0 +1 @@ +.gitignore: ../gitignore/ \ No newline at end of file diff --git a/dist/cli.js b/dist/cli.js new file mode 100644 index 0000000..9938869 --- /dev/null +++ b/dist/cli.js @@ -0,0 +1,3 @@ +#!/usr/bin/env node +process.env.CLI_CALL = 'true' +var index = require("../dist/index.js"); \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/dist/index.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/dist/index.js b/dist/index.js new file mode 100644 index 0000000..489c68b --- /dev/null +++ b/dist/index.js @@ -0,0 +1,12 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const tsNode = require("ts-node"); +const path = require("path"); +tsNode.register({ + compilerOptions: { + lib: ['es2016', 'es2017'] + } +}); +const pathToLoad = path.join(process.cwd(), process.argv.pop()); +Promise.resolve().then(() => require(pathToLoad)); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLGtDQUFrQztBQUNsQyw2QkFBNkI7QUFFN0IsTUFBTSxDQUFDLFFBQVEsQ0FBQztJQUNkLGVBQWUsRUFBRTtRQUNmLEdBQUcsRUFBRSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUM7S0FDMUI7Q0FDRixDQUFDLENBQUM7QUFFSCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7QUFDaEUscUNBQU8sVUFBVSxHQUFFIn0= \ No newline at end of file diff --git a/npmextra.json b/npmextra.json new file mode 100644 index 0000000..d64956b --- /dev/null +++ b/npmextra.json @@ -0,0 +1,12 @@ +{ + "npmts": { + "cli": true + }, + "npmci": { + "npmGlobalTools": [ + "@gitzone/npmts", + "ts-node" + ], + "npmAccessLevel": "public" + } +} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..bddbd7b --- /dev/null +++ b/package-lock.json @@ -0,0 +1,91 @@ +{ + "name": "tsrun", + "version": "1.0.1", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@types/node": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.3.0.tgz", + "integrity": "sha512-hWzNviaVFIr1TqcRA8ou49JaSHp+Rfabmnqg2kNvusKqLhPU0rIsGPUj5WJJ7ld4Bb7qdgLmIhLfCD1qS08IVA==" + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" + }, + "buffer-from": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.0.tgz", + "integrity": "sha512-c5mRlguI/Pe2dSZmpER62rSCu0ryKmWddzRYsuXc50U2/g8jMOulc31VZMa4mYx31U5xsmSOpDCgH88Vl9cDGQ==" + }, + "diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==" + }, + "make-error": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.4.tgz", + "integrity": "sha512-0Dab5btKVPhibSalc9QGXb559ED7G7iLjFXBaj9Wq8O3vorueR5K5jaE3hkG6ZQINyhA/JgG6Qk4qdFQjsYV6g==" + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "requires": { + "minimist": "0.0.8" + }, + "dependencies": { + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + } + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "source-map-support": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.6.tgz", + "integrity": "sha512-N4KXEz7jcKqPf2b2vZF11lQIz9W5ZMuUcIOGj243lduidkf2fjkVKJS9vNxVWn3u/uxX38AcE8U9nnH9FPcq+g==", + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "ts-node": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-6.1.0.tgz", + "integrity": "sha512-mw11Bq08RZgrU/bzcVw/Ti9wNyefpOanXgWsHg008wyVHjvFhWxNatVVrciOAu8BcWSECoNOSunRzUokKH8Mmw==", + "requires": { + "arrify": "^1.0.0", + "diff": "^3.1.0", + "make-error": "^1.1.1", + "minimist": "^1.2.0", + "mkdirp": "^0.5.1", + "source-map-support": "^0.5.6", + "yn": "^2.0.0" + } + }, + "typescript": { + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.9.1.tgz", + "integrity": "sha512-h6pM2f/GDchCFlldnriOhs1QHuwbnmj6/v7499eMHqPeW4V2G0elua2eIc2nu8v2NdHV0Gm+tzX83Hr6nUFjQA==" + }, + "yn": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yn/-/yn-2.0.0.tgz", + "integrity": "sha1-5a2ryKz0CPY4X8dklWhMiOavaJo=" + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..e9edf94 --- /dev/null +++ b/package.json @@ -0,0 +1,24 @@ +{ + "name": "tsrun", + "version": "1.0.1", + "description": "run typescript programs efficiently", + "main": "dist/index.js", + "typings": "dist/index.d.ts", + "author": "Lossless GmbH", + "license": "MIT", + "bin": { + "tsrun": "dist/cli.js" + }, + "scripts": { + "test": "(npmts --notest && node dist/cli.js -d test/test.ts)", + "format": "(gitzone format)", + "build": "echo \"Not needed for now\"" + }, + "devDependencies": {}, + "dependencies": { + "@types/node": "^10.3.0", + "ts-node": "^6.1.0", + "typescript": "^2.9.1" + }, + "private": false +} diff --git a/test/test.ts b/test/test.ts new file mode 100644 index 0000000..ee27792 --- /dev/null +++ b/test/test.ts @@ -0,0 +1,2 @@ +const textToPost: string = 'Test runs!'; +console.log(textToPost); diff --git a/ts/index.ts b/ts/index.ts new file mode 100644 index 0000000..28bd9bb --- /dev/null +++ b/ts/index.ts @@ -0,0 +1,11 @@ +import * as tsNode from 'ts-node'; +import * as path from 'path'; + +tsNode.register({ + compilerOptions: { + lib: ['es2016', 'es2017'] + } +}); + +const pathToLoad = path.join(process.cwd(), process.argv.pop()); +import(pathToLoad); diff --git a/tslint.json b/tslint.json new file mode 100644 index 0000000..45052ad --- /dev/null +++ b/tslint.json @@ -0,0 +1,3 @@ +{ + "extends": "tslint-config-standard" +}