webpack/lib/util/serialization.js

38 lines
1.4 KiB
JavaScript
Raw Normal View History

2018-12-28 20:18:02 +08:00
/*
MIT License http://www.opensource.org/licenses/mit-license.php
*/
"use strict";
const BinaryMiddleware = require("../serialization/BinaryMiddleware");
const FileMiddleware = require("../serialization/FileMiddleware");
2018-12-28 20:18:02 +08:00
const ObjectMiddleware = require("../serialization/ObjectMiddleware");
const Serializer = require("../serialization/Serializer");
2018-12-28 20:18:02 +08:00
2018-12-28 21:48:18 +08:00
/** @typedef {import("../serialization/ObjectMiddleware").ObjectDeserializerContext} ObjectDeserializerContext */
/** @typedef {import("../serialization/ObjectMiddleware").ObjectSerializerContext} ObjectSerializerContext */
const { register, registerLoader, registerNotSerializable } = ObjectMiddleware;
2018-12-28 20:18:02 +08:00
// Expose serialization API
exports.register = register;
exports.registerLoader = registerLoader;
exports.registerNotSerializable = registerNotSerializable;
2019-01-19 18:47:19 +08:00
exports.NOT_SERIALIZABLE = ObjectMiddleware.NOT_SERIALIZABLE;
exports.MEASURE_START_OPERATION = BinaryMiddleware.MEASURE_START_OPERATION;
exports.MEASURE_END_OPERATION = BinaryMiddleware.MEASURE_END_OPERATION;
exports.serializer = new Serializer(
[new ObjectMiddleware(), new BinaryMiddleware(), new FileMiddleware()],
{
singleItem: true
}
);
require("./registerExternalSerializer");
// Load internal paths with a relative require
// This allows bundling all internal serializers
registerLoader(/^webpack\/lib\//, req =>
require("../" + req.slice("webpack/lib/".length))
);