kayle
Version:
Extremely fast and accurate accessibility engine built for any headless tool like playwright or puppeteer.
73 lines • 2.95 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.extendRunner = exports.injectRunner = exports.getRunner = exports.runnersJavascript = void 0;
const fs_1 = require("fs");
const axe_1 = require("./runners/axe");
const htmlcs_1 = require("./runners/htmlcs");
const loadRunnerFile = (run, langauge) => {
if (run === "htmlcs") {
return htmlcs_1.htmlcsRunner[langauge || "en"];
}
if (run === "axe") {
return axe_1.axeRunner[langauge || "en"];
}
return require(run);
};
const loadRunnerScript = (runner, langauge) => {
const mods = loadRunnerFile(runner, langauge);
let bundle = "";
for (const runnerScript of mods.scripts) {
bundle += (0, fs_1.readFileSync)(runnerScript, "utf-8");
}
return `${bundle};window.__a11y.runners['${runner}'] = ${mods.run.toString()};`;
};
const runnersJavascript = {
kayle: (0, fs_1.readFileSync)(`${__dirname}/runner.js`, "utf-8"),
htmlcs: loadRunnerScript("htmlcs", ""),
htmlcs_ar: loadRunnerScript("htmlcs", "ar"),
htmlcs_es: loadRunnerScript("htmlcs", "es"),
htmlcs_ja: loadRunnerScript("htmlcs", "ja"),
htmlcs_fr: loadRunnerScript("htmlcs", "fr"),
htmlcs_it: loadRunnerScript("htmlcs", "it"),
htmlcs_nl: loadRunnerScript("htmlcs", "nl"),
htmlcs_pl: loadRunnerScript("htmlcs", "pl"),
htmlcs_ko: loadRunnerScript("htmlcs", "ko"),
"htmlcs_zh-CN": loadRunnerScript("htmlcs", "zh-CN"),
"htmlcs_zh-TW": loadRunnerScript("htmlcs", "zh-TW"),
axe: loadRunnerScript("axe", "en"),
axe_ar: loadRunnerScript("axe", "ar"),
axe_es: loadRunnerScript("axe", "es"),
axe_ja: loadRunnerScript("axe", "ja"),
axe_fr: loadRunnerScript("axe", "fr"),
axe_da: loadRunnerScript("axe", "da"),
axe_de: loadRunnerScript("axe", "de"),
axe_he: loadRunnerScript("axe", "he"),
axe_nl: loadRunnerScript("axe", "nl"),
axe_pl: loadRunnerScript("axe", "pl"),
axe_ko: loadRunnerScript("axe", "ko"),
"axe_zh-CN": loadRunnerScript("axe", "zh-CN"),
"axe_no-NB": loadRunnerScript("axe", "no-NB"),
"axe_pt-BR": loadRunnerScript("axe", "pt-BR"),
};
exports.runnersJavascript = runnersJavascript;
const injectRunner = (runner, path, lang) => {
runnersJavascript[runner] = loadRunnerScript(path, lang ?? "");
};
exports.injectRunner = injectRunner;
const getRunner = (language, runner) => {
if (language) {
const script = `${runner}_${language}`;
if (typeof runnersJavascript[script] !== "undefined") {
return runnersJavascript[script];
}
}
return runnersJavascript[runner];
};
exports.getRunner = getRunner;
const extendRunner = (runner, script, lang) => {
const runnerType = `${runner}${lang ? `_${lang}` : ""}`;
const runnerCode = runnersJavascript[runnerType];
runnersJavascript[runnerType] = `${runnerCode}${script};`;
};
exports.extendRunner = extendRunner;
//# sourceMappingURL=runner-js.js.map