UNPKG

@woosh/meep-engine

Version:

Pure JavaScript game engine. Fully featured and production ready.

66 lines 2.29 kB
/** * Contains serializers for various data types as well as data upgraders which enable support for serialization format changes * * @author Alex Goldring * @copyright Company Named Limited (c) 2025 */ export class BinarySerializationRegistry { /** * @readonly * @private * @type {Map<string, Graph<BinaryClassUpgrader>>} */ private readonly upgraders; /** * @readonly * @private * @type {Map<string, BinaryClassSerializationAdapter>} */ private readonly serializers; /** * * @param {BinaryClassSerializationAdapter[]} adapters */ registerAdapters(adapters: BinaryClassSerializationAdapter[]): void; /** * * @param {BinaryClassSerializationAdapter} adapter * @param {string} [className] if not specified, will be taken from the {@link BinaryClassSerializationAdapter.klass.typeName} * @returns {boolean} true if added, false if adapter already existed * @throws {Error} if `className` could not be inferred */ registerAdapter(adapter: BinaryClassSerializationAdapter, className?: string): boolean; /** * * @param {string} className * @returns {BinaryClassSerializationAdapter|undefined} */ removeAdapter(className: string): BinaryClassSerializationAdapter | undefined; /** * * @param {string} className * @returns {BinaryClassSerializationAdapter|undefined} */ getAdapter(className: string): BinaryClassSerializationAdapter | undefined; /** * * @param {string} className * @param {BinaryClassUpgrader} upgrader * @returns {boolean} true iff added, false if already exists */ registerUpgrader(className: string, upgrader: BinaryClassUpgrader): boolean; /** * * @param {string} className * @param {number} startVersion * @param {number} goalVersion * @returns {BinaryClassUpgrader[]|null} sequential shortest chain of upgraders or null if no valid chain exists */ getUpgradersChain(className: string, startVersion: number, goalVersion: number): BinaryClassUpgrader[] | null; /** * @readonly * @type {boolean} */ readonly isBinarySerializationRegistry: boolean; } //# sourceMappingURL=BinarySerializationRegistry.d.ts.map