UNPKG

creevey

Version:

Cross-browser screenshot testing tool for Storybook with fancy UI Runner

50 lines 1.58 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.test = exports.story = exports.kind = void 0; exports.default = parse; const url_1 = require("url"); const csf_1 = require("@storybook/csf"); const utils_js_1 = require("../utils.js"); async function parse(files) { result = {}; await (0, utils_js_1.loadThroughTSX)(async (load) => Promise.all(files.map(async (file) => { const fileUrl = (0, url_1.pathToFileURL)(file).toString(); await load(fileUrl); }))); return result; } let result = {}; let kindTitle = ''; let storyTitle = ''; let storyParams = null; const setStoryParameters = (params) => { storyParams = params; }; const getStoryId = (kindTitle, storyTitle) => { return (0, csf_1.toId)(kindTitle, (0, csf_1.storyNameFromExport)(storyTitle)); }; const kind = (title, kindFn) => { kindTitle = title; kindFn(); kindTitle = ''; }; exports.kind = kind; const story = (title, storyFn) => { storyTitle = title; storyParams = null; storyFn({ setStoryParameters }); const storyId = getStoryId(kindTitle, storyTitle); result[storyId] = Object.assign({}, storyParams, { tests: result[storyId]?.tests }); storyTitle = ''; storyParams = null; }; exports.story = story; const test = (title, testFn) => { const storyId = getStoryId(kindTitle, storyTitle); if (!result[storyId]) { result[storyId] = {}; } result[storyId].tests = Object.assign({}, result[storyId].tests, { [title]: testFn }); }; exports.test = test; //# sourceMappingURL=parser.js.map