Files
NapCatQQ/.pnpm-store/v3/files/88/b67e0aef40e82fc9f8878e16babb76fa1e3406bb5b1a199be192580e7086bdbb43235b942dd13b208d1b32b9324be08e17827ca867f301f66ddf7bf773fa13
T
TanTan e311ca3275
Build NapCat Artifacts / Type Check & Test (push) Waiting to run
docs: 仓库链接指向本镜像仓库
2026-11-13 09:25:58 +08:00

29 lines
1.0 KiB
Plaintext

import { Registry } from 'parchment';
const MAX_REGISTER_ITERATIONS = 100;
const CORE_FORMATS = ['block', 'break', 'cursor', 'inline', 'scroll', 'text'];
const createRegistryWithFormats = (formats, sourceRegistry, debug) => {
const registry = new Registry();
CORE_FORMATS.forEach(name => {
const coreBlot = sourceRegistry.query(name);
if (coreBlot) registry.register(coreBlot);
});
formats.forEach(name => {
let format = sourceRegistry.query(name);
if (!format) {
debug.error(`Cannot register "${name}" specified in "formats" config. Are you sure it was registered?`);
}
let iterations = 0;
while (format) {
registry.register(format);
format = 'blotName' in format ? format.requiredContainer ?? null : null;
iterations += 1;
if (iterations > MAX_REGISTER_ITERATIONS) {
debug.error(`Cycle detected in registering blot requiredContainer: "${name}"`);
break;
}
}
});
return registry;
};
export default createRegistryWithFormats;
//# sourceMappingURL=createRegistryWithFormats.js.map