mirror of
https://github.com/barsdeveloper/ueblueprint.git
synced 2026-02-03 23:55:04 +08:00
39 lines
1.0 KiB
JavaScript
Executable File
39 lines
1.0 KiB
JavaScript
Executable File
import GeneralSerializer from "./GeneralSerializer"
|
|
|
|
/**
|
|
* @typedef {import("../entity/IEntity").default} IEntity
|
|
* @typedef {import("../entity/TypeInitialization").AnyValue} AnyValue
|
|
*/
|
|
/**
|
|
* @template {AnyValue} T
|
|
* @typedef {import("../entity/TypeInitialization").AnyValueConstructor<T>} AnyValueConstructor
|
|
*/
|
|
|
|
/**
|
|
* @template {AnyValue} T
|
|
* @extends {GeneralSerializer<T>}
|
|
*/
|
|
export default class CustomSerializer extends GeneralSerializer {
|
|
|
|
#objectWriter
|
|
|
|
/**
|
|
* @param {(v: T, insideString: Boolean) => String} objectWriter
|
|
* @param {AnyValueConstructor<T>} entityType
|
|
*/
|
|
constructor(objectWriter, entityType) {
|
|
super(undefined, entityType)
|
|
this.#objectWriter = objectWriter
|
|
}
|
|
|
|
/**
|
|
* @param {T} object
|
|
* @param {Boolean} insideString
|
|
* @returns {String}
|
|
*/
|
|
write(entity, object, insideString = false) {
|
|
let result = this.#objectWriter(object, insideString)
|
|
return result
|
|
}
|
|
}
|