How to use the rambda.path function in rambda

To help you get started, we’ve selected a few rambda examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github terascope / teraslice / packages / elasticsearch-store / src / utils / fp.ts View on Github external
),
    R.defaultTo('Unknown Error'),
);

export const getErrorMessages: (errors: i.ErrorLike[]) => string = R.pipe(
    // @ts-ignore
    R.map(getErrorMessage),
    R.join(', '),
);

export const getErrorType = R.pathOr('', ['error', 'type']);

export const getStatusCode: (error: i.ErrorLike) => number = R.pipe(
    R.ifElse(
        R.has('statusCode'),
        R.path('statusCode'),
        R.path('status')
    ),
    R.defaultTo(500)
);

type Shard = { primary: boolean, stage: string };

export function shardsPath(index: string): (stats: any) => Shard[] {
    return R.pathOr([], [index, 'shards']);
}

export const verifyIndexShards: (shards: Shard[]) => boolean = R.pipe(
    // @ts-ignore
    R.filter((shard: Shard) => shard.primary),
    R.all((shard: Shard) => shard.stage === 'DONE')
);
github terascope / teraslice / packages / elasticsearch-store / src / utils / fp.ts View on Github external
export const verifyIndexShards: (shards: Shard[]) => boolean = R.pipe(
    // @ts-ignore
    R.filter((shard: Shard) => shard.primary),
    R.all((shard: Shard) => shard.stage === 'DONE')
);

export const getRolloverFrequency = R.pathOr('monthly', ['indexSchema', 'rollover_frequency']);

type indexFn = (config?: i.IndexSchema) => boolean;

export const isSimpleIndex: indexFn = R.both(
    isNotNil,
    R.both(
        R.has('mapping'),
        R.pipe(R.path('template'), R.isNil)
    )
);

export const isTemplatedIndex: indexFn = R.both(
    isNotNil,
    R.both(
        R.has('mapping'),
        R.propEq('template', true),
    )
);

export const isTimeSeriesIndex: indexFn = R.both(
    isTemplatedIndex,
    R.propEq('timeseries', true)
);
github timberio / timber-js / packages / koa / src / koa.ts View on Github external
this._koaOptions.contextPaths.forEach(p => {
      // @ts-ignore
      context[p] = path(p, ctx);
    });
github wagerfield / ig-api / src / error.js View on Github external
import { path } from 'rambda'

const statusCode = path('status')
const statusText = path('statusText')
const errorCode = path('data.errorCode')
const headers = path('headers')
const method = path('method')
const params = path('params')
const data = path('data')
const url = path('url')

export default function createError({ message, request, response, config }) {
  const error = new Error(message)
  error.type = response ? 'response' : request ? 'request' : 'internal'
  if (config) {
    error.url = url(config)
    error.data = data(config)
    error.params = params(config)
    error.method = method(config)
    error.headers = headers(config)
  }
  if (response) {
github wagerfield / ig-api / src / utils.js View on Github external
export function transformResponse(response) {
  return path('data', response)
}
github wagerfield / ig-api / src / error.js View on Github external
import { path } from 'rambda'

const statusCode = path('status')
const statusText = path('statusText')
const errorCode = path('data.errorCode')
const headers = path('headers')
const method = path('method')
const params = path('params')
const data = path('data')
const url = path('url')

export default function createError({ message, request, response, config }) {
  const error = new Error(message)
  error.type = response ? 'response' : request ? 'request' : 'internal'
  if (config) {
    error.url = url(config)
    error.data = data(config)
    error.params = params(config)
    error.method = method(config)
    error.headers = headers(config)
github wagerfield / ig-api / src / error.js View on Github external
import { path } from 'rambda'

const statusCode = path('status')
const statusText = path('statusText')
const errorCode = path('data.errorCode')
const headers = path('headers')
const method = path('method')
const params = path('params')
const data = path('data')
const url = path('url')

export default function createError({ message, request, response, config }) {
  const error = new Error(message)
  error.type = response ? 'response' : request ? 'request' : 'internal'
  if (config) {
    error.url = url(config)
    error.data = data(config)
    error.params = params(config)
    error.method = method(config)
    error.headers = headers(config)
  }
  if (response) {
    error.errorCode = errorCode(response)
github wagerfield / ig-api / src / utils.js View on Github external
export function get(inputObject, inputPath, defaultValue) {
  const inputValue = path(inputPath, inputObject)
  return isUndefined(inputValue) ? defaultValue : inputValue
}
github wagerfield / ig-api / src / error.js View on Github external
import { path } from 'rambda'

const statusCode = path('status')
const statusText = path('statusText')
const errorCode = path('data.errorCode')
const headers = path('headers')
const method = path('method')
const params = path('params')
const data = path('data')
const url = path('url')

export default function createError({ message, request, response, config }) {
  const error = new Error(message)
  error.type = response ? 'response' : request ? 'request' : 'internal'
  if (config) {
    error.url = url(config)
    error.data = data(config)
    error.params = params(config)
    error.method = method(config)
    error.headers = headers(config)
  }
  if (response) {
    error.errorCode = errorCode(response)
    error.statusCode = statusCode(response)
    error.statusText = statusText(response)
  }
github terascope / teraslice / packages / elasticsearch-store / src / utils / errors.ts View on Github external
export function getErrorMessage(err: ErrorLike): string {
    const defaultErrorMsg = 'Unknown Error';
    if (err && ts.isString(err)) {
        return err;
    }

    const message: string = R.path(['message'], err) || R.pathOr(defaultErrorMsg, ['msg'], err);
    const prefix = R.path(['dataPath'], err);

    return `${prefix ? `${prefix} ` : ''}${message}`;
}