aboutsummaryrefslogtreecommitdiff
path: root/src/fields/ListField.ts
blob: 9a26cb14227726800adb80ee414439ef0922c954 (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
26
import { Field, FIELD_ID } from "./Field";
import { BasicField } from "./BasicField";
import { Types } from "../server/Message";
import { ObjectId } from "bson";

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
        }
    }
}