How to use ramda - 10 common examples

To help you get started, we’ve selected a few ramda 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 flow-typed / flow-typed / definitions / npm / ramda_v0.x.x / flow_v0.49.x-v0.61.x / test_ramda_v0.x.x_list.js View on Github external
// Ramda doesn't strictly break if you pass it an object, but it always
  // returns undefined.
  // $ExpectError
  const findObj = find(o => o == "bar", { foo: "bar" });

  const findxs2: ?{ [k: string]: number | string } = _.findLast(
    _.propEq("a", 2),
    os
  );
  const findxs3: ?{ [k: string]: number | string } = _.findLast(
    _.propEq("a", 4)
  )(os);
  const findxs4: number = _.findIndex(_.propEq("a", 2), os);
  const findxs5: number = _.findIndex(_.propEq("a", 4))(os);
  const findxs6: number = _.findLastIndex(_.propEq("a", 2), os);
  const findxs7: number = _.findLastIndex(_.propEq("a", 4))(os);

  const s: Array = filter(x => x > 1, [1, 2]);
  const s1: Array = _.filter(x => x === "2", ["2", "3"]);
  const s3: { [key: string]: string } = _.filter(x => x === "2", {
    a: "2",
    b: "3"
  });
  const s4 = _.find(x => x === "2", ["1", "2"]);
  //$ExpectError
  const s5: ?{ [key: string]: string } = _.find(x => x === "2", { a: 1, b: 2 });
  const s6: number = _.findIndex(x => x === "2", ["1", "2"]);
  const s7: number = _.findIndex(x => x === "2", { a: "1", b: "2" });
  const forEachxs = _.forEach(x => console.log(x), ns);

  const forEachObj = _.forEachObjIndexed((value, key) => {}, { x: 1, y: 2 });
