Files
klz-cables.com/.pnpm-store/v10/files/9d/be3dddc070a62eb4fc02591d2ec0971867cb1c9bcd744eae8b2b775be9360182ca44cc826e622f26635299d679979c0bc19a7ec1dcb456762220d69019fa46
Marc Mintel 5397309103
Some checks failed
Build & Deploy / 🔍 Prepare (push) Successful in 20s
Build & Deploy / 🧪 QA (push) Failing after 34s
Build & Deploy / 🏗️ Build (push) Has started running
Build & Deploy / 🚀 Deploy (push) Has been cancelled
Build & Deploy / 🧪 Smoke Test (push) Has been cancelled
Build & Deploy / ⚡ Lighthouse (push) Has been cancelled
Build & Deploy / 🔔 Notify (push) Has been cancelled
fix(products): fix breadcrumbs and product filtering (backport from main)
2026-02-24 16:04:21 +01:00

45 lines
1.2 KiB
Plaintext

import { devAssert } from '../jsutils/devAssert.mjs';
import { GraphQLError } from '../error/GraphQLError.mjs';
import { isNameContinue, isNameStart } from '../language/characterClasses.mjs';
/**
* Upholds the spec rules about naming.
*/
export function assertName(name) {
name != null || devAssert(false, 'Must provide name.');
typeof name === 'string' || devAssert(false, 'Expected name to be a string.');
if (name.length === 0) {
throw new GraphQLError('Expected name to be a non-empty string.');
}
for (let i = 1; i < name.length; ++i) {
if (!isNameContinue(name.charCodeAt(i))) {
throw new GraphQLError(
`Names must only contain [_a-zA-Z0-9] but "${name}" does not.`,
);
}
}
if (!isNameStart(name.charCodeAt(0))) {
throw new GraphQLError(
`Names must start with [_a-zA-Z] but "${name}" does not.`,
);
}
return name;
}
/**
* Upholds the spec rules about naming enum values.
*
* @internal
*/
export function assertEnumValueName(name) {
if (name === 'true' || name === 'false' || name === 'null') {
throw new GraphQLError(`Enum values cannot be named: ${name}`);
}
return assertName(name);
}