12.13.0 • Published 5 years ago

@unction/nestedapply v12.13.0

Weekly downloads
8
License
SEE LICENSE IN LI...
Repository
github
Last release
5 years ago

@unction/nestedApply

Tests Stability Dependencies

(MapperFunctionType<A, B> => Array | Set | Record<string | number | symbol, B> | Map<B, A> | string => Array | Set | Record<string | number | symbol, unknown> | Map<B, unknown> | string) => MapperFunctionType<A, B> => number => Array | Set | Record<string | number | symbol, B> | Map<B, A> | string => Array | Set | Record<string | number | symbol, B> | Map<B, A> | string

Takes a function (the application) that takes function(s) (later referred to as the inner) and value(s) (mapValues(), forEach(), selectValues()), a function (the inner) that will be applied to a value(s), and finally a number (depth) to apply that applicator around the inner.

In the below example we want to take two sets of records and index them by id:

const records = [
  [
    {
      id: "a1",
      type: "commercial",
    },
    {
      id: "a2",
      type: "commercial",
    }
  ],
  [
    {
      id: "b1",
      type: "residential",
    },
    {
      id: "b2",
      type: "residential",
    }
  ]
]

Normally we'd just do mapValues(indexBy(key("id"))), however we can make this easier and dynamic:

const nestedIndexById = nestedApply(mapValues)(indexBy(key("id")))(1)

nestedIndexById(records)

And the result:

[
  {
    a1: {
      id: "a1",
      type: "commercial",
    },
    a2: {
      id: "a2",
      type: "commercial",
    },
  },
  {
    b1: {
      id: "b1",
      type: "residential",
    },
    b2: {
      id: "b2",
      type: "residential",
    },
  },
]
12.13.0

5 years ago

12.12.0

5 years ago

12.11.0

5 years ago

12.10.1

6 years ago

12.10.0

6 years ago

12.9.1

6 years ago

12.9.0

6 years ago

12.8.0

6 years ago

12.7.1

6 years ago

12.7.0

6 years ago

12.6.0

6 years ago

12.5.1

6 years ago

12.5.0

6 years ago

12.4.0

6 years ago

12.3.0

6 years ago

12.2.1

6 years ago

12.2.0

6 years ago

12.1.1

6 years ago

12.1.0

6 years ago

12.0.1

7 years ago

12.0.0

7 years ago

11.0.0

7 years ago

10.0.0

7 years ago

9.0.0

7 years ago

8.0.0

7 years ago

7.0.0

7 years ago

6.0.0

7 years ago

5.0.0

7 years ago

4.57.0

8 years ago

4.56.0

8 years ago

4.55.0

8 years ago

4.54.0

8 years ago

4.53.0

8 years ago

4.52.0

8 years ago

4.51.0

8 years ago

4.50.0

8 years ago

4.49.0

8 years ago

4.48.0

8 years ago

4.47.0

8 years ago

4.46.0

8 years ago

4.45.0

8 years ago

4.44.0

8 years ago

4.43.0

8 years ago

4.42.0

8 years ago

4.41.0

8 years ago

4.40.0

8 years ago

4.39.0

8 years ago

4.38.0

8 years ago

4.37.0

8 years ago

4.36.0

8 years ago

4.35.0

8 years ago

4.34.0

8 years ago

4.33.0

8 years ago

4.32.0

8 years ago

4.31.0

8 years ago

4.30.0

8 years ago

4.29.0

8 years ago

4.28.0

8 years ago

4.27.0

8 years ago

4.26.0

8 years ago

4.25.0

8 years ago

4.24.0

8 years ago

4.23.0

8 years ago

4.22.0

8 years ago

4.21.0

8 years ago

4.20.0

8 years ago

4.19.0

8 years ago

4.18.0

8 years ago

4.17.0

8 years ago

4.16.0

8 years ago

4.15.0

8 years ago

4.14.0

8 years ago

4.13.0

8 years ago

4.12.0

8 years ago

4.11.0

8 years ago

4.10.0

8 years ago

4.9.0

8 years ago

4.8.0

8 years ago

4.7.0

8 years ago

4.6.0

8 years ago

4.5.0

8 years ago

4.3.0

8 years ago

4.1.0

8 years ago

4.0.0

8 years ago

3.0.1

8 years ago

3.0.0

8 years ago

2.1.4

8 years ago

2.1.3

8 years ago

2.1.2

8 years ago

2.1.1

8 years ago

2.1.0

8 years ago

2.0.2

8 years ago

2.0.1

8 years ago

2.0.0

8 years ago

1.0.2

8 years ago

1.0.1

8 years ago

1.0.0

8 years ago