@tinymce/beehive-flow
Version:
A CLI tool implementing the beehive flow git branching process
26 lines (20 loc) • 667 B
text/typescript
import * as O from 'fp-ts/Option';
type Option<A> = O.Option<A>;
export const hasKey = <T>(o: T, k: keyof T): boolean =>
Object.prototype.hasOwnProperty.call(o, k);
export const lookup = <K extends keyof T, T>(o: T, k: K): Option<T[K]> =>
hasKey(o, k) ? O.some(o[k]) : O.none;
export const map = <A, B>(o: Record<string, A>, f: (a: A) => B): Record<string, B> => {
const r: Record<string, B> = {};
for (const k of Object.keys(o)) {
r[k] = f(o[k]);
}
return r;
};
export const fromPairs = <A> (pairs: Array<[string, A]>): Record<string, A> => {
const r: Record<string, A> = {};
pairs.forEach(([ k, v ]) => {
r[k] = v;
});
return r;
};