Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@babel/helper-transform-fixture-test-runner

Package Overview
Dependencies
Maintainers
4
Versions
129
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@babel/helper-transform-fixture-test-runner - npm Package Compare versions

Comparing version 7.21.4-esm.4 to 7.21.5

11

lib/helpers.js

@@ -1,5 +0,12 @@

export function assertNoOwnProperties(obj) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.assertNoOwnProperties = assertNoOwnProperties;
exports.multiline = multiline;
function assertNoOwnProperties(obj) {
expect(Object.getOwnPropertyNames(obj)).toHaveLength(0);
}
export function multiline(arr) {
function multiline(arr) {
return arr.join("\n");

@@ -6,0 +13,0 @@ }

107

lib/index.js

@@ -0,20 +1,25 @@

"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = _default;
exports.runCodeInTestContext = runCodeInTestContext;
var babel = require("@babel/core");
var _helperFixtures = require("@babel/helper-fixtures");
var _codeFrame = require("@babel/code-frame");
var helpers = require("./helpers");
var _assert = require("assert");
var _fs = require("fs");
var _path = require("path");
var _vm = require("vm");
var _quickLru = require("quick-lru");
var _url = require("url");
var _module = require("module");
var _helperCheckDuplicateNodes = require("@babel/helper-check-duplicate-nodes");
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
import * as babel from "@babel/core";
import { buildExternalHelpers } from "@babel/core";
import { default as getFixtures, resolveOptionPluginOrPreset } from "@babel/helper-fixtures";
import { codeFrameColumns } from "@babel/code-frame";
import * as helpers from "./helpers.js";
import assert from "assert";
import fs from "fs";
import path from "path";
import vm from "vm";
import QuickLRU from "quick-lru";
import { fileURLToPath } from "url";
import { createRequire } from "module";
const require = createRequire(import.meta.url);
import checkDuplicateNodes from "@babel/helper-check-duplicate-nodes";
{
if (!assert.rejects) {
assert.rejects = _asyncToGenerator(function* (block, validateError) {
if (!_assert.rejects) {
_assert.rejects = _asyncToGenerator(function* (block, validateError) {
try {

@@ -32,3 +37,3 @@ yield typeof block === "function" ? block() : block;

const EXTERNAL_HELPERS_VERSION = "7.100.0";
const cachedScripts = new QuickLRU({
const cachedScripts = new _quickLru({
maxSize: 10

@@ -51,3 +56,3 @@ });

function createContext() {
const context = vm.createContext(Object.assign({}, helpers, {
const context = _vm.createContext(Object.assign({}, helpers, {
process: process,

@@ -63,3 +68,3 @@ transform: transformWithoutConfigFile,

contextModuleCache.set(context, moduleCache);
runCacheableScriptInTestContext(path.join(path.dirname(fileURLToPath(import.meta.url)), "babel-helpers-in-memory.js"), buildExternalHelpers, context, moduleCache);
runCacheableScriptInTestContext(_path.join(_path.dirname(__filename), "babel-helpers-in-memory.js"), babel.buildExternalHelpers, context, moduleCache);
return context;

@@ -79,3 +84,3 @@ }

{
script = new vm.Script(cached.code, {
script = new _vm.Script(cached.code, {
filename,

@@ -97,3 +102,3 @@ displayErrors: true,

const req = id => runModuleInTestContext(id, filename, context, moduleCache);
const dirname = path.dirname(filename);
const dirname = _path.dirname(filename);
script.runInContext(context).call(module.exports, module.exports, req, module, filename, dirname);

@@ -112,11 +117,11 @@ return module;

})(id, {
paths: [path.dirname(relativeFilename)]
paths: [_path.dirname(relativeFilename)]
});
if (filename === id) return require(id);
if (moduleCache[filename]) return moduleCache[filename].exports;
return runCacheableScriptInTestContext(filename, () => fs.readFileSync(filename, "utf8"), context, moduleCache).exports;
return runCacheableScriptInTestContext(filename, () => _fs.readFileSync(filename, "utf8"), context, moduleCache).exports;
}
export function runCodeInTestContext(code, opts, context = sharedTestContext) {
function runCodeInTestContext(code, opts, context = sharedTestContext) {
const filename = opts.filename;
const dirname = path.dirname(filename);
const dirname = _path.dirname(filename);
const moduleCache = contextModuleCache.get(context);

@@ -130,5 +135,5 @@ const req = id => runModuleInTestContext(id, filename, context, moduleCache);

try {
if (opts.filename) process.chdir(path.dirname(opts.filename));
if (opts.filename) process.chdir(_path.dirname(opts.filename));
const src = `(function(exports, require, module, __filename, __dirname, opts) {\n${code}\n});`;
return vm.runInContext(src, context, {
return _vm.runInContext(src, context, {
filename,

@@ -193,3 +198,3 @@ displayErrors: true,

ast: true,
cwd: path.dirname(self.loc),
cwd: _path.dirname(self.loc),
filename: self.loc,

@@ -205,3 +210,3 @@ filenameRelative: self.filename,

}, opts);
return resolveOptionPluginOrPreset(newOpts, optionsDir);
return (0, _helperFixtures.resolveOptionPluginOrPreset)(newOpts, optionsDir);
}

@@ -217,3 +222,3 @@ let execCode = exec.code;

} = yield maybeMockConsole(validateLogs, () => babel.transformAsync(execCode, execOpts)));
checkDuplicateNodes(result.ast);
(0, _helperCheckDuplicateNodes.default)(result.ast);
execCode = result.code;

@@ -223,3 +228,3 @@ try {

} catch (err) {
err.message = `${exec.loc}: ${err.message}\n` + codeFrameColumns(execCode, {});
err.message = `${exec.loc}: ${err.message}\n` + (0, _codeFrame.codeFrameColumns)(execCode, {});
throw err;

@@ -237,11 +242,11 @@ }

const outputCode = normalizeOutput(result.code);
checkDuplicateNodes(result.ast);
(0, _helperCheckDuplicateNodes.default)(result.ast);
if (!ignoreOutput) {
if (!expected.code && outputCode && !opts.throws && fs.statSync(path.dirname(expected.loc)).isDirectory() && !process.env.CI) {
if (!expected.code && outputCode && !opts.throws && _fs.statSync(_path.dirname(expected.loc)).isDirectory() && !process.env.CI) {
const expectedFile = expected.loc.replace(/\.m?js$/, result.sourceType === "module" ? ".mjs" : ".js");
console.log(`New test file created: ${expectedFile}`);
fs.writeFileSync(expectedFile, `${outputCode}\n`);
_fs.writeFileSync(expectedFile, `${outputCode}\n`);
if (expected.loc !== expectedFile) {
try {
fs.unlinkSync(expected.loc);
_fs.unlinkSync(expected.loc);
} catch (e) {}

@@ -257,4 +262,8 @@ }

if (validateLogs) {
validateFile(normalizeOutput(actualLogs.stdout, true), stdout.loc, stdout.code);
validateFile(normalizeOutput(actualLogs.stderr, true), stderr.loc, stderr.code);
const normalizationOpts = {
normalizePathSeparator: true,
normalizePresetEnvDebug: task.taskDir.includes("babel-preset-env")
};
validateFile(normalizeOutput(actualLogs.stdout, normalizationOpts), stdout.loc, stdout.code);
validateFile(normalizeOutput(actualLogs.stderr, normalizationOpts), stderr.loc, stderr.code);
}

@@ -268,3 +277,3 @@ }

console.log(`Updated test file: ${task.sourceMapFile.loc}`);
fs.writeFileSync(task.sourceMapFile.loc, JSON.stringify(result.map, null, 2));
_fs.writeFileSync(task.sourceMapFile.loc, JSON.stringify(result.map, null, 2));
}

@@ -287,3 +296,3 @@ }

console.log(`Updated test file: ${expectedLoc}`);
fs.writeFileSync(expectedLoc, `${actualCode}\n`);
_fs.writeFileSync(expectedLoc, `${actualCode}\n`);
}

@@ -294,4 +303,7 @@ }

}
function normalizeOutput(code, normalizePathSeparator) {
const projectRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "../../../");
function normalizeOutput(code, {
normalizePathSeparator = false,
normalizePresetEnvDebug = false
} = {}) {
const projectRoot = _path.resolve(_path.dirname(__filename), "../../../");
const cwdSymbol = "<CWD>";

@@ -305,2 +317,7 @@ let result = code.trim().replace(new RegExp(escapeRegExp(projectRoot), "g"), cwdSymbol);

}
{
if (normalizePresetEnvDebug) {
result = result.replace(/(\s+)proposal-/gm, "$1transform-");
}
}
return result;

@@ -328,4 +345,4 @@ }

});
export default function (fixturesLoc, name, suiteOpts = {}, taskOpts = {}, dynamicOpts) {
const suites = getFixtures(fixturesLoc);
function _default(fixturesLoc, name, suiteOpts = {}, taskOpts = {}, dynamicOpts) {
const suites = (0, _helperFixtures.default)(fixturesLoc);
for (const testSuite of suites) {

@@ -360,4 +377,4 @@ var _suiteOpts$ignoreSuit;

delete task.options.throws;
yield assert.rejects(runTask, function (err) {
assert.ok(throwMsg === true || err.message.includes(throwMsg), `
yield _assert.rejects(runTask, function (err) {
_assert.ok(throwMsg === true || err.message.includes(throwMsg), `
Expected Error: ${throwMsg}

@@ -364,0 +381,0 @@ Actual Error: ${err.message}`);

{
"name": "@babel/helper-transform-fixture-test-runner",
"version": "7.21.4-esm.4",
"version": "7.21.5",
"description": "Transform test runner for @babel/helper-fixtures module",

@@ -18,6 +18,6 @@ "author": "The Babel Team (https://babel.dev/team)",

"dependencies": {
"@babel/code-frame": "7.21.4-esm.4",
"@babel/core": "7.21.4-esm.4",
"@babel/helper-check-duplicate-nodes": "7.21.4-esm.4",
"@babel/helper-fixtures": "7.21.4-esm.4",
"@babel/code-frame": "^7.21.4",
"@babel/core": "^7.21.5",
"@babel/helper-check-duplicate-nodes": "^7.18.6",
"@babel/helper-fixtures": "^7.21.5",
"quick-lru": "5.1.0"

@@ -31,3 +31,3 @@ },

},
"type": "module"
"type": "commonjs"
}

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc