From 2adb4f3620c975edb301b27f3e92c1904af6a604 Mon Sep 17 00:00:00 2001 From: Jonathan Clem Date: Wed, 8 Jan 2020 15:17:10 -0500 Subject: [PATCH] Use TypeScript --- dist/index.js | 183 +++++++++++++++++++++++++++------------ package.json | 2 +- src/{main.js => main.ts} | 15 ++-- tsconfig.json | 8 ++ 4 files changed, 149 insertions(+), 59 deletions(-) rename src/{main.js => main.ts} (80%) create mode 100644 tsconfig.json diff --git a/dist/index.js b/dist/index.js index 2e00e1a..db366eb 100644 --- a/dist/index.js +++ b/dist/index.js @@ -34,8 +34,10 @@ module.exports = /******/ // the startup function /******/ function startup() { /******/ // Load entry module and return exports -/******/ return __webpack_require__(31); +/******/ return __webpack_require__(131); /******/ }; +/******/ // initialize runtime +/******/ runtime(__webpack_require__); /******/ /******/ // run startup /******/ return startup(); @@ -390,57 +392,6 @@ module.exports._parse = parse; module.exports._enoent = enoent; -/***/ }), - -/***/ 31: -/***/ (function(__unusedmodule, __unusedexports, __webpack_require__) { - -const core = __webpack_require__(470) -const {GitHub, context} = __webpack_require__(469) - -process.on('unhandledRejection', handleError) -main().catch(handleError) - -async function main() { - const AsyncFunction = Object.getPrototypeOf(async () => {}).constructor - const token = core.getInput('github-token', {required: true}) - const debug = core.getInput('debug') - const userAgent = core.getInput('user-agent') - const previews = core.getInput('previews') - const opts = {} - if (debug === 'true') opts.log = console - if (userAgent != null) opts.userAgent = userAgent - if (previews != null) opts.previews = previews.split(',') - const client = new GitHub(token, opts) - const script = core.getInput('script', {required: true}) - const fn = new AsyncFunction('require', 'github', 'context', script) - const result = await fn(require, client, context) - - let encoding = core.getInput('result-encoding') - encoding = encoding ? encoding : 'json' - - let output - - switch (encoding) { - case 'json': - output = JSON.stringify(result) - break - case 'string': - output = String(result) - break - default: - throw new Error('"result-encoding" must be either "string" or "json"') - } - - core.setOutput('result', output) -} - -function handleError(err) { - console.error(err) - core.setFailed(err.message) -} - - /***/ }), /***/ 34: @@ -1517,6 +1468,74 @@ module.exports = uniq; module.exports = require("child_process"); +/***/ }), + +/***/ 131: +/***/ (function(__unusedmodule, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _actions_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(470); +/* harmony import */ var _actions_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_actions_core__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _actions_github__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(469); +/* harmony import */ var _actions_github__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_actions_github__WEBPACK_IMPORTED_MODULE_1__); +var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) { + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; + + +process.on('unhandledRejection', handleError); +main().catch(handleError); +function main() { + return __awaiter(this, void 0, void 0, function* () { + const AsyncFunction = Object.getPrototypeOf(() => __awaiter(this, void 0, void 0, function* () { })).constructor; + const token = _actions_core__WEBPACK_IMPORTED_MODULE_0__.getInput('github-token', { required: true }); + const debug = _actions_core__WEBPACK_IMPORTED_MODULE_0__.getInput('debug'); + const userAgent = _actions_core__WEBPACK_IMPORTED_MODULE_0__.getInput('user-agent'); + const previews = _actions_core__WEBPACK_IMPORTED_MODULE_0__.getInput('previews'); + const opts = {}; + if (debug === 'true') + opts.log = console; + if (userAgent != null) + opts.userAgent = userAgent; + if (previews != null) + opts.previews = previews.split(','); + const client = new _actions_github__WEBPACK_IMPORTED_MODULE_1__.GitHub(token, opts); + const script = _actions_core__WEBPACK_IMPORTED_MODULE_0__.getInput('script', { required: true }); + const fn = new AsyncFunction('require', 'github', 'context', script); + const result = yield fn(__webpack_require__(875), client, _actions_github__WEBPACK_IMPORTED_MODULE_1__.context); + let encoding = _actions_core__WEBPACK_IMPORTED_MODULE_0__.getInput('result-encoding'); + encoding = encoding ? encoding : 'json'; + let output; + switch (encoding) { + case 'json': + output = JSON.stringify(result); + break; + case 'string': + output = String(result); + break; + default: + throw new Error('"result-encoding" must be either "string" or "json"'); + } + _actions_core__WEBPACK_IMPORTED_MODULE_0__.setOutput('result', output); + }); +} +function handleError(err) { + console.error(err); + if (err && err.message) { + _actions_core__WEBPACK_IMPORTED_MODULE_0__.setFailed(err.message); + } + else { + _actions_core__WEBPACK_IMPORTED_MODULE_0__.setFailed(`Unhandled error: ${err}`); + } +} + + /***/ }), /***/ 143: @@ -9524,6 +9543,25 @@ module.exports = function (str) { }; +/***/ }), + +/***/ 875: +/***/ (function(module) { + +function webpackEmptyContext(req) { + if (typeof req === 'number' && __webpack_require__.m[req]) + return __webpack_require__(req); +try { return require(req) } +catch (e) { if (e.code !== 'MODULE_NOT_FOUND') throw e } +var e = new Error("Cannot find module '" + req + "'"); + e.code = 'MODULE_NOT_FOUND'; + throw e; +} +webpackEmptyContext.keys = function() { return []; }; +webpackEmptyContext.resolve = webpackEmptyContext; +module.exports = webpackEmptyContext; +webpackEmptyContext.id = 875; + /***/ }), /***/ 881: @@ -11235,4 +11273,43 @@ function onceStrict (fn) { /***/ }) -/******/ }); \ No newline at end of file +/******/ }, +/******/ function(__webpack_require__) { // webpackRuntimeModules +/******/ "use strict"; +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ !function() { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ }(); +/******/ +/******/ /* webpack/runtime/compat get default export */ +/******/ !function() { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ }(); +/******/ +/******/ /* webpack/runtime/define property getter */ +/******/ !function() { +/******/ // define getter function for harmony exports +/******/ var hasOwnProperty = Object.prototype.hasOwnProperty; +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!hasOwnProperty.call(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ }(); +/******/ +/******/ } +); \ No newline at end of file diff --git a/package.json b/package.json index 88b2caf..9a697a0 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "private": true, "main": "dist/index.js", "scripts": { - "build": "ncc build src/main.js", + "build": "ncc build src/main.ts", "precommit": "npm run build && git add dist/" }, "author": "GitHub", diff --git a/src/main.js b/src/main.ts similarity index 80% rename from src/main.js rename to src/main.ts index 96debee..db7acf6 100644 --- a/src/main.js +++ b/src/main.ts @@ -1,5 +1,5 @@ -const core = require('@actions/core') -const {GitHub, context} = require('@actions/github') +import * as core from '@actions/core' +import {context, GitHub} from '@actions/github' process.on('unhandledRejection', handleError) main().catch(handleError) @@ -10,7 +10,7 @@ async function main() { const debug = core.getInput('debug') const userAgent = core.getInput('user-agent') const previews = core.getInput('previews') - const opts = {} + const opts: {[key: string]: any} = {} if (debug === 'true') opts.log = console if (userAgent != null) opts.userAgent = userAgent if (previews != null) opts.previews = previews.split(',') @@ -38,7 +38,12 @@ async function main() { core.setOutput('result', output) } -function handleError(err) { +function handleError(err: any) { console.error(err) - core.setFailed(err.message) + + if (err && err.message) { + core.setFailed(err.message) + } else { + core.setFailed(`Unhandled error: ${err}`) + } } diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..448d696 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,8 @@ +{ + "compilerOptions": { + "target": "es2015", + "moduleResolution": "node", + "strict": true, + "forceConsistentCasingInFileNames": true + } +}