Sha256: 0237992bc84ba8916eb29ea15547957839975e378084484f99ffdeda9585bfb0

Contents?: true

Size: 1.48 KB

Versions: 16

Compression:

Stored size: 1.48 KB

Contents

"use strict";

const babel = require("@babel/core");

module.exports = function injectCaller(opts, target) {
  if (!supportsCallerOption()) return opts;
  return Object.assign({}, opts, {
    caller: Object.assign({
      name: "babel-loader",
      // Provide plugins with insight into webpack target.
      // https://github.com/babel/babel-loader/issues/787
      target,
      // Webpack >= 2 supports ESM and dynamic import.
      supportsStaticESM: true,
      supportsDynamicImport: true,
      // Webpack 5 supports TLA behind a flag. We enable it by default
      // for Babel, and then webpack will throw an error if the experimental
      // flag isn't enabled.
      supportsTopLevelAwait: true
    }, opts.caller)
  });
}; // TODO: We can remove this eventually, I'm just adding it so that people have
// a little time to migrate to the newer RCs of @babel/core without getting
// hard-to-diagnose errors about unknown 'caller' options.


let supportsCallerOptionFlag = undefined;

function supportsCallerOption() {
  if (supportsCallerOptionFlag === undefined) {
    try {
      // Rather than try to match the Babel version, we just see if it throws
      // when passed a 'caller' flag, and use that to decide if it is supported.
      babel.loadPartialConfig({
        caller: undefined,
        babelrc: false,
        configFile: false
      });
      supportsCallerOptionFlag = true;
    } catch (err) {
      supportsCallerOptionFlag = false;
    }
  }

  return supportsCallerOptionFlag;
}

Version data entries

16 entries across 15 versions & 5 rubygems

Version Path
optimacms-0.1.61 spec/dummy/node_modules/babel-loader/lib/injectCaller.js
disco_app-0.16.1 test/dummy/node_modules/babel-loader/lib/injectCaller.js
disco_app-0.15.2 test/dummy/node_modules/babel-loader/lib/injectCaller.js
disco_app-0.18.4 test/dummy/node_modules/babel-loader/lib/injectCaller.js
disco_app-0.18.1 test/dummy/node_modules/babel-loader/lib/injectCaller.js
disco_app-0.12.7.pre.puma.pre.3 test/dummy/node_modules/babel-loader/lib/injectCaller.js
disco_app-0.14.0 test/dummy/node_modules/babel-loader/lib/injectCaller.js
disco_app-0.13.6.pre.puma.pre.3 test/dummy/node_modules/babel-loader/lib/injectCaller.js
tang-0.2.1 spec/tang_app/node_modules/babel-loader/lib/injectCaller.js
groonga-client-model-6.0.0 test/apps/rails6.1.3/node_modules/babel-loader/lib/injectCaller.js
groonga-client-model-6.0.0 test/apps/rails6.0.3.5/node_modules/babel-loader/lib/injectCaller.js
ruby2js-4.0.4 lib/tasks/testrails/node_modules/babel-loader/lib/injectCaller.js
ruby2js-4.0.3 lib/tasks/testrails/node_modules/babel-loader/lib/injectCaller.js
tang-0.2.0 spec/tang_app/node_modules/babel-loader/lib/injectCaller.js
tang-0.1.0 spec/tang_app/node_modules/babel-loader/lib/injectCaller.js
tang-0.0.9 spec/tang_app/node_modules/babel-loader/lib/injectCaller.js