MCPcopy Create free account
hub / github.com/aiscript-dev/aiscript / valToJs

Function valToJs

src/interpreter/util.ts:132–150  ·  view source on GitHub ↗
(val: Value)

Source from the content-addressed store, hash-verified

130export type JsValue = { [key: string]: JsValue } | JsValue[] | string | number | boolean | null | undefined;
131
132export function valToJs(val: Value): JsValue {
133 switch (val.type) {
134 case 'fn': return '<function>';
135 case 'arr': return val.value.map(item => valToJs(item));
136 case 'bool': return val.value;
137 case 'null': return null;
138 case 'num': return val.value;
139 case 'obj': {
140 const obj: { [key: string]: JsValue } = {};
141 for (const [k, v] of val.value.entries()) {
142 // TODO: keyが__proto__とかじゃないかチェック
143 obj[k] = valToJs(v);
144 }
145 return obj;
146 }
147 case 'str': return val.value;
148 default: throw new Error(`Unrecognized value type: ${val.type}`);
149 }
150}
151
152export function jsToVal(val: unknown): Value {
153 if (val === null) return NULL;

Callers 1

std.tsFile · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected