jest-util
Advanced tools
Comparing version
@@ -13,2 +13,9 @@ /** | ||
/** | ||
* Whether the given value has properties that can be deleted (regardless of protection). | ||
* | ||
* @param value The given value. | ||
*/ | ||
export declare function canDeleteProperties(value: unknown): value is object; | ||
declare const CLEAR: string; | ||
@@ -35,2 +42,10 @@ | ||
/** | ||
* Deletes all the properties from the given value (if it's an object), | ||
* unless the value was protected via {@link #protectProperties}. | ||
* | ||
* @param value the given value. | ||
*/ | ||
export declare function deleteProperties(value: unknown): void; | ||
export declare class ErrorWithStack extends Error { | ||
@@ -111,2 +126,15 @@ constructor( | ||
/** | ||
* Protects the given value from being deleted by {@link #deleteProperties}. | ||
* | ||
* @param value The given value. | ||
* @param properties If the array contains any property, | ||
* then only these properties will not be deleted; otherwise if the array is empty, | ||
* all properties will not be deleted. | ||
*/ | ||
export declare function protectProperties<T extends object>( | ||
value: T, | ||
properties?: Array<keyof T>, | ||
): boolean; | ||
declare function remove(stream: WriteStream): void; | ||
@@ -123,4 +151,5 @@ | ||
globalToMutate: typeof globalThis | Global_2.Global, | ||
key: string, | ||
key: string | symbol, | ||
value: unknown, | ||
afterTeardown?: 'clean' | 'retain', | ||
): void; | ||
@@ -127,0 +156,0 @@ |
@@ -121,4 +121,3 @@ /*! | ||
} | ||
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); } | ||
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } | ||
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); } | ||
/** | ||
@@ -350,2 +349,71 @@ * Copyright (c) Meta Platforms, Inc. and affiliates. | ||
/***/ "./src/garbage-collection-utils.ts": | ||
/***/ ((__unused_webpack_module, exports) => { | ||
Object.defineProperty(exports, "__esModule", ({ | ||
value: true | ||
})); | ||
exports.canDeleteProperties = canDeleteProperties; | ||
exports.deleteProperties = deleteProperties; | ||
exports.protectProperties = protectProperties; | ||
/** | ||
* Copyright (c) Meta Platforms, Inc. and affiliates. | ||
* | ||
* This source code is licensed under the MIT license found in the | ||
* LICENSE file in the root directory of this source tree. | ||
*/ | ||
const PROTECT_PROPERTY = Symbol.for('$$jest-protect-from-deletion'); | ||
/** | ||
* Deletes all the properties from the given value (if it's an object), | ||
* unless the value was protected via {@link #protectProperties}. | ||
* | ||
* @param value the given value. | ||
*/ | ||
function deleteProperties(value) { | ||
if (canDeleteProperties(value)) { | ||
const protectedProperties = Reflect.get(value, PROTECT_PROPERTY); | ||
if (!Array.isArray(protectedProperties) || protectedProperties.length > 0) { | ||
for (const key of Reflect.ownKeys(value)) { | ||
if (!protectedProperties?.includes(key)) { | ||
Reflect.deleteProperty(value, key); | ||
} | ||
} | ||
} | ||
} | ||
} | ||
/** | ||
* Protects the given value from being deleted by {@link #deleteProperties}. | ||
* | ||
* @param value The given value. | ||
* @param properties If the array contains any property, | ||
* then only these properties will not be deleted; otherwise if the array is empty, | ||
* all properties will not be deleted. | ||
*/ | ||
function protectProperties(value, properties = []) { | ||
if (canDeleteProperties(value)) { | ||
return Reflect.set(value, PROTECT_PROPERTY, properties); | ||
} | ||
return false; | ||
} | ||
/** | ||
* Whether the given value has properties that can be deleted (regardless of protection). | ||
* | ||
* @param value The given value. | ||
*/ | ||
function canDeleteProperties(value) { | ||
if (value !== null) { | ||
const type = typeof value; | ||
return type === 'object' || type === 'function'; | ||
} | ||
return false; | ||
} | ||
/***/ }), | ||
/***/ "./src/globsToMatcher.ts": | ||
@@ -473,4 +541,3 @@ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { | ||
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } | ||
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); } | ||
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } | ||
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); } | ||
/** | ||
@@ -831,3 +898,3 @@ * Copyright (c) Meta Platforms, Inc. and affiliates. | ||
/***/ "./src/setGlobal.ts": | ||
/***/ ((__unused_webpack_module, exports) => { | ||
/***/ ((__unused_webpack_module, exports, __webpack_require__) => { | ||
@@ -840,2 +907,3 @@ | ||
exports["default"] = setGlobal; | ||
var _garbageCollectionUtils = __webpack_require__("./src/garbage-collection-utils.ts"); | ||
/** | ||
@@ -848,5 +916,7 @@ * Copyright (c) Meta Platforms, Inc. and affiliates. | ||
function setGlobal(globalToMutate, key, value) { | ||
// @ts-expect-error: no index | ||
globalToMutate[key] = value; | ||
function setGlobal(globalToMutate, key, value, afterTeardown = 'clean') { | ||
Reflect.set(globalToMutate, key, value); | ||
if (afterTeardown === 'retain' && (0, _garbageCollectionUtils.canDeleteProperties)(value)) { | ||
(0, _garbageCollectionUtils.protectProperties)(value); | ||
} | ||
} | ||
@@ -962,2 +1032,8 @@ | ||
})); | ||
Object.defineProperty(exports, "canDeleteProperties", ({ | ||
enumerable: true, | ||
get: function () { | ||
return _garbageCollectionUtils.canDeleteProperties; | ||
} | ||
})); | ||
Object.defineProperty(exports, "clearLine", ({ | ||
@@ -987,2 +1063,8 @@ enumerable: true, | ||
})); | ||
Object.defineProperty(exports, "deleteProperties", ({ | ||
enumerable: true, | ||
get: function () { | ||
return _garbageCollectionUtils.deleteProperties; | ||
} | ||
})); | ||
Object.defineProperty(exports, "formatTime", ({ | ||
@@ -1043,2 +1125,8 @@ enumerable: true, | ||
exports.preRunMessage = void 0; | ||
Object.defineProperty(exports, "protectProperties", ({ | ||
enumerable: true, | ||
get: function () { | ||
return _garbageCollectionUtils.protectProperties; | ||
} | ||
})); | ||
Object.defineProperty(exports, "replacePathSepForGlob", ({ | ||
@@ -1091,5 +1179,5 @@ enumerable: true, | ||
var _isNonNullable = _interopRequireDefault2(__webpack_require__("./src/isNonNullable.ts")); | ||
var _garbageCollectionUtils = __webpack_require__("./src/garbage-collection-utils.ts"); | ||
function _interopRequireDefault2(e) { return e && e.__esModule ? e : { default: e }; } | ||
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); } | ||
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } | ||
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); } | ||
})(); | ||
@@ -1096,0 +1184,0 @@ |
{ | ||
"name": "jest-util", | ||
"version": "30.0.0-alpha.7", | ||
"version": "30.0.0-beta.3", | ||
"repository": { | ||
@@ -22,3 +22,3 @@ "type": "git", | ||
"dependencies": { | ||
"@jest/types": "30.0.0-alpha.7", | ||
"@jest/types": "30.0.0-beta.3", | ||
"@types/node": "*", | ||
@@ -32,6 +32,6 @@ "chalk": "^4.0.0", | ||
"@types/graceful-fs": "^4.1.3", | ||
"@types/picomatch": "^3.0.0" | ||
"@types/picomatch": "^4.0.0" | ||
}, | ||
"engines": { | ||
"node": "^16.10.0 || ^18.12.0 || >=20.0.0" | ||
"node": "^18.14.0 || ^20.0.0 || >=22.0.0" | ||
}, | ||
@@ -41,3 +41,3 @@ "publishConfig": { | ||
}, | ||
"gitHead": "bacb7de30d053cd87181294b0c8a8576632a8b02" | ||
"gitHead": "a123a3b667a178fb988662aaa1bc6308af759017" | ||
} |
Sorry, the diff of this file is not supported yet
48295
7.51%1184
10.04%+ Added
+ Added
+ Added
+ Added
- Removed
- Removed
- Removed
- Removed
Updated