Files
ueblueprint/js/serialization/CustomSerializer.js
barsdeveloper bb24486303 Grammar refactoring
* Grammar refactoring WIP

* ISerializer.grammar

* Fixing various bugs in the grammar

* Small touch that improoves performance

* Fix unknown values grammar

* Various fixes

* Serialization refactoring to drop suboject logic

* Details fixed

* Entity attributes initialization refactoring

* JSDoc error fixed

* Rename value key to default

* Remove useless default

* Revert string keys
2023-04-01 19:55:16 +02:00

35 lines
898 B
JavaScript
Executable File

import GeneralSerializer from "./GeneralSerializer.js"
/**
* @typedef {import("../entity/IEntity").AnyValue} AnyValue
* @typedef {import("../entity/IEntity").AnyValueConstructor<*>} AnyValueConstructor
*/
/**
* @template {AnyValue} T
* @extends {GeneralSerializer<T>}
*/
export default class CustomSerializer extends GeneralSerializer {
#objectWriter
/**
* @param {(v: T, insideString: Boolean) => String} objectWriter
* @param {AnyValueConstructor} entityType
*/
constructor(objectWriter, entityType) {
super(undefined, entityType)
this.#objectWriter = objectWriter
}
/**
* @param {T} entity
* @param {Boolean} insideString
* @returns {String}
*/
write(entity, insideString = false) {
let result = this.#objectWriter(entity, insideString)
return result
}
}