creevey
Version:
creevey is a tool for automated visual testing, that tightly integrated with storybook
61 lines (43 loc) • 7.26 kB
JavaScript
;
function registerRequireContext() {
function requireContext(rootPath, deep, filter) {
// eslint-disable-next-line @typescript-eslint/no-var-requires
const fs = require('fs'); // eslint-disable-next-line @typescript-eslint/no-var-requires
const path = require('path');
const ids = [];
let contextPath; // Relative path
if (rootPath.startsWith('.')) contextPath = path.resolve(__dirname, rootPath); // Module path
else if (!path.isAbsolute(rootPath)) contextPath = require.resolve(rootPath); // Absolute path
else contextPath = rootPath;
const traverse = dirPath => {
fs.readdirSync(dirPath, {
withFileTypes: true
}).forEach(dirent => {
var _filter$test;
const filename = dirent.name;
const filePath = path.join(dirPath, filename);
if (dirent.isDirectory() && deep) return traverse(filePath);
if (dirent.isFile() && ((_filter$test = filter === null || filter === void 0 ? void 0 : filter.test(filePath)) !== null && _filter$test !== void 0 ? _filter$test : true)) return ids.push(filePath);
});
};
traverse(contextPath); // eslint-disable-next-line @typescript-eslint/no-explicit-any
const context = id => require(id);
context.id = contextPath;
context.keys = () => ids;
context.resolve = id => id;
return context;
} // eslint-disable-next-line @typescript-eslint/ban-ts-ignore
// @ts-ignore
const {
wrap
} = module.constructor; // eslint-disable-next-line @typescript-eslint/ban-ts-ignore
// @ts-ignore
module.constructor.wrap = function (script) {
return wrap(`require.context = ${requireContext.toString()};
${script}`);
};
}
registerRequireContext();
require('./creevey');
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jbGkudHMiXSwibmFtZXMiOlsicmVnaXN0ZXJSZXF1aXJlQ29udGV4dCIsInJlcXVpcmVDb250ZXh0Iiwicm9vdFBhdGgiLCJkZWVwIiwiZmlsdGVyIiwiZnMiLCJyZXF1aXJlIiwicGF0aCIsImlkcyIsImNvbnRleHRQYXRoIiwic3RhcnRzV2l0aCIsInJlc29sdmUiLCJfX2Rpcm5hbWUiLCJpc0Fic29sdXRlIiwidHJhdmVyc2UiLCJkaXJQYXRoIiwicmVhZGRpclN5bmMiLCJ3aXRoRmlsZVR5cGVzIiwiZm9yRWFjaCIsImRpcmVudCIsImZpbGVuYW1lIiwibmFtZSIsImZpbGVQYXRoIiwiam9pbiIsImlzRGlyZWN0b3J5IiwiaXNGaWxlIiwidGVzdCIsInB1c2giLCJjb250ZXh0IiwiaWQiLCJrZXlzIiwid3JhcCIsIm1vZHVsZSIsImNvbnN0cnVjdG9yIiwic2NyaXB0IiwidG9TdHJpbmciXSwibWFwcGluZ3MiOiJBQUFBOzs7QUFRQSxTQUFTQSxzQkFBVCxHQUF3QztBQUN0QyxXQUFTQyxjQUFULENBQXdCQyxRQUF4QixFQUEwQ0MsSUFBMUMsRUFBMERDLE1BQTFELEVBQThHO0FBQzVHO0FBQ0EsVUFBTUMsRUFBYyxHQUFHQyxPQUFPLENBQUMsSUFBRCxDQUE5QixDQUY0RyxDQUc1Rzs7O0FBQ0EsVUFBTUMsSUFBa0IsR0FBR0QsT0FBTyxDQUFDLE1BQUQsQ0FBbEM7O0FBRUEsVUFBTUUsR0FBYSxHQUFHLEVBQXRCO0FBQ0EsUUFBSUMsV0FBSixDQVA0RyxDQVE1Rzs7QUFDQSxRQUFJUCxRQUFRLENBQUNRLFVBQVQsQ0FBb0IsR0FBcEIsQ0FBSixFQUE4QkQsV0FBVyxHQUFHRixJQUFJLENBQUNJLE9BQUwsQ0FBYUMsU0FBYixFQUF3QlYsUUFBeEIsQ0FBZCxDQUE5QixDQUNBO0FBREEsU0FFSyxJQUFJLENBQUNLLElBQUksQ0FBQ00sVUFBTCxDQUFnQlgsUUFBaEIsQ0FBTCxFQUFnQ08sV0FBVyxHQUFHSCxPQUFPLENBQUNLLE9BQVIsQ0FBZ0JULFFBQWhCLENBQWQsQ0FBaEMsQ0FDTDtBQURLLFdBRUFPLFdBQVcsR0FBR1AsUUFBZDs7QUFDTCxVQUFNWSxRQUFRLEdBQUlDLE9BQUQsSUFBMkI7QUFDMUNWLE1BQUFBLEVBQUUsQ0FBQ1csV0FBSCxDQUFlRCxPQUFmLEVBQXdCO0FBQUVFLFFBQUFBLGFBQWEsRUFBRTtBQUFqQixPQUF4QixFQUFpREMsT0FBakQsQ0FBMERDLE1BQUQsSUFBb0I7QUFBQTs7QUFDM0UsY0FBTUMsUUFBUSxHQUFHRCxNQUFNLENBQUNFLElBQXhCO0FBQ0EsY0FBTUMsUUFBUSxHQUFHZixJQUFJLENBQUNnQixJQUFMLENBQVVSLE9BQVYsRUFBbUJLLFFBQW5CLENBQWpCO0FBRUEsWUFBSUQsTUFBTSxDQUFDSyxXQUFQLE1BQXdCckIsSUFBNUIsRUFBa0MsT0FBT1csUUFBUSxDQUFDUSxRQUFELENBQWY7QUFDbEMsWUFBSUgsTUFBTSxDQUFDTSxNQUFQLHVCQUFvQnJCLE1BQXBCLGFBQW9CQSxNQUFwQix1QkFBb0JBLE1BQU0sQ0FBRXNCLElBQVIsQ0FBYUosUUFBYixDQUFwQix1REFBOEMsSUFBOUMsQ0FBSixFQUF5RCxPQUFPZCxHQUFHLENBQUNtQixJQUFKLENBQVNMLFFBQVQsQ0FBUDtBQUMxRCxPQU5EO0FBT0QsS0FSRDs7QUFVQVIsSUFBQUEsUUFBUSxDQUFDTCxXQUFELENBQVIsQ0F4QjRHLENBMEI1Rzs7QUFDQSxVQUFNbUIsT0FBTyxHQUFJQyxFQUFELElBQXFCdkIsT0FBTyxDQUFDdUIsRUFBRCxDQUE1Qzs7QUFDQUQsSUFBQUEsT0FBTyxDQUFDQyxFQUFSLEdBQWFwQixXQUFiOztBQUNBbUIsSUFBQUEsT0FBTyxDQUFDRSxJQUFSLEdBQWUsTUFBTXRCLEdBQXJCOztBQUNBb0IsSUFBQUEsT0FBTyxDQUFDakIsT0FBUixHQUFtQmtCLEVBQUQsSUFBZ0JBLEVBQWxDOztBQUVBLFdBQU9ELE9BQVA7QUFDRCxHQWxDcUMsQ0FvQ3RDO0FBQ0E7OztBQUNBLFFBQU07QUFBRUcsSUFBQUE7QUFBRixNQUFXQyxNQUFNLENBQUNDLFdBQXhCLENBdENzQyxDQXdDdEM7QUFDQTs7QUFDQUQsRUFBQUEsTUFBTSxDQUFDQyxXQUFQLENBQW1CRixJQUFuQixHQUEwQixVQUFVRyxNQUFWLEVBQTBCO0FBQ2xELFdBQU9ILElBQUksQ0FDUixxQkFBb0I5QixjQUFjLENBQUNrQyxRQUFmLEVBQTBCO1FBQzdDRCxNQUFPLEVBRkEsQ0FBWDtBQUlELEdBTEQ7QUFNRDs7QUFFRGxDLHNCQUFzQjs7QUFFdEJNLE9BQU8sQ0FBQyxXQUFELENBQVAiLCJzb3VyY2VzQ29udGVudCI6WyIjIS91c3IvYmluL2VudiBub2RlXG5cbmltcG9ydCBmcywgeyBEaXJlbnQgfSBmcm9tICdmcyc7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcblxudHlwZSBQbGF0Zm9ybUZTID0gdHlwZW9mIGZzO1xudHlwZSBQbGF0Zm9ybVBhdGggPSB0eXBlb2YgcGF0aDtcblxuZnVuY3Rpb24gcmVnaXN0ZXJSZXF1aXJlQ29udGV4dCgpOiB2b2lkIHtcbiAgZnVuY3Rpb24gcmVxdWlyZUNvbnRleHQocm9vdFBhdGg6IHN0cmluZywgZGVlcD86IGJvb2xlYW4sIGZpbHRlcj86IFJlZ0V4cCk6IF9fV2VicGFja01vZHVsZUFwaS5SZXF1aXJlQ29udGV4dCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby12YXItcmVxdWlyZXNcbiAgICBjb25zdCBmczogUGxhdGZvcm1GUyA9IHJlcXVpcmUoJ2ZzJyk7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby12YXItcmVxdWlyZXNcbiAgICBjb25zdCBwYXRoOiBQbGF0Zm9ybVBhdGggPSByZXF1aXJlKCdwYXRoJyk7XG5cbiAgICBjb25zdCBpZHM6IHN0cmluZ1tdID0gW107XG4gICAgbGV0IGNvbnRleHRQYXRoOiBzdHJpbmc7XG4gICAgLy8gUmVsYXRpdmUgcGF0aFxuICAgIGlmIChyb290UGF0aC5zdGFydHNXaXRoKCcuJykpIGNvbnRleHRQYXRoID0gcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgcm9vdFBhdGgpO1xuICAgIC8vIE1vZHVsZSBwYXRoXG4gICAgZWxzZSBpZiAoIXBhdGguaXNBYnNvbHV0ZShyb290UGF0aCkpIGNvbnRleHRQYXRoID0gcmVxdWlyZS5yZXNvbHZlKHJvb3RQYXRoKTtcbiAgICAvLyBBYnNvbHV0ZSBwYXRoXG4gICAgZWxzZSBjb250ZXh0UGF0aCA9IHJvb3RQYXRoO1xuICAgIGNvbnN0IHRyYXZlcnNlID0gKGRpclBhdGg6IHN0cmluZyk6IHZvaWQgPT4ge1xuICAgICAgZnMucmVhZGRpclN5bmMoZGlyUGF0aCwgeyB3aXRoRmlsZVR5cGVzOiB0cnVlIH0pLmZvckVhY2goKGRpcmVudDogRGlyZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IGZpbGVuYW1lID0gZGlyZW50Lm5hbWU7XG4gICAgICAgIGNvbnN0IGZpbGVQYXRoID0gcGF0aC5qb2luKGRpclBhdGgsIGZpbGVuYW1lKTtcblxuICAgICAgICBpZiAoZGlyZW50LmlzRGlyZWN0b3J5KCkgJiYgZGVlcCkgcmV0dXJuIHRyYXZlcnNlKGZpbGVQYXRoKTtcbiAgICAgICAgaWYgKGRpcmVudC5pc0ZpbGUoKSAmJiAoZmlsdGVyPy50ZXN0KGZpbGVQYXRoKSA/PyB0cnVlKSkgcmV0dXJuIGlkcy5wdXNoKGZpbGVQYXRoKTtcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICB0cmF2ZXJzZShjb250ZXh0UGF0aCk7XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIGNvbnN0IGNvbnRleHQgPSAoaWQ6IHN0cmluZyk6IGFueSA9PiByZXF1aXJlKGlkKTtcbiAgICBjb250ZXh0LmlkID0gY29udGV4dFBhdGg7XG4gICAgY29udGV4dC5rZXlzID0gKCkgPT4gaWRzO1xuICAgIGNvbnRleHQucmVzb2x2ZSA9IChpZDogc3RyaW5nKSA9PiBpZDtcblxuICAgIHJldHVybiBjb250ZXh0O1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtaWdub3JlXG4gIC8vIEB0cy1pZ25vcmVcbiAgY29uc3QgeyB3cmFwIH0gPSBtb2R1bGUuY29uc3RydWN0b3I7XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtaWdub3JlXG4gIC8vIEB0cy1pZ25vcmVcbiAgbW9kdWxlLmNvbnN0cnVjdG9yLndyYXAgPSBmdW5jdGlvbiAoc2NyaXB0OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gd3JhcChcbiAgICAgIGByZXF1aXJlLmNvbnRleHQgPSAke3JlcXVpcmVDb250ZXh0LnRvU3RyaW5nKCl9O1xuICAgICAgJHtzY3JpcHR9YCxcbiAgICApO1xuICB9O1xufVxuXG5yZWdpc3RlclJlcXVpcmVDb250ZXh0KCk7XG5cbnJlcXVpcmUoJy4vY3JlZXZleScpO1xuIl19