From 329ac1ca486e16888fac1575714393eb073b2ceb Mon Sep 17 00:00:00 2001 From: Luke Edwards Date: Sat, 9 Oct 2021 13:44:09 -0700 Subject: [PATCH] chore(require): determine `options.banner` once per loader --- src/require.ts | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/src/require.ts b/src/require.ts index 69275a9..657c8ae 100644 --- a/src/require.ts +++ b/src/require.ts @@ -51,23 +51,20 @@ const tsrequire = 'var $$req=require;require=(' + function () { } + ')();'; function transform(source: string, sourcefile: string, options: Options): string { - let banner = options.banner || ''; - if (/\.[mc]?tsx?$/.test(sourcefile)) { - banner = tsrequire + banner; - } - esbuild = esbuild || require('esbuild'); - return esbuild.transformSync(source, { - ...options, banner, sourcefile - }).code; + return esbuild.transformSync(source, { ...options, sourcefile }).code; } function loader(Module: Module, sourcefile: string) { - let pitch = Module._compile!.bind(Module); let extn = extname(sourcefile); - let options = config[extn]; + let options = config[extn] || {}; + let pitch = Module._compile!.bind(Module); + + if (/\.[mc]?tsx?$/.test(extn)) { + options.banner = tsrequire + (options.banner || ''); + } - if (options != null) { + if (config[extn] != null) { Module._compile = source => { let result = transform(source, sourcefile, options); return pitch(result, sourcefile);