| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 | /** *  Property helper functions. * *  @_subsection api/utils:Properties  [about-properties] */function checkType(value, type, name) {    const types = type.split("|").map(t => t.trim());    for (let i = 0; i < types.length; i++) {        switch (type) {            case "any":                return;            case "bigint":            case "boolean":            case "number":            case "string":                if (typeof (value) === type) {                    return;                }        }    }    const error = new Error(`invalid value for type ${type}`);    error.code = "INVALID_ARGUMENT";    error.argument = `value.${name}`;    error.value = value;    throw error;}/** *  Resolves to a new object that is a copy of %%value%%, but with all *  values resolved. */export async function resolveProperties(value) {    const keys = Object.keys(value);    const results = await Promise.all(keys.map((k) => Promise.resolve(value[k])));    return results.reduce((accum, v, index) => {        accum[keys[index]] = v;        return accum;    }, {});}/** *  Assigns the %%values%% to %%target%% as read-only values. * *  It %%types%% is specified, the values are checked. */export function defineProperties(target, values, types) {    for (let key in values) {        let value = values[key];        const type = (types ? types[key] : null);        if (type) {            checkType(value, type, key);        }        Object.defineProperty(target, key, { enumerable: true, value, writable: false });    }}//# sourceMappingURL=properties.js.map
 |