UNPKG

@voiceflow/common

Version:

Junk drawer of utility functions

18 lines (17 loc) 783 B
import { actionCreatorFactory } from 'typescript-fsa'; export const createAction = actionCreatorFactory(); export const createAsyncAction = (type, commonMeta) => createAction.async(type, commonMeta); export const typeFactory = (...parts) => (name) => [...parts, name].join('.'); export class Channel { constructor(variables, build) { this.variables = variables; this.build = build; } buildMatcher() { return this.build(this.variables.reduce((acc, key) => Object.assign(acc, { [key]: `:${key}` }), {})); } extend(variables, build) { return new Channel([...this.variables, ...variables], (params) => `${this.build(params)}/${build(params)}`); } } export const createChannel = (variables, build) => new Channel(variables, build);