UNPKG

@actyx/sdk

Version:
77 lines 2.67 kB
"use strict"; /* * Actyx SDK: Functions for writing distributed apps * deployed on peer-to-peer networks, without any servers. * * Copyright (C) 2021 Actyx AG */ /* eslint-disable @typescript-eslint/no-explicit-any */ Object.defineProperty(exports, "__esModule", { value: true }); exports.noop = exports.PartialRecord = exports.tuple = exports.toKeyValueMap = exports.toKeyValueMapF = exports.entriesOf2 = exports.entriesOf = exports.keysOf = exports.valuesOf = exports.isDefined = exports.lookup = exports.unreachableOrElse = exports.unreachable = exports.none = exports.todo = void 0; /* eslint-enable @typescript-eslint/ban-types */ const todo = () => { throw new Error('not implemented yet'); }; exports.todo = todo; const none = () => { throw new Error('there should have been something'); }; exports.none = none; /** * Assert that from the type information, a piece of code can never be reached. * If it’s still reached at runtime, this throws an Error. * @public */ const unreachable = () => { throw new Error('Unreachable code!'); }; exports.unreachable = unreachable; /** * Assert that from the type information, a certain statement can never be reached, * while installing a default value to return in case the type information was wrong * and the statement was in fact reached. * @public */ function unreachableOrElse(_, t) { return t; } exports.unreachableOrElse = unreachableOrElse; /** * Avoids lint false positives like "Expression is always false. (strict-type-predicates)" */ const lookup = (m, k) => m[k]; exports.lookup = lookup; const isDefined = (v) => v !== undefined; exports.isDefined = isDefined; const valuesOf = (m) => Object.values(m).filter(exports.isDefined); exports.valuesOf = valuesOf; const keysOf = (m) => Object.keys(m); exports.keysOf = keysOf; const entriesOf = (obj) => Object.entries(obj).filter(([, x]) => (0, exports.isDefined)(x)); exports.entriesOf = entriesOf; const entriesOf2 = (m1) => (0, exports.entriesOf)(m1).reduce((acc, [k1, m2]) => acc.concat((0, exports.entriesOf)(m2).map(([k2, v]) => [ k1, k2, v, ])), []); exports.entriesOf2 = entriesOf2; const toKeyValueMapF = (getKey, map, xs) => xs.reduce((acc, v) => { acc[getKey(v)] = map(v); return acc; }, {}); exports.toKeyValueMapF = toKeyValueMapF; const toKeyValueMap = (key, xs) => xs.reduce((acc, v) => { acc[v[key]] = v; return acc; }, {}); exports.toKeyValueMap = toKeyValueMap; const tuple = (...data) => data; exports.tuple = tuple; exports.PartialRecord = { get(m, key) { return m[key]; }, }; const noop = () => undefined; exports.noop = noop; //# sourceMappingURL=typescript.js.map