@eeue56/ts-core
Version:
Core library for TypeScript inspired by Elm
49 lines • 2.22 kB
JavaScript
/*
Create a new tuple
*/
export function pair(first, second) {
return {
first: first,
second: second,
};
}
/*
First element of tuple
*/
export function first(tuple) {
return tuple.first;
}
/*
Second element of tuple
*/
export function second(tuple) {
return tuple.second;
}
/*
Apply a function to the first element of a tuple and save it
*/
export function mapFirst(func, tuple) {
return {
first: func(tuple.first),
second: tuple.second,
};
}
/*
Apply a function to the second element of a tuple and save it
*/
export function mapSecond(func, tuple) {
return {
first: tuple.first,
second: func(tuple.second),
};
}
/*
Apply two separate functions to the first and second elements of a tuple and save it
*/
export function mapBoth(firstFunc, secondFunc, tuple) {
return {
first: firstFunc(tuple.first),
second: secondFunc(tuple.second),
};
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHVwbGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3R1cGxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBOztFQUVFO0FBQ0YsTUFBTSxVQUFVLElBQUksQ0FBTyxLQUFRLEVBQUUsTUFBUztJQUMxQyxPQUFPO1FBQ0gsS0FBSyxFQUFFLEtBQUs7UUFDWixNQUFNLEVBQUUsTUFBTTtLQUNqQixDQUFDO0FBQ04sQ0FBQztBQUVEOztFQUVFO0FBQ0YsTUFBTSxVQUFVLEtBQUssQ0FBTyxLQUFrQjtJQUMxQyxPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUM7QUFDdkIsQ0FBQztBQUVEOztFQUVFO0FBQ0YsTUFBTSxVQUFVLE1BQU0sQ0FBTyxLQUFrQjtJQUMzQyxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUM7QUFDeEIsQ0FBQztBQUVEOztFQUVFO0FBQ0YsTUFBTSxVQUFVLFFBQVEsQ0FDcEIsSUFBbUIsRUFDbkIsS0FBa0I7SUFFbEIsT0FBTztRQUNILEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztRQUN4QixNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU07S0FDdkIsQ0FBQztBQUNOLENBQUM7QUFFRDs7RUFFRTtBQUNGLE1BQU0sVUFBVSxTQUFTLENBQ3JCLElBQW1CLEVBQ25CLEtBQWtCO0lBRWxCLE9BQU87UUFDSCxLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUs7UUFDbEIsTUFBTSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO0tBQzdCLENBQUM7QUFDTixDQUFDO0FBRUQ7O0VBRUU7QUFDRixNQUFNLFVBQVUsT0FBTyxDQUNuQixTQUF3QixFQUN4QixVQUF5QixFQUN6QixLQUFrQjtJQUVsQixPQUFPO1FBQ0gsS0FBSyxFQUFFLFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQzdCLE1BQU0sRUFBRSxVQUFVLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztLQUNuQyxDQUFDO0FBQ04sQ0FBQyJ9