@sudoo/marked
Version:
JavaScript & TypeScript code runner in JavaScript, safe with marked territory, asynchronous
63 lines (62 loc) • 1.5 kB
JavaScript
;
/**
* @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;