@woosh/meep-engine
Version:
Pure JavaScript game engine. Fully featured and production ready.
66 lines • 2.29 kB
TypeScript
/**
* 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