UNPKG

ts-miniflare

Version:

Run TypeScript Cloudflare Workers with Miniflare

48 lines (47 loc) 1.5 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.TsMiniflare = void 0; const esbuild_1 = require("esbuild"); const miniflare_1 = require("miniflare"); class TsMiniflare extends miniflare_1.Miniflare { constructor(opts) { const defaultOptions = { format: 'esm', target: 'esnext', bundle: true, write: false, }; let result; if ('script' in opts) { // Compile typescript using stdin result = (0, esbuild_1.buildSync)({ ...defaultOptions, stdin: { contents: opts.script, resolveDir: __dirname, }, ...opts.esbuild, }); } else if ('scriptPath' in opts) { // Compile typescript using entrypoint result = (0, esbuild_1.buildSync)({ ...defaultOptions, entryPoints: [opts.scriptPath], ...opts.esbuild, }); } else throw new Error('script or scriptPath options is required'); if (!result.outputFiles || result.outputFiles.length > 1) throw new Error('Invalid output files'); const script = result.outputFiles[0].text; super({ ...opts, modules: true, script, scriptPath: undefined, }); } } exports.TsMiniflare = TsMiniflare;