github tylerlong / subx / test / proxy.spec.js View on Github external
deleteProperty: function (target, property) {
        expect(R.keys(target).length).toBe(3) // deletion hasn't performed
        // console.log('Deleted %s', property)
        delete target[property]
        return true
      },
      set: function (target, property, value, receiver) {
github flow-typed / flow-typed / definitions / npm / ramda_v0.x.x / flow_v0.104.x- / test_ramda_v0.x.x_list.js View on Github external
it('does not allow a mismatched element type to the $ReadOnlyArray', () => {
        const xs: $ReadOnlyArray = ['bar']
        // It is not understood why this fails to be flagged as an error when
        // the 0.26.x libdef passes with the same declaration. The curried form
        // works reliably though.
        //
        // $ShouldExpectErrorButInsteadWorksPleaseFix
        const result: boolean = contains(1, xs)
      })
github flow-typed / flow-typed / definitions / npm / ramda_v0.x.x / flow_v0.82.x- / test_ramda_v0.x.x_list.js View on Github external
// Ramda works with $ReadOnlyArray as it is immutable.
  const readOnlyArray: $ReadOnlyArray = [1, 2, 3, 4];
  // $ReadOnlyArray with curried permutations:
  const redxsReadOnly3: number = reduce(subtract, 0, readOnlyArray);
  const redxsReadOnly2_1: number = reduce(subtract, 0)(readOnlyArray);
  const redxsReadOnly1_2: number = reduce(subtract)(0, readOnlyArray);
  const redxsReadOnly1_1_1: number = reduce(subtract)(0)(readOnlyArray);

  // $ExpectError reduce will not work with an object.
  reduce(subtract, 0, { foo: 1, bar: 2 });

  // reduceRight
  const redrxs1: number = _.reduceRight(_.add, 10, ns);
  const redrxs2: string = _.reduceRight(_.concat, "", ss);
  const redrxs3: Array = _.reduceRight(_.concat, [])(
    _.map(x => [x], ss)
  );
  const redrxs3a: string = _.reduceRight(
    //$ExpectError
    (acc: string, value: number): string => acc,
    "",
    ns
  );
  const redrxs3b: string = _.reduceRight(
    (value: number, acc: string): string => acc,
    "",
    ns
  );

  // $ExpectError reduceRight does not support reduced.
  const redrxs4: number = _.reduceRight(
    // $ExpectError reduceRight does not support reduced.
github flow-typed / flow-typed / definitions / npm / ramda_v0.x.x / flow_v0.34.x-v0.38.x / test_ramda_v0.x.x_list.js View on Github external
const someObj: { a: string, b: number } = { a: 'a', b: 2 }
  const someMap: { [string]: { a: string, b: number } } = { so: someObj }
  const mapObj: { [string]: string } = _.map((x: { a: string, b: number }): string => x.a)(someMap)

  const functor = {
    x: 1,
    map(f) {
      return f(this.x)
    },
  }

  // Doesn't typecheck (yet) but at least doesn't break
  const mapFxs = _.map(_.toString, functor)

  const double = x => x * 2
  const dxs: Array = _.map(double, [ 1, 2, 3 ])
  const dos: $Shape = _.map(double, obj)

  const appender = (a, b) => [ a + b, a + b ]
  const mapacc:[number, Array] = _.mapAccum(appender, 0, ns)
  const mapacc1:[number, Array] = _.mapAccumRight(appender, 0, ns)

  const nxs: boolean = _.none(x => x > 1, ns)

  const nthxs: ?string = _.nth(2, [ 'curry' ])
  const nthxs1: ?string = _.nth(2)([ 'curry' ])
  //$ExpectError
  const nthxs2: string = _.nth(2, [ 1, 2, 3 ])


  const xxs: Array = _.append(1, [ 1, 2, 3 ])
  const xxxs: Array = _.intersperse(1, [ 1, 2, 3 ])
github teambit / bit / src / utils / resolveLatestVersion.ts View on Github external
export default function getLatestVersionNumber(bitIds: BitIds, bitId: BitId): BitId {
  if (!bitId.getVersion().latest) return bitId;

  // If the bitId provided doesn't contain version we want to ignore scope during search always
  // otherwise we will have problems finding the version from the bitmap after we export the component
  // because we tag with a name without scope but the bitmap contain it with the scope name since it was exported
  // without this, we will always just return the first component in the bitmap which is really bad
  const ignoreScope = !bitId.hasScope();

  const similarIds = ignoreScope ? bitIds.filterWithoutScopeAndVersion(bitId) : bitIds.filterWithoutVersion(bitId);
  const allVersionsForId = similarIds.filter(id => id.hasVersion() && !id.isVersionSnap()).map(id => id.version);

  // A case when the provided bitId doesn't exists in the array
  if (R.isEmpty(allVersionsForId)) {
    if (similarIds.length === 1) return similarIds[0];
    if (similarIds.length > 1)
      throw new Error(`found multiple snaps for ${bitId.toString()}, unable to figure which one is the latest`);
    return bitId;
  }

  const maxVersion = semver.maxSatisfying(allVersionsForId, '*');
  if (!maxVersion) {
    throw new Error(
      `semver was not able to find the highest version among the following: ${allVersionsForId.join(', ')}`
    );
  }
  const bitIdWithMaxVersion = bitId.changeVersion(maxVersion);
  const result = ignoreScope ? bitIds.searchWithoutScope(bitIdWithMaxVersion) : bitIds.search(bitIdWithMaxVersion);
  if (!result) {
    throw new Error(`getLatestVersionNumber failed to find the id ${bitIdWithMaxVersion.toString()} within bitIds`);
github flow-typed / flow-typed / definitions / npm / ramda_v0.x.x / flow_v0.104.x- / test_ramda_v0.x.x_list.js View on Github external
const pl1: Array = _.pluck(0)([[1, 2], [3, 4]]);

  const rxs: Array = _.range(1, 10);

  const remxs: Array = _.remove(0, 2, ss);
  const remxs1: Array = _.remove(0, 2)(ss);
  const remxs2: Array = _.remove(0)(2)(ss);
  const remxs3: Array = _.remove(0)(2, ss);

  const ys4: Array = _.repeat("1", 10);
  const ys5: Array = _.repeat(1, 10);

  // reduce
  const redxs: number = reduce(_.add, 10, ns);
  const redxs1: string = reduce(_.concat, "", ss);
  const redxs2: Array = reduce(_.concat, [])(_.map(x => [x], ss));
  // Example used in docs: http://ramdajs.com/docs/#reduce
  const redxs4: number = reduce(subtract, 0, [1, 2, 3, 4]);
  // Using accumulator type that differs from the element type (A and B).
  const redxs5: number = reduce((acc, s) => acc + parseInt(s), 0, [
    "1",
    "2",
    "3"
  ]);

  const redux6a: number = reduce((acc, s) => _.reduced(acc), 0, ns)
  const redux6b: number = reduce((acc: number, s: number) => _.reduced(acc), 0, ns)
  const redxs7: number = reduce(
    (acc, s) => acc < 4 ? acc + parseInt(s) : _.reduced(acc),
    0,
    ["1", "2", "3"]
  );
github dogescript / dogescript / src / dogescript.js View on Github external
function printTokens(lines) {
  R.map(line => {

    // FIXME: This will break when we move to lazy style parsing
    let lineNo = lines.indexOf(line) + 1

    console.log(" {
      process.stdout.write(`<${token.name}>`)
    }, line)
    console.log("\n/>\n")

  }, lines)
}
github infinitered / reactotron / src / Commands / LogCommand.js View on Github external
fs.readFile(fileName, "utf-8", (err, data) => {
      // die quietly for we have failed
      if (err) {
        return
      }
      if (data && is(String, data)) {
        try {
          let lines
          let lineCounter = 0
          const lineBreak = /\n/g
          const contents = split(lineBreak, data)

          // create a new structure of lines
          const sourceLines = map(line => {
            lineCounter = lineCounter + 1
            // i am sorry my tab-based brethern.
            const source = replace(/\t/, "  ", line)
            return {
              isSelected: lineCounter === lineNumber,
              lineNumber: lineCounter,
              source,
            }
          }, contents)

          // should just load it all?
          const showWholeFile = contents.length < SOURCE_LINES_UP + SOURCE_LINES_DOWN

          if (showWholeFile) {
            lines = sourceLines
          } else {
github wavesplatform / data-service / src / services / transactions / data / pg / transformResult.js View on Github external
[either(isNil, isEmpty), always([])],
  [
    T,
    compose(
      // sort by position in tx, then remove it
      map(
        evolve({
          data: compose(
            map(omit(['positionInTx'])),
            sortBy(prop('positionInTx'))
          ),
        })
      ),
      map(reduce(appendRowToTx, { data: [] })),
      values,
      groupBy(prop('id'))
    ),
  ],
]);

module.exports = dataEntriesToTxs;