1 | 'use strict';
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 |
|
7 | var _regenerator = require('babel-runtime/regenerator');
|
8 |
|
9 | var _regenerator2 = _interopRequireDefault(_regenerator);
|
10 |
|
11 | var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator');
|
12 |
|
13 | var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);
|
14 |
|
15 | var _promise = require('babel-runtime/core-js/promise');
|
16 |
|
17 | var _promise2 = _interopRequireDefault(_promise);
|
18 |
|
19 | var _jsdom = require('jsdom');
|
20 |
|
21 | var _jsdom2 = _interopRequireDefault(_jsdom);
|
22 |
|
23 | var _constants = require('./constants');
|
24 |
|
25 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
26 |
|
27 |
|
28 |
|
29 | var workerMock = '\n function MockWorker(path) {\n var api = this;\n\n function addEventListener() {}\n function removeEventListener() {}\n function postMessage() {}\n function terminate() {}\n\n api.postMessage = postMessage;\n api.addEventListener = addEventListener;\n api.removeEventListener = removeEventListener;\n api.terminate = terminate;\n\n return api;\n }\n window.Worker = MockWorker;\n';
|
30 |
|
31 |
|
32 |
|
33 | var localStorageMock = '\n var localStorageMock = (function() {\n var store = {};\n return {\n getItem: function(key) {\n return store[key];\n },\n setItem: function(key, value) {\n store[key] = value.toString();\n },\n clear: function() {\n store = {};\n }\n };\n })();\n Object.defineProperty(window, \'localStorage\', { value: localStorageMock });\n ';
|
34 |
|
35 |
|
36 | var matchMediaMock = '\n window.matchMedia = window.matchMedia || (() => {\n return {\n matches: false,\n addListener: () => {},\n removeListener: () => {},\n };\n });\n ';
|
37 |
|
38 | function getStoriesFromDom(previewJavascriptCode, options) {
|
39 | return new _promise2.default(function (resolve, reject) {
|
40 | var jsDomConfig = {
|
41 | html: '',
|
42 | url: 'https://example.com/iframe.js?selectedKind=none&selectedStory=none',
|
43 | src: [workerMock, localStorageMock, matchMediaMock, previewJavascriptCode],
|
44 | done: function done(err, window) {
|
45 | if (err) return reject(err.response.body);
|
46 | if (!window || !window[_constants.storiesKey]) {
|
47 | var message = 'Storybook object not found on window. ' + "Check your call to serializeStories in your Storybook's config.js.";
|
48 | reject(new Error(message));
|
49 | }
|
50 | resolve(window[_constants.storiesKey]);
|
51 | }
|
52 | };
|
53 | if (options.debug) {
|
54 | jsDomConfig.virtualConsole = _jsdom2.default.createVirtualConsole().sendTo(console);
|
55 | }
|
56 | _jsdom2.default.env(jsDomConfig);
|
57 | });
|
58 | }
|
59 |
|
60 | exports.default = function () {
|
61 | var _ref = (0, _asyncToGenerator3.default)( _regenerator2.default.mark(function _callee(storybookCode) {
|
62 | var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
63 | var stories;
|
64 | return _regenerator2.default.wrap(function _callee$(_context) {
|
65 | while (1) {
|
66 | switch (_context.prev = _context.next) {
|
67 | case 0:
|
68 | if (!(!storybookCode || storybookCode === '')) {
|
69 | _context.next = 2;
|
70 | break;
|
71 | }
|
72 |
|
73 | throw new Error('Storybook code was not received.');
|
74 |
|
75 | case 2:
|
76 | _context.next = 4;
|
77 | return getStoriesFromDom(storybookCode, options);
|
78 |
|
79 | case 4:
|
80 | stories = _context.sent;
|
81 | return _context.abrupt('return', stories);
|
82 |
|
83 | case 6:
|
84 | case 'end':
|
85 | return _context.stop();
|
86 | }
|
87 | }
|
88 | }, _callee, this);
|
89 | }));
|
90 |
|
91 | function getStories(_x2) {
|
92 | return _ref.apply(this, arguments);
|
93 | }
|
94 |
|
95 | return getStories;
|
96 | }(); |
\ | No newline at end of file |