mirror of
https://github.com/barsdeveloper/ueblueprint.git
synced 2026-02-13 16:44:49 +08:00
* WIP * WIP * wip * WIP * Several fixes * Tests wip port to playwright * WIP * Fix more tests * Serialization tests fixed * Several fixes for tests * Input options types * Type adjustments * Fix object reference parser * Tests fixes * More tests fixes
35 lines
687 B
JavaScript
35 lines
687 B
JavaScript
/** @template {Attribute} T */
|
|
export default class MirroredEntity {
|
|
|
|
static attributes = {
|
|
type: {
|
|
ignored: true,
|
|
},
|
|
getter: {
|
|
ignored: true,
|
|
},
|
|
}
|
|
|
|
/**
|
|
* @param {ConstructorType<T>} type
|
|
* @param {() => T} getter
|
|
*/
|
|
constructor(type, getter = null) {
|
|
this.type = type
|
|
this.getter = getter
|
|
}
|
|
|
|
get() {
|
|
return this.getter()
|
|
}
|
|
|
|
/** @returns {AttributeConstructor<Attribute>} */
|
|
getTargetType() {
|
|
const result = this.type
|
|
if (result instanceof MirroredEntity) {
|
|
return result.getTargetType()
|
|
}
|
|
return result
|
|
}
|
|
}
|