@actyx/sdk
Version:
Actyx SDK
77 lines • 2.67 kB
JavaScript
;
/*
* 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