storybook-chrome-screenshot
Version:
A Storybook addon, Save the screenshot image of your stories! via puppeteer.
63 lines • 2.59 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var lodash_1 = require("lodash");
var utils_1 = require("../utils");
var StoryStore = /** @class */ (function () {
function StoryStore(filterKind, filterStory) {
this.stories = [];
this.filterKind = filterKind;
this.filterStory = filterStory;
}
StoryStore.prototype.set = function (stories) {
var _this = this;
this.stories = [];
stories.forEach(function (story) {
var skipped = _this.isSkipStory(story);
var isMultipleViewport = Array.isArray(story.viewport);
var isEmptyKnobs = lodash_1.isEmpty(story.knobs);
var viewports = isMultipleViewport
? story.viewport
: [story.viewport];
var storyPush = function (viewport, knobs) {
_this.stories.push({
kind: story.kind,
story: story.story,
parameters: story.parameters,
viewport: viewport,
knobs: knobs,
skipped: skipped,
filename: utils_1.story2filename({
kind: story.kind,
story: story.story,
namespace: story.namespace,
filePattern: story.filePattern,
viewport: isMultipleViewport ? viewport : null,
knobs: !isEmptyKnobs ? knobs : null
})
});
};
viewports.forEach(function (viewport) {
if (isEmptyKnobs) {
storyPush(viewport, {});
return;
}
var knobList = utils_1.permutationKnobs(story.knobs);
for (var _i = 0, knobList_1 = knobList; _i < knobList_1.length; _i++) {
var knobs = knobList_1[_i];
storyPush(viewport, knobs);
}
});
});
};
StoryStore.prototype.get = function (skipped) {
if (skipped === void 0) { skipped = false; }
return this.stories.filter(function (story) { return story.skipped === skipped; });
};
StoryStore.prototype.isSkipStory = function (story) {
return !!((this.filterKind != null && !this.filterKind.test(story.kind)) ||
(this.filterStory != null && !this.filterStory.test(story.story)));
};
return StoryStore;
}());
exports.StoryStore = StoryStore;
//# sourceMappingURL=StoryStore.js.map