UNPKG

paranormal

Version:
132 lines (98 loc) 4.1 kB
'use strict'; exports.__esModule = true; var _regenerator = require('babel-runtime/regenerator'); var _regenerator2 = _interopRequireDefault(_regenerator); var _promise = require('babel-runtime/core-js/promise'); var _promise2 = _interopRequireDefault(_promise); var _stringify = require('babel-runtime/core-js/json/stringify'); var _stringify2 = _interopRequireDefault(_stringify); var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator'); var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2); var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); var _path = require('path'); var _path2 = _interopRequireDefault(_path); var _fs = require('./utils/fs'); var fs = _interopRequireWildcard(_fs); var _Example = require('./Example'); var _Example2 = _interopRequireDefault(_Example); var _stripIndent = require('strip-indent'); var _stripIndent2 = _interopRequireDefault(_stripIndent); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var App = function () { function App(opts) { (0, _classCallCheck3.default)(this, App); this.tempDir = opts.tempDir; this.indexPath = _path2.default.join(this.tempDir, 'index.html'); this.entriesPath = _path2.default.join(this.tempDir, 'entries.html'); } App.prototype.build = function () { var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(examples) { var _this = this; var EXAMPLES_DATA, links, indexContent, entriesContent; return _regenerator2.default.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: EXAMPLES_DATA = examples.map(function (example) { return { title: example.title, href: _path2.default.relative(_this.tempDir, example.htmlPath) }; }); links = []; links.push(_path2.default.relative(this.tempDir, this.indexPath)); examples.forEach(function (example) { links.push(_path2.default.relative(_this.tempDir, example.htmlPath), _path2.default.relative(_this.tempDir, example.txtPath), _path2.default.relative(_this.tempDir, example.jsPath)); }); indexContent = (0, _stripIndent2.default)(` <!doctype html> <html> <head> <meta charset="utf-8"> <title>👻 Paranormal</title> </head> <body> <div id="root"></div> <script> window.EXAMPLES_DATA = ${(0, _stringify2.default)(EXAMPLES_DATA)}; </script> <script src="${require.resolve('../app/index.js')}"></script> <a hidden href="./entries.html"></a> </body> </html> `).trim(); entriesContent = (0, _stripIndent2.default)(` <!doctype html> <html> <head> <meta charset="utf-8"> <title>👻 Paranormal</title> </head> <body> <ul> ${links.map(function (link) { return `<li><a href="${link}">${link}</a></li>`; }).join('')} </ul> </body> </html> `).trim(); _context.next = 8; return _promise2.default.all([fs.writeFile(this.indexPath, indexContent), fs.writeFile(this.entriesPath, entriesContent)]); case 8: case 'end': return _context.stop(); } } }, _callee, this); })); function build(_x) { return _ref.apply(this, arguments); } return build; }(); return App; }(); exports.default = App;