| 
									
										
										
										
											2018-12-28 20:18:02 +08:00
										 |  |  | /* | 
					
						
							|  |  |  | 	MIT License http://www.opensource.org/licenses/mit-license.php
 | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | "use strict"; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-12-28 20:54:10 +08:00
										 |  |  | const BinaryMiddleware = require("../serialization/BinaryMiddleware"); | 
					
						
							|  |  |  | const FileMiddleware = require("../serialization/FileMiddleware"); | 
					
						
							| 
									
										
										
										
											2018-12-28 20:18:02 +08:00
										 |  |  | const ObjectMiddleware = require("../serialization/ObjectMiddleware"); | 
					
						
							| 
									
										
										
										
											2018-12-28 20:54:10 +08:00
										 |  |  | 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 */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-12-28 20:54:10 +08:00
										 |  |  | const { register, registerLoader, registerNotSerializable } = ObjectMiddleware; | 
					
						
							| 
									
										
										
										
											2018-12-28 20:18:02 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-12-28 20:54:10 +08:00
										 |  |  | // Expose serialization API
 | 
					
						
							|  |  |  | exports.register = register; | 
					
						
							|  |  |  | exports.registerLoader = registerLoader; | 
					
						
							|  |  |  | exports.registerNotSerializable = registerNotSerializable; | 
					
						
							|  |  |  | 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)) | 
					
						
							|  |  |  | ); |