{"version":3,"file":"Scalar.cjs","sources":["../../../../src/cache/core/Scalar.ts"],"sourcesContent":["import type { GraphQLScalarType } from \"graphql\";\n\nimport type { NoInfer } from \"@apollo/client/utilities/internal\";\n\nexport declare namespace Scalar {\n  export interface Options<TSerialized, TParsed> {\n    // We use method syntax to ensure the functions are bivariant. This lets\n    // users declare scalars using\n    // `extends Record<string, { serialized: unknown; parsed: unknown }>` while\n    // allowing specific scalar overrides.\n    parse(serializedValue: TSerialized): NoInfer<TParsed>;\n    serialize(parsedValue: TParsed): NoInfer<TSerialized>;\n    is?(value: TSerialized | TParsed): boolean;\n  }\n}\n\nexport class Scalar<TSerialized, TParsed> {\n  private options: Scalar.Options<TSerialized, TParsed>;\n\n  static fromGraphQLScalarType<TSerialized, TParsed>(\n    scalarType: GraphQLScalarType<TParsed, TSerialized>,\n    options?: Pick<Scalar.Options<NoInfer<TSerialized>, NoInfer<TParsed>>, \"is\">\n  ): Scalar<TSerialized, TParsed> {\n    return new Scalar<TSerialized, TParsed>({\n      ...options,\n      parse: scalarType.parseValue,\n      serialize: scalarType.serialize,\n    });\n  }\n\n  constructor(options: Scalar.Options<TSerialized, TParsed>) {\n    this.options = options;\n  }\n\n  parse(value: TSerialized): TParsed {\n    return this.options.parse(value);\n  }\n\n  serialize(value: TParsed): TSerialized {\n    return this.options.serialize(value);\n  }\n\n  coerceToParsed(value: TSerialized | TParsed): TParsed {\n    return this.is(value) ? value : this.parse(value);\n  }\n\n  coerceToSerialized(value: TSerialized | TParsed): TSerialized {\n    return this.is(value) ? this.serialize(value) : value;\n  }\n\n  is(value: TSerialized | TParsed): value is TParsed {\n    if (this.options.is) {\n      return this.options.is(value);\n    }\n\n    return typeof value === \"object\" && value !== null;\n  }\n}\n"],"names":[],"mappings":"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"}