import * as core from '@actions/core' import * as exec from '@actions/exec' 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' const AsyncFunction = Object.getPrototypeOf(async () => null).constructor export declare type AsyncFunctionArguments = { context: Context core: typeof core github: InstanceType octokit: InstanceType exec: typeof exec glob: typeof glob io: typeof io require: NodeRequire __original_require__: NodeRequire } export function callAsyncFunction( args: AsyncFunctionArguments, source: string ): Promise { const commonJsArgs = { ...args, module: {exports: {}}, exports: {} } const fn = new AsyncFunction(...Object.keys(commonJsArgs), source) return fn(...Object.values(commonJsArgs)) }