UNPKG

polen

Version:

A framework for delightful GraphQL developer portals

38 lines 1.32 kB
import { createId, markNoPlugins, normalizeId } from './id.js'; export const defaults = { allowPluginProcessing: false, separator: `/`, }; export const create = (parameters) => { const separator = parameters.separator ?? defaults.separator; const idNormalized = normalizeId({ id: parameters.id, separator }); const idNamespaced = parameters.namespace ? `${parameters.namespace}${separator}${idNormalized}` : idNormalized; const id = createId(idNamespaced); const resolved = parameters.allowPluginProcessing ? id : markNoPlugins(id); return { id, resolved, separator, namespace: parameters.namespace ?? null, }; }; export const createFactory = (parameters) => { const { namespace, separator = defaults.separator } = parameters; const factory = (idSegments, options) => { const id = idSegments.flatMap(_ => _.split(separator)).join(separator); return create({ id, namespace, separator, ...options, }); }; factory.prefix = createId(parameters.namespace); factory.includes = (id) => { return id.startsWith(factory.prefix) || id.startsWith(markNoPlugins(factory.prefix)); }; return factory; }; //# sourceMappingURL=identifier.js.map