Socket
Socket
Sign inDemoInstall

@swc/jest

Package Overview
Dependencies
Maintainers
1
Versions
39
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@swc/jest - npm Package Compare versions

Comparing version 0.2.18 to 0.2.19

81

index.js

@@ -32,2 +32,11 @@ "use strict";

};
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
if (ar || !(i in from)) {
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
ar[i] = from[i];
}
}
return to.concat(ar || Array.prototype.slice.call(from));
};
var __importDefault = (this && this.__importDefault) || function (mod) {

@@ -37,41 +46,35 @@ return (mod && mod.__esModule) ? mod : { "default": mod };

var fs = __importStar(require("fs"));
var crypto = __importStar(require("crypto"));
var path = __importStar(require("path"));
var process = __importStar(require("process"));
var vm = __importStar(require("vm"));
var create_cache_key_function_1 = __importDefault(require("@jest/create-cache-key-function"));
var core_1 = require("@swc/core");
/**
* Loads closest package.json in the directory hierarchy
*/
function loadClosestPackageJson(attempts) {
if (attempts === void 0) { attempts = 1; }
if (attempts > 5) {
throw new Error('Can\'t resolve main package.json file');
}
var mainPath = attempts === 1 ? './' : Array(attempts).join('../');
try {
return require(path.join(process.cwd(), mainPath, 'package.json'));
}
catch (e) {
return loadClosestPackageJson(attempts + 1);
}
}
var packageConfig = loadClosestPackageJson();
var isEsmProject = packageConfig.type === 'module';
// Jest use the `vm` [Module API](https://nodejs.org/api/vm.html#vm_class_vm_module) for ESM.
// see https://github.com/facebook/jest/issues/9430
var supportsEsm = 'Module' in vm;
function createTransformer(swcTransformOpts) {
var computedSwcOptions = buildSwcTransformOpts(swcTransformOpts);
var cacheKeyFunction = (0, create_cache_key_function_1.default)([], [JSON.stringify(computedSwcOptions)]);
return {
process: function (src, filename, jestOptions) {
if (supportsEsm) {
set(computedSwcOptions, 'module.type', isEsm(filename, jestOptions) ? 'es6' : 'commonjs');
set(computedSwcOptions, 'module.type', jestOptions.supportsStaticESM ? 'es6' : 'commonjs');
return (0, core_1.transformSync)(src, __assign(__assign({}, computedSwcOptions), { module: __assign(__assign({}, computedSwcOptions.module), { type: (jestOptions.supportsStaticESM ? 'es6' : 'commonjs') }), filename: filename }));
},
processAsync: function (src, filename) {
return (0, core_1.transform)(src, __assign(__assign({}, computedSwcOptions), { module: __assign(__assign({}, computedSwcOptions.module), {
// async transform is always ESM
type: 'es6' }), filename: filename }));
},
getCacheKey: function (src, filename) {
var rest = [];
for (var _i = 2; _i < arguments.length; _i++) {
rest[_i - 2] = arguments[_i];
}
if (!computedSwcOptions.sourceMaps) {
set(computedSwcOptions, 'sourceMaps', 'inline');
}
return (0, core_1.transformSync)(src, __assign(__assign({}, computedSwcOptions), { filename: filename }));
},
getCacheKey: (0, create_cache_key_function_1.default)([], [JSON.stringify(computedSwcOptions)])
// @ts-expect-error - type overload is confused
var baseCacheKey = cacheKeyFunction.apply(void 0, __spreadArray([src, filename], rest, false));
var options = typeof rest[0] === 'string' ? rest[1] : rest[0];
return crypto
.createHash('md5')
.update(baseCacheKey)
.update('\0', 'utf8')
.update(JSON.stringify({ supportsStaticESM: options.supportsStaticESM }))
.digest('hex');
}
};

@@ -97,5 +100,2 @@ }

var computedSwcOptions = swcOptions || getOptionsFromSwrc();
if (!supportsEsm) {
set(computedSwcOptions, 'module.type', 'commonjs');
}
if (!((_a = computedSwcOptions.jsc) === null || _a === void 0 ? void 0 : _a.target)) {

@@ -107,16 +107,7 @@ set(computedSwcOptions, 'jsc.target',

set(computedSwcOptions, 'jsc.transform.hidden.jest', true);
if (!computedSwcOptions.sourceMaps) {
set(computedSwcOptions, 'sourceMaps', 'inline');
}
return computedSwcOptions;
}
function getJestConfig(jestConfig) {
return 'config' in jestConfig
// jest 27
? jestConfig.config
// jest 26
: jestConfig;
}
function isEsm(filename, jestOptions) {
var _a;
return (/\.jsx?$/.test(filename) && isEsmProject) ||
((_a = getJestConfig(jestOptions).extensionsToTreatAsEsm) === null || _a === void 0 ? void 0 : _a.find(function (ext) { return filename.endsWith(ext); }));
}
function set(obj, path, value) {

@@ -123,0 +114,0 @@ var o = obj;

{
"name": "@swc/jest",
"version": "0.2.18",
"version": "0.2.19",
"description": "swc integration for jest",

@@ -31,2 +31,3 @@ "main": "index.js",

"devDependencies": {
"@jest/transform": "^27.5.1",
"@swc/core": "^1.2.85",

@@ -45,6 +46,3 @@ "@types/node": "^16.11.12",

"index.js"
],
"workspaces": [
"examples/*"
]
}
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