export class StringValue extends String { async get() { return super.valueOf() } } export class NumberValue extends Number { async get() { return super.valueOf() } } export class BooleanValue extends Boolean { async get() { return super.valueOf() } } export class ArrayValue extends Array { constructor (value) { super(...value) } async get() { return super.valueOf() } } export class UploadValue { constructor (value, uploaderFunc) { this.value = value this.uploaderFunc = uploaderFunc } async get() { return this.uploaderFunc(this.value) } } export class ObjectValue { constructor (value) { Object.assign(this, value) } async get () { return this } }