{
  "version": 3,
  "sources": ["../../src/vendor/RelayMockPayloadGenerator.ts"],
  "sourcesContent": ["/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * https://github.com/facebook/relay/blob/b8d2694dbef01f003c4452fa0364f9a7f20245ee/LICENSE\n */\n\nimport type { MockResolvers } from \"relay-test-utils\";\nimport type { MockResolverContext } from \"relay-test-utils/lib/RelayMockPayloadGenerator\";\n\nexport type { MockResolvers, DefaultMockResolvers } from \"relay-test-utils\";\nexport type { MockResolverContext } from \"relay-test-utils/lib/RelayMockPayloadGenerator\";\n\nexport interface MockData {\n  __typename?: string;\n  [fieldName: string]: unknown;\n}\n\nexport type ValueResolver = (\n  typeName: string | null,\n  context: MockResolverContext,\n  plural: boolean,\n  defaultValue?: unknown,\n) => unknown;\n\nexport const DEFAULT_MOCK_TYPENAME = \"__MockObject\";\n\nfunction createIdGenerator() {\n  let id = 0;\n  return () => {\n    return ++id;\n  };\n}\n\nexport const DEFAULT_MOCK_RESOLVERS: MockResolvers = {\n  ID(context, generateId: () => number) {\n    return `<${\n      context.parentType != null && context.parentType !== DEFAULT_MOCK_TYPENAME\n        ? context.parentType + \"-\"\n        : \"\"\n    }mock-id-${generateId()}>`;\n  },\n  Boolean() {\n    return false;\n  },\n  Int() {\n    return 42;\n  },\n  Float() {\n    return 4.2;\n  },\n};\n\nfunction valueResolver(\n  generateId: () => number,\n  mockResolvers: MockResolvers | null,\n  typeName: string | null,\n  context: MockResolverContext,\n  plural = false,\n  defaultValue?: unknown,\n): unknown {\n  const generateValue = (possibleDefaultValue: unknown) => {\n    let mockValue;\n    const mockResolver =\n      typeName != null && mockResolvers != null\n        ? mockResolvers[typeName]\n        : null;\n    if (mockResolver != null) {\n      mockValue = mockResolver(context, generateId);\n    }\n    if (mockValue === undefined) {\n      mockValue =\n        possibleDefaultValue ??\n        (typeName === \"ID\"\n          ? DEFAULT_MOCK_RESOLVERS.ID?.(context, generateId)\n          : `<mock-value-for-field-\"${\n              context.alias ?? context.name ?? \"undefined\"\n            }\">`);\n    }\n    return mockValue;\n  };\n\n  return plural === true\n    ? generateMockList(\n        Array.isArray(defaultValue) ? defaultValue : Array(1).fill(null),\n        generateValue,\n      )\n    : generateValue(defaultValue);\n}\n\nexport function createValueResolver(\n  mockResolvers: MockResolvers | null,\n  generateId: () => number = createIdGenerator(),\n): ValueResolver {\n  return valueResolver.bind(null, generateId, mockResolvers);\n}\n\nfunction generateMockList<T>(\n  placeholderArray: ReadonlyArray<unknown>,\n  generateListItem: (defaultValue: unknown) => T,\n): ReadonlyArray<T> {\n  return placeholderArray.map((possibleDefaultValue) =>\n    generateListItem(possibleDefaultValue),\n  );\n}\n"],
  "mappings": ";AA2BO,IAAM,wBAAwB;AAErC,SAAS,oBAAoB;AAC3B,MAAI,KAAK;AACT,SAAO,MAAM;AACX,WAAO,EAAE;AAAA,EACX;AACF;AAEO,IAAM,yBAAwC;AAAA,EACnD,GAAG,SAAS,YAA0B;AACpC,WAAO,IACL,QAAQ,cAAc,QAAQ,QAAQ,eAAe,wBACjD,QAAQ,aAAa,MACrB,aACK,WAAW;AAAA,EACxB;AAAA,EACA,UAAU;AACR,WAAO;AAAA,EACT;AAAA,EACA,MAAM;AACJ,WAAO;AAAA,EACT;AAAA,EACA,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAEA,SAAS,cACP,YACA,eACA,UACA,SACA,SAAS,OACT,cACS;AACT,QAAM,gBAAgB,CAAC,yBAAkC;AA/D3D;AAgEI,QAAI;AACJ,UAAM,eACJ,YAAY,QAAQ,iBAAiB,OACjC,cAAc,QAAQ,IACtB;AACN,QAAI,gBAAgB,MAAM;AACxB,kBAAY,aAAa,SAAS,UAAU;AAAA,IAC9C;AACA,QAAI,cAAc,QAAW;AAC3B,kBACE,sDACC,aAAa,QACV,4BAAuB,OAAvB,gDAA4B,SAAS,cACrC,2BACE,mBAAQ,UAAR,YAAiB,QAAQ,SAAzB,YAAiC;AAAA,IAE3C;AACA,WAAO;AAAA,EACT;AAEA,SAAO,WAAW,OACd;AAAA,IACE,MAAM,QAAQ,YAAY,IAAI,eAAe,MAAM,CAAC,EAAE,KAAK,IAAI;AAAA,IAC/D;AAAA,EACF,IACA,cAAc,YAAY;AAChC;AAEO,SAAS,oBACd,eACA,aAA2B,kBAAkB,GAC9B;AACf,SAAO,cAAc,KAAK,MAAM,YAAY,aAAa;AAC3D;AAEA,SAAS,iBACP,kBACA,kBACkB;AAClB,SAAO,iBAAiB;AAAA,IAAI,CAAC,yBAC3B,iBAAiB,oBAAoB;AAAA,EACvC;AACF;",
  "names": []
}
