html-validate
Version:
Offline HTML5 validator and linter
49 lines (48 loc) • 1.04 kB
JavaScript
// src/test-utils.ts
import fs from "node:fs";
function isIterable(value) {
return Symbol.iterator in value;
}
function transformFile(fn, filename, chain) {
const data = fs.readFileSync(filename, "utf-8");
const source = {
filename,
line: 1,
column: 1,
offset: 0,
data
};
return transformSource(fn, source, chain);
}
function transformString(fn, data, chain) {
const source = {
filename: "inline",
line: 1,
column: 1,
offset: 0,
data
};
return transformSource(fn, source, chain);
}
async function transformSource(fn, source, chain) {
const defaultChain = (source2) => [source2];
const context = {
hasChain: (
/* istanbul ignore next */
() => true
),
chain: chain ?? defaultChain
};
const result = await fn.call(context, source);
if (isIterable(result)) {
return await Promise.all(Array.from(result));
} else {
return [result];
}
}
export {
transformFile,
transformSource,
transformString
};
//# sourceMappingURL=test-utils.js.map