diff options
Diffstat (limited to 'node_modules/jest-serializer')
-rw-r--r-- | node_modules/jest-serializer/LICENSE | 21 | ||||
-rw-r--r-- | node_modules/jest-serializer/README.md | 47 | ||||
-rw-r--r-- | node_modules/jest-serializer/build/index.d.ts | 20 | ||||
-rw-r--r-- | node_modules/jest-serializer/build/index.js | 109 | ||||
-rw-r--r-- | node_modules/jest-serializer/package.json | 33 | ||||
-rw-r--r-- | node_modules/jest-serializer/v8.d.ts | 11 |
6 files changed, 241 insertions, 0 deletions
diff --git a/node_modules/jest-serializer/LICENSE b/node_modules/jest-serializer/LICENSE new file mode 100644 index 0000000..b96dcb0 --- /dev/null +++ b/node_modules/jest-serializer/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) Facebook, Inc. and its affiliates. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/jest-serializer/README.md b/node_modules/jest-serializer/README.md new file mode 100644 index 0000000..43c8bb1 --- /dev/null +++ b/node_modules/jest-serializer/README.md @@ -0,0 +1,47 @@ +# jest-serializer + +Module for serializing and deserializing object into memory and disk. By default, the `v8` implementations are used, but if not present, it defaults to `JSON` implementation. Both serializers have the advantage of being able to serialize `Map`, `Set`, `undefined`, `NaN`, etc, although the JSON one does it through a replacer/reviver. + +## Install + +```sh +$ yarn add jest-serializer +``` + +## API + +Three kinds of API groups are exposed: + +### In-memory serialization: `serialize` and `deserialize` + +This set of functions take or return a `Buffer`. All the process happens in memory. This is useful when willing to transfer over HTTP, TCP or via UNIX pipes. + +```javascript +import {deserialize, serialize} from 'jest-serializer'; + +const myObject = { + foo: 'bar', + baz: [0, true, '2', [], {}], +}; + +const buffer = serialize(myObject); +const myCopyObject = deserialize(buffer); +``` + +### Synchronous persistent filesystem: `readFileSync` and `writeFileSync` + +This set of functions allow to send to disk a serialization result and retrieve it back, in a synchronous way. It mimics the `fs` API so it looks familiar. + +```javascript +import {readFileSync, writeFileSync} from 'jest-serializer'; + +const myObject = { + foo: 'bar', + baz: [0, true, '2', [], {}], +}; + +const myFile = '/tmp/obj'; + +writeFileSync(myFile, myObject); +const myCopyObject = readFileSync(myFile); +``` diff --git a/node_modules/jest-serializer/build/index.d.ts b/node_modules/jest-serializer/build/index.d.ts new file mode 100644 index 0000000..af6694e --- /dev/null +++ b/node_modules/jest-serializer/build/index.d.ts @@ -0,0 +1,20 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +/// <reference path="../v8.d.ts" /> +/// <reference types="node" /> +declare type Path = string; +export declare function deserialize(buffer: Buffer): unknown; +export declare function serialize(content: unknown): Buffer; +export declare function readFileSync(filePath: Path): unknown; +export declare function writeFileSync(filePath: Path, content: unknown): void; +declare const _default: { + deserialize: typeof deserialize; + readFileSync: typeof readFileSync; + serialize: typeof serialize; + writeFileSync: typeof writeFileSync; +}; +export default _default; diff --git a/node_modules/jest-serializer/build/index.js b/node_modules/jest-serializer/build/index.js new file mode 100644 index 0000000..802072f --- /dev/null +++ b/node_modules/jest-serializer/build/index.js @@ -0,0 +1,109 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { + value: true +}); +exports.default = void 0; +exports.deserialize = deserialize; +exports.readFileSync = readFileSync; +exports.serialize = serialize; +exports.writeFileSync = writeFileSync; + +function _v() { + const data = require('v8'); + + _v = function () { + return data; + }; + + return data; +} + +function fs() { + const data = _interopRequireWildcard(require('graceful-fs')); + + fs = function () { + return data; + }; + + return data; +} + +function _getRequireWildcardCache(nodeInterop) { + if (typeof WeakMap !== 'function') return null; + var cacheBabelInterop = new WeakMap(); + var cacheNodeInterop = new WeakMap(); + return (_getRequireWildcardCache = function (nodeInterop) { + return nodeInterop ? cacheNodeInterop : cacheBabelInterop; + })(nodeInterop); +} + +function _interopRequireWildcard(obj, nodeInterop) { + if (!nodeInterop && obj && obj.__esModule) { + return obj; + } + if (obj === null || (typeof obj !== 'object' && typeof obj !== 'function')) { + return {default: obj}; + } + var cache = _getRequireWildcardCache(nodeInterop); + if (cache && cache.has(obj)) { + return cache.get(obj); + } + var newObj = {}; + var hasPropertyDescriptor = + Object.defineProperty && Object.getOwnPropertyDescriptor; + for (var key in obj) { + if (key !== 'default' && Object.prototype.hasOwnProperty.call(obj, key)) { + var desc = hasPropertyDescriptor + ? Object.getOwnPropertyDescriptor(obj, key) + : null; + if (desc && (desc.get || desc.set)) { + Object.defineProperty(newObj, key, desc); + } else { + newObj[key] = obj[key]; + } + } + } + newObj.default = obj; + if (cache) { + cache.set(obj, newObj); + } + return newObj; +} + +/** + * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +// TODO: Remove this +/// <reference path="../v8.d.ts" /> +// JSON and V8 serializers are both stable when it comes to compatibility. The +// current JSON specification is well defined in RFC 8259, and V8 ensures that +// the versions are compatible by encoding the serialization version in the own +// generated buffer. +// In memory functions. +function deserialize(buffer) { + return (0, _v().deserialize)(buffer); +} + +function serialize(content) { + return (0, _v().serialize)(content); +} // Synchronous filesystem functions. + +function readFileSync(filePath) { + return (0, _v().deserialize)(fs().readFileSync(filePath)); +} + +function writeFileSync(filePath, content) { + return fs().writeFileSync(filePath, (0, _v().serialize)(content)); +} + +var _default = { + deserialize, + readFileSync, + serialize, + writeFileSync +}; +exports.default = _default; diff --git a/node_modules/jest-serializer/package.json b/node_modules/jest-serializer/package.json new file mode 100644 index 0000000..3cb49fa --- /dev/null +++ b/node_modules/jest-serializer/package.json @@ -0,0 +1,33 @@ +{ + "name": "jest-serializer", + "version": "27.5.1", + "repository": { + "type": "git", + "url": "https://github.com/facebook/jest.git", + "directory": "packages/jest-serializer" + }, + "devDependencies": { + "@types/graceful-fs": "^4.1.3" + }, + "dependencies": { + "@types/node": "*", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "license": "MIT", + "main": "./build/index.js", + "types": "./build/index.d.ts", + "exports": { + ".": { + "types": "./build/index.d.ts", + "default": "./build/index.js" + }, + "./package.json": "./package.json" + }, + "publishConfig": { + "access": "public" + }, + "gitHead": "67c1aa20c5fec31366d733e901fee2b981cb1850" +} diff --git a/node_modules/jest-serializer/v8.d.ts b/node_modules/jest-serializer/v8.d.ts new file mode 100644 index 0000000..809c499 --- /dev/null +++ b/node_modules/jest-serializer/v8.d.ts @@ -0,0 +1,11 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +declare module 'v8' { + function serialize(value: unknown): Buffer; + function deserialize(value: Buffer): unknown; +} |