diff --git a/src/async-function.ts b/src/async-function.ts index 17b2548..64d12ab 100644 --- a/src/async-function.ts +++ b/src/async-function.ts @@ -1,6 +1,6 @@ import * as core from '@actions/core' -import { Context } from '@actions/github/lib/context' -import { GitHub } from '@actions/github/lib/utils' +import {Context} from '@actions/github/lib/context' +import {GitHub} from '@actions/github/lib/utils' import * as glob from '@actions/glob' import * as io from '@actions/io' diff --git a/src/main.ts b/src/main.ts index 726bf7e..7d16987 100644 --- a/src/main.ts +++ b/src/main.ts @@ -2,9 +2,10 @@ import * as core from '@actions/core' import {context, getOctokit} from '@actions/github' import * as glob from '@actions/glob' import * as io from '@actions/io' +import * as path from 'path' import {callAsyncFunction} from './async-function' -declare const __non_webpack_require__: typeof require +declare const __non_webpack_require__: NodeRequire process.on('unhandledRejection', handleError) main().catch(handleError) @@ -31,7 +32,14 @@ async function main(): Promise { // Using property/value shorthand on `require` (e.g. `{require}`) causes compilation errors. const result = await callAsyncFunction( - {require: __non_webpack_require__, github, context, core, glob, io}, + { + require: wrapRequire, + github, + context, + core, + glob, + io + }, script ) @@ -54,6 +62,19 @@ async function main(): Promise { core.setOutput('result', output) } +const wrapRequire = new Proxy(__non_webpack_require__, { + apply: (target, thisArg, [moduleID]) => { + if (moduleID.startsWith('.')) { + moduleID = path.join(process.cwd(), moduleID) + } + return target.apply(thisArg, [moduleID]) + }, + + get: (target, prop, receiver) => { + Reflect.get(target, prop, receiver) + } +}) + // eslint-disable-next-line @typescript-eslint/no-explicit-any function handleError(err: any): void { console.error(err)