aboutsummaryrefslogtreecommitdiff
path: root/src/fields/ListField.ts
blob: 925f8c7f477aca02355d8f35bc3e27ea9599f31e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import { Field, FIELD_ID } from "./Field";
import { BasicField } from "./BasicField";
import { Types } from "../server/Message";

export class ListField<T extends Field> extends BasicField<T[]> {
    constructor(data: T[] = [], id: FIELD_ID = undefined) {
        super(data.slice(), id);
    }

    ToScriptString(): string {
        return "new ListField([" + this.Data.map(field => field.ToScriptString()).join(", ") + "])";
    }

    Copy(): Field {
        return new ListField<T>(this.Data);
    }

    ToJson(): { type: Types, data: T[], id: string } {
        return {
            type: Types.List,
            data: this.Data,
            id: this.Id as string
        }
    }
}