1.1.9 • Published 4 years ago

merge-resolver v1.1.9

Weekly downloads
1
License
MIT
Repository
-
Last release
4 years ago

merge-resolver

CI npm package Update

merge nested objects with graphql-like resolvers

Install

{yarn, npm} add merge-resolver

Usage

    import { mergeResolver } from "merge-resolver";

    const thing1 = {
      __typename: "Query",
      blah: {
        __typename: "Blah",
        bazzez: [
          { __typename: "Baz", a: "b" },
          { __typename: "Baz", a: "c", d: "e" }
        ]
      }
    };
    const thing2 = {
      __typename: "Query",
      blah: {
        __typename: "Blah",
        bazzez: [{ __typename: "Baz", a: "c", d: "f" }]
      }
    };

    const merge = mergeResolver({
      Blah: {
        bazzez: (values, join) => {
          const valuesByKey = {};
          values.flat().forEach(val => {
            valuesByKey[val.a] = valuesByKey[val.a]
              ? join(val, valuesByKey[val.a])
              : val;
          });
          return Object.values(valuesByKey);
        }
      },
      Baz: {
        d: values => values.join("")
      },
      typeFromObj: obj => obj && obj.__typename
    });

    console.log(merge([thing1, thing2])));

Should print:

    {
      "__typename": "Query",
      "blah": {
        "__typename": "Blah",
        "bazzez": [
          { "__typename": "Baz", "a": "b" },
          { "__typename": "Baz", "a": "c", "d": "fe" }
        ]
      }
    }

License

MIT License

© Bryan Goldstein and Seth Jensen

1.1.9

4 years ago

1.1.8

4 years ago

1.1.7

4 years ago

1.1.5

4 years ago

1.1.4

4 years ago

1.1.3

4 years ago

1.1.1

4 years ago

1.1.2

4 years ago

1.1.0

4 years ago

1.0.2

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago

0.1.1

5 years ago

0.1.0

5 years ago