{"version":3,"file":"assertName.js","sourceRoot":"","sources":["../../src/type/assertName.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,kCAAiC;AAExD,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,yCAAwC;AAc9E,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,YAAY,CAAC,yCAAyC,CAAC,CAAC;IACpE,CAAC;IAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;QACrC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACxC,MAAM,IAAI,YAAY,CACpB,6CAA6C,IAAI,aAAa,CAC/D,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,YAAY,CACpB,wCAAwC,IAAI,aAAa,CAC1D,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAcD,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QAC3D,MAAM,IAAI,YAAY,CAAC,gCAAgC,IAAI,EAAE,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC","sourcesContent":["/** @category Names */\n\nimport { GraphQLError } from '../error/GraphQLError.ts';\n\nimport { isNameContinue, isNameStart } from '../language/characterClasses.ts';\n\n/**\n * Upholds the spec rules about naming.\n * @param name - The GraphQL name to validate.\n * @returns The validated GraphQL name.\n * @example\n * ```ts\n * import { assertName } from 'graphql/type';\n *\n * assertName('User'); // => 'User'\n * assertName('123User'); // throws an error\n * ```\n */\nexport function assertName(name: string): string {\n  if (name.length === 0) {\n    throw new GraphQLError('Expected name to be a non-empty string.');\n  }\n\n  for (let i = 1; i < name.length; ++i) {\n    if (!isNameContinue(name.charCodeAt(i))) {\n      throw new GraphQLError(\n        `Names must only contain [_a-zA-Z0-9] but \"${name}\" does not.`,\n      );\n    }\n  }\n\n  if (!isNameStart(name.charCodeAt(0))) {\n    throw new GraphQLError(\n      `Names must start with [_a-zA-Z] but \"${name}\" does not.`,\n    );\n  }\n\n  return name;\n}\n\n/**\n * Upholds the spec rules about naming enum values.\n * @param name - The GraphQL name to validate.\n * @returns The validated GraphQL name.\n * @example\n * ```ts\n * import { assertEnumValueName } from 'graphql/type';\n *\n * assertEnumValueName('ACTIVE'); // => 'ACTIVE'\n * assertEnumValueName('true'); // throws an error\n * ```\n */\nexport function assertEnumValueName(name: string): string {\n  if (name === 'true' || name === 'false' || name === 'null') {\n    throw new GraphQLError(`Enum values cannot be named: ${name}`);\n  }\n  return assertName(name);\n}\n"]}