Skip to content

Commit

Permalink
Return null when input is null
Browse files Browse the repository at this point in the history
  • Loading branch information
izumin5210 committed Sep 13, 2021
1 parent de7703a commit 97ade9f
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 2 deletions.
6 changes: 6 additions & 0 deletions src/maskWithFragment.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,12 @@ import * as multipleFragmentsFixtures from "./__fixtures__/graphql/__generated__
import * as rootListFixtures from "./__fixtures__/graphql/__generated__/rootList.generated";
import * as unionFixtures from "./__fixtures__/graphql/__generated__/union.generated";

it("returns null when 2nd arg is null", () => {
const output = maskWithFragment(simpleFixtures.UserHeaderFragmentDoc, null);
expectType<null>(output);
expect(output).toBeNull();
});

it("masks query results with simple fragment", () => {
const input: simpleFixtures.GetUserHeaderQuery = {
__typename: "Query",
Expand Down
8 changes: 6 additions & 2 deletions src/maskWithFragment.ts
Original file line number Diff line number Diff line change
Expand Up @@ -82,13 +82,17 @@ export function maskWithFragment<
TFilteredData extends Record<string, unknown>,
TData extends TFilteredData = TFilteredData
>(doc: DocumentNode | TypedDocumentNode<TFilteredData, any>, input: ReadonlyArray<TData>): ReadonlyArray<TFilteredData>;
export function maskWithFragment(doc: DocumentNode | TypedDocumentNode<any, any>, input: null): null;
export function maskWithFragment(doc: DocumentNode | TypedDocumentNode<any, any>, input: undefined): undefined;
export function maskWithFragment<
TFilteredData extends Record<string, unknown>,
TData extends TFilteredData = TFilteredData
>(
doc: DocumentNode | TypedDocumentNode<TFilteredData, any>,
input: TData | ReadonlyArray<TData>
): TFilteredData | ReadonlyArray<TFilteredData> {
input: TData | ReadonlyArray<TData> | null | undefined
): TFilteredData | ReadonlyArray<TFilteredData> | null | undefined {
if (input == null) return input;

if (doc.definitions[0]?.kind !== "FragmentDefinition") {
throw new Error("input document should be fragment definition");
}
Expand Down

0 comments on commit 97ade9f

Please sign in to comment.