UNPKG

calcium-lang

Version:
25 lines 775 B
import { retrieveValue } from "../util"; import { createList, createStr } from "../factory"; import { NotIterable } from "../error"; /** * built-in `list()` function * @param args accept an argument that is iterable * @param env * @returns a list object */ const list = (args, env) => { const src = retrieveValue(args[0], env); if (typeof src === "string") { return createList(Array.from(src).map((v) => createStr(v))); } else if (Array.isArray(src)) { return createList(Array.from(src)); } else if (src && typeof src === "object") { // src is a "dict" object. return createList(Object.keys(src).map((v) => createStr(v))); } throw new NotIterable(); }; export default list; //# sourceMappingURL=list.js.map