@eeue56/ts-core
Version:
Core library for TypeScript inspired by Elm
58 lines • 2.58 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.mapBoth = exports.mapSecond = exports.mapFirst = exports.second = exports.first = exports.pair = void 0;
/*
Create a new tuple
*/
function pair(first, second) {
return {
first: first,
second: second,
};
}
exports.pair = pair;
/*
First element of tuple
*/
function first(tuple) {
return tuple.first;
}
exports.first = first;
/*
Second element of tuple
*/
function second(tuple) {
return tuple.second;
}
exports.second = second;
/*
Apply a function to the first element of a tuple and save it
*/
function mapFirst(func, tuple) {
return {
first: func(tuple.first),
second: tuple.second,
};
}
exports.mapFirst = mapFirst;
/*
Apply a function to the second element of a tuple and save it
*/
function mapSecond(func, tuple) {
return {
first: tuple.first,
second: func(tuple.second),
};
}
exports.mapSecond = mapSecond;
/*
Apply two separate functions to the first and second elements of a tuple and save it
*/
function mapBoth(firstFunc, secondFunc, tuple) {
return {
first: firstFunc(tuple.first),
second: secondFunc(tuple.second),
};
}
exports.mapBoth = mapBoth;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHVwbGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3R1cGxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUtBOztFQUVFO0FBQ0YsU0FBZ0IsSUFBSSxDQUFPLEtBQVEsRUFBRSxNQUFTO0lBQzFDLE9BQU87UUFDSCxLQUFLLEVBQUUsS0FBSztRQUNaLE1BQU0sRUFBRSxNQUFNO0tBQ2pCLENBQUM7QUFDTixDQUFDO0FBTEQsb0JBS0M7QUFFRDs7RUFFRTtBQUNGLFNBQWdCLEtBQUssQ0FBTyxLQUFrQjtJQUMxQyxPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUM7QUFDdkIsQ0FBQztBQUZELHNCQUVDO0FBRUQ7O0VBRUU7QUFDRixTQUFnQixNQUFNLENBQU8sS0FBa0I7SUFDM0MsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDO0FBQ3hCLENBQUM7QUFGRCx3QkFFQztBQUVEOztFQUVFO0FBQ0YsU0FBZ0IsUUFBUSxDQUNwQixJQUFtQixFQUNuQixLQUFrQjtJQUVsQixPQUFPO1FBQ0gsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQ3hCLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTTtLQUN2QixDQUFDO0FBQ04sQ0FBQztBQVJELDRCQVFDO0FBRUQ7O0VBRUU7QUFDRixTQUFnQixTQUFTLENBQ3JCLElBQW1CLEVBQ25CLEtBQWtCO0lBRWxCLE9BQU87UUFDSCxLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUs7UUFDbEIsTUFBTSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO0tBQzdCLENBQUM7QUFDTixDQUFDO0FBUkQsOEJBUUM7QUFFRDs7RUFFRTtBQUNGLFNBQWdCLE9BQU8sQ0FDbkIsU0FBd0IsRUFDeEIsVUFBeUIsRUFDekIsS0FBa0I7SUFFbEIsT0FBTztRQUNILEtBQUssRUFBRSxTQUFTLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztRQUM3QixNQUFNLEVBQUUsVUFBVSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7S0FDbkMsQ0FBQztBQUNOLENBQUM7QUFURCwwQkFTQyJ9