UNPKG

@sudoo/marked

Version:

JavaScript & TypeScript code runner in JavaScript, safe with marked territory, asynchronous

63 lines (62 loc) 1.5 kB
"use strict"; /** * @author WMXPY * @namespace Variable * @description List */ Object.defineProperty(exports, "__esModule", { value: true }); exports.SandList = void 0; const variable_1 = require("./variable"); class SandList { static fromScratch() { return new SandList([]); } static fromRawList(list) { const variableList = list.map((value) => { return variable_1.Variable.mutable(value); }); return new SandList(variableList); } static fromVariableList(list) { return new SandList(list); } constructor(list) { this._list = list; } get list() { return this.map((element) => element.get()); } get length() { return this._list.length; } map(func) { return this._list.map((element) => { return func(element); }); } push(value) { const variable = variable_1.Variable.mutable(value); this._list.push(variable); return this; } get(key) { const variable = this._list[key]; return variable ? variable.get() : undefined; } getRaw(key) { return this._list[key]; } clone() { const newList = []; this._list.forEach((element) => { newList.push(element.clone()); }); return SandList.fromVariableList(newList); } toString() { return this._list.toString(); } } exports.SandList = SandList;