Comparing version 0.0.2 to 0.0.3
@@ -0,1 +1,7 @@ | ||
'use strict'; | ||
Object.defineProperty(exports, "__esModule", { | ||
value: true | ||
}); | ||
var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); | ||
@@ -9,2 +15,26 @@ | ||
var _get = require('lodash/get'); | ||
var _get2 = _interopRequireDefault(_get); | ||
var _isString = require('lodash/isString'); | ||
var _isString2 = _interopRequireDefault(_isString); | ||
var _react = require('react'); | ||
var _react2 = _interopRequireDefault(_react); | ||
var _reactDom = require('react-dom'); | ||
var _mobx = require('mobx'); | ||
var _index = require('./ui/index'); | ||
var _index2 = _interopRequireDefault(_index); | ||
var _urlHelper = require('./url-helper'); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } | ||
@@ -57,11 +87,6 @@ | ||
import get from 'lodash/get'; | ||
import isString from 'lodash/isString'; | ||
var escapeName = function escapeName(name) { | ||
return name.replace(/\./g, '-'); | ||
}; | ||
import React from 'react'; | ||
import { render } from 'react-dom'; | ||
import { action, observable } from 'mobx'; | ||
import DevNovelUI, { baseStyles } from './ui/index'; | ||
var DevNovel = (_class = function () { | ||
@@ -108,12 +133,16 @@ function DevNovel() { | ||
return function (storyName, fn) { | ||
if (typeof get(_this.stories, parentName + '.' + storyName) === 'function') { | ||
if (typeof (0, _get2.default)(_this.stories, parentName + '.' + storyName) === 'function') { | ||
throw new Error('story: ' + storyName + ' is already defined'); | ||
} | ||
if (!isString(storyName) && typeof fn !== 'function') { | ||
if (!(0, _isString2.default)(storyName) && typeof fn !== 'function') { | ||
throw new Error('usage: `add(storyName: string, fn: Function)`'); | ||
} | ||
Object.assign(_this.stories, _defineProperty({}, parentName, _extends({}, _this.stories[parentName] || {}, _defineProperty({}, storyName, fn)))); | ||
// remove `.` from keys or `_.get` wont work as expected | ||
var safeParentName = escapeName(parentName); | ||
var safeStoryName = escapeName(storyName); | ||
Object.assign(_this.stories, _defineProperty({}, safeParentName, _extends({}, _this.stories[safeParentName] || {}, _defineProperty({}, safeStoryName, fn)))); | ||
return _this._bindedInstance({ parentName: parentName }); | ||
@@ -144,14 +173,28 @@ }; | ||
var fn = get(this.stories, this.selectedStory); | ||
var fn = (0, _get2.default)(this.stories, this.selectedStory); | ||
fn(this.storyContainer); | ||
(0, _urlHelper.updateURL)(this.selectedStory); | ||
} | ||
}, { | ||
key: 'initSelectedStory', | ||
value: function initSelectedStory() { | ||
var selectedStoryFromURL = (0, _urlHelper.loadFromURL)(); | ||
if (selectedStoryFromURL && (0, _get2.default)(this.stories, selectedStoryFromURL)) { | ||
this.selectedStory = selectedStoryFromURL; | ||
} else { | ||
var firstParent = Object.keys(this.stories)[0]; | ||
this.selectedStory = firstParent + '.' + Object.keys(this.stories[firstParent])[0]; | ||
} | ||
} | ||
}, { | ||
key: 'selectParent', | ||
value: function selectParent(parentName) { | ||
// update selected story | ||
var _Object$keys = Object.keys(this.stories[parentName]), | ||
var safeParentName = escapeName(parentName); | ||
var _Object$keys = Object.keys(this.stories[safeParentName]), | ||
_Object$keys2 = _slicedToArray(_Object$keys, 1), | ||
firstStoryOfParent = _Object$keys2[0]; | ||
this.selectedStory = parentName + '.' + firstStoryOfParent; | ||
this.selectedStory = safeParentName + '.' + firstStoryOfParent; | ||
this.loadSelectedStory(); | ||
@@ -173,7 +216,7 @@ } | ||
value: function injectUI() { | ||
baseStyles(); | ||
(0, _index.baseStyles)(); | ||
var container = window.document.createElement('div'); | ||
window.document.body.appendChild(container); | ||
render(React.createElement(DevNovelUI, { devNovelInstance: this }), container); | ||
(0, _reactDom.render)(_react2.default.createElement(_index2.default, { devNovelInstance: this }), container); | ||
} | ||
@@ -195,3 +238,3 @@ }, { | ||
return DevNovel; | ||
}(), (_descriptor = _applyDecoratedDescriptor(_class.prototype, 'openAllStories', [observable], { | ||
}(), (_descriptor = _applyDecoratedDescriptor(_class.prototype, 'openAllStories', [_mobx.observable], { | ||
enumerable: true, | ||
@@ -201,3 +244,3 @@ initializer: function initializer() { | ||
} | ||
}), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, 'project', [observable], { | ||
}), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, 'project', [_mobx.observable], { | ||
enumerable: true, | ||
@@ -210,3 +253,3 @@ initializer: function initializer() { | ||
} | ||
}), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, 'selectedStory', [observable], { | ||
}), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, 'selectedStory', [_mobx.observable], { | ||
enumerable: true, | ||
@@ -216,3 +259,3 @@ initializer: function initializer() { | ||
} | ||
}), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, 'actionLogs', [observable], { | ||
}), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, 'actionLogs', [_mobx.observable], { | ||
enumerable: true, | ||
@@ -222,5 +265,3 @@ initializer: function initializer() { | ||
} | ||
}), _applyDecoratedDescriptor(_class.prototype, 'selectParent', [action], Object.getOwnPropertyDescriptor(_class.prototype, 'selectParent'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'selectStory', [action], Object.getOwnPropertyDescriptor(_class.prototype, 'selectStory'), _class.prototype)), _class); | ||
export default DevNovel; | ||
}), _applyDecoratedDescriptor(_class.prototype, 'initSelectedStory', [_mobx.action], Object.getOwnPropertyDescriptor(_class.prototype, 'initSelectedStory'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'selectParent', [_mobx.action], Object.getOwnPropertyDescriptor(_class.prototype, 'selectParent'), _class.prototype), _applyDecoratedDescriptor(_class.prototype, 'selectStory', [_mobx.action], Object.getOwnPropertyDescriptor(_class.prototype, 'selectStory'), _class.prototype)), _class); | ||
exports.default = DevNovel; |
@@ -1,20 +0,35 @@ | ||
import { action as mobxAction } from 'mobx'; | ||
'use strict'; | ||
import DevNovel from './dev-novel'; | ||
Object.defineProperty(exports, "__esModule", { | ||
value: true | ||
}); | ||
exports.start = undefined; | ||
exports.storiesOf = storiesOf; | ||
exports.registerDisposer = registerDisposer; | ||
exports.registerInitializer = registerInitializer; | ||
exports.action = action; | ||
var devNovel = new DevNovel(); | ||
var _mobx = require('mobx'); | ||
export function storiesOf(parentName) { | ||
var _devNovel = require('./dev-novel'); | ||
var _devNovel2 = _interopRequireDefault(_devNovel); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
var devNovel = new _devNovel2.default(); | ||
function storiesOf(parentName) { | ||
return devNovel._bindedInstance({ parentName: parentName }); | ||
} | ||
export function registerDisposer(disposer) { | ||
function registerDisposer(disposer) { | ||
devNovel.disposers.push(disposer); | ||
} | ||
export function registerInitializer(initializer) { | ||
function registerInitializer(initializer) { | ||
devNovel.initializers.push(initializer); | ||
} | ||
export function action(name) { | ||
function action(name) { | ||
return function () { | ||
@@ -34,18 +49,9 @@ for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { | ||
export var start = mobxAction(function () { | ||
var start = exports.start = (0, _mobx.action)(function () { | ||
var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; | ||
devNovel.applyOpts(opts); | ||
// select first story in the list | ||
devNovel.selectedStory = function () { | ||
var firstParent = Object.keys(devNovel.stories)[0]; | ||
return firstParent + '.' + Object.keys(devNovel.stories[firstParent])[0]; | ||
}(); | ||
// append UI to the page | ||
devNovel.initSelectedStory(); | ||
devNovel.injectUI(); | ||
// load selectedStory | ||
devNovel.loadSelectedStory(); | ||
}); |
@@ -0,1 +1,7 @@ | ||
'use strict'; | ||
Object.defineProperty(exports, "__esModule", { | ||
value: true | ||
}); | ||
var _templateObject = _taggedTemplateLiteral(['\n border-bottom: 1px solid rgb(234, 234, 234);\n display: flex;\n flex-wrap: wrap;\n text-transform: uppercase;\n padding: 5px 10px;\n'], ['\n border-bottom: 1px solid rgb(234, 234, 234);\n display: flex;\n flex-wrap: wrap;\n text-transform: uppercase;\n padding: 5px 10px;\n']), | ||
@@ -5,22 +11,32 @@ _templateObject2 = _taggedTemplateLiteral(['\n height: calc(100% - 35px); /* -title height */\n overflow-x: scroll;\n'], ['\n height: calc(100% - 35px); /* -title height */\n overflow-x: scroll;\n']), | ||
var _react = require('react'); | ||
var _react2 = _interopRequireDefault(_react); | ||
var _styledComponents = require('styled-components'); | ||
var _styledComponents2 = _interopRequireDefault(_styledComponents); | ||
var _reactInspector = require('react-inspector'); | ||
var _mobx = require('mobx'); | ||
var _mobxReact = require('mobx-react'); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
function _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } | ||
import React from 'react'; | ||
import styled from 'styled-components'; | ||
import { Inspector } from 'react-inspector'; | ||
import { toJS } from 'mobx'; | ||
import { observer } from 'mobx-react'; | ||
var Title = _styledComponents2.default.div(_templateObject); | ||
var Title = styled.div(_templateObject); | ||
var LogsContainer = _styledComponents2.default.pre(_templateObject2); | ||
var LogsContainer = styled.pre(_templateObject2); | ||
var Log = _styledComponents2.default.div(_templateObject3); | ||
var Log = styled.div(_templateObject3); | ||
var ActionLogger = function ActionLogger(_ref) { | ||
var devNovelInstance = _ref.devNovelInstance; | ||
return React.createElement( | ||
return _react2.default.createElement( | ||
'div', | ||
null, | ||
React.createElement( | ||
_react2.default.createElement( | ||
Title, | ||
@@ -30,3 +46,3 @@ null, | ||
), | ||
React.createElement( | ||
_react2.default.createElement( | ||
LogsContainer, | ||
@@ -37,6 +53,6 @@ null, | ||
data = _ref2.data; | ||
return React.createElement( | ||
return _react2.default.createElement( | ||
Log, | ||
{ key: idx }, | ||
React.createElement(Inspector, { name: name, data: toJS(data) }) | ||
_react2.default.createElement(_reactInspector.Inspector, { name: name, data: (0, _mobx.toJS)(data) }) | ||
); | ||
@@ -48,2 +64,2 @@ }) | ||
export default observer(ActionLogger); | ||
exports.default = (0, _mobxReact.observer)(ActionLogger); |
@@ -0,1 +1,8 @@ | ||
'use strict'; | ||
Object.defineProperty(exports, "__esModule", { | ||
value: true | ||
}); | ||
exports.baseStyles = undefined; | ||
var _templateObject = _taggedTemplateLiteral(['\n body {\n color: rgb(68, 68, 68);\n font-family: -apple-system, ".SFNSText-Regular", "San Francisco", Roboto, "Segoe UI", "Helvetica Neue", "Lucida Grande", sans-serif;\n }\n\n * {\n box-sizing: border-box;\n }\n\n ', '\n'], ['\n body {\n color: rgb(68, 68, 68);\n font-family: -apple-system, ".SFNSText-Regular", "San Francisco", Roboto, "Segoe UI", "Helvetica Neue", "Lucida Grande", sans-serif;\n }\n\n * {\n box-sizing: border-box;\n }\n\n ', '\n']), | ||
@@ -8,23 +15,38 @@ _templateObject2 = _taggedTemplateLiteral(['\n background-color: rgb(247, 247, 247);\n display: flex;\n height: 100vh;\n'], ['\n background-color: rgb(247, 247, 247);\n display: flex;\n height: 100vh;\n']), | ||
function _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } | ||
var _react = require('react'); | ||
import React from 'react'; | ||
import styled, { injectGlobal } from 'styled-components'; | ||
import styledNormalized from 'styled-normalize'; | ||
var _react2 = _interopRequireDefault(_react); | ||
import Sidebar from './sidebar'; | ||
import ActionLogger from './action-logger'; | ||
var _styledComponents = require('styled-components'); | ||
var _styledComponents2 = _interopRequireDefault(_styledComponents); | ||
var _styledNormalize = require('styled-normalize'); | ||
var _styledNormalize2 = _interopRequireDefault(_styledNormalize); | ||
var _sidebar = require('./sidebar'); | ||
var _sidebar2 = _interopRequireDefault(_sidebar); | ||
var _actionLogger = require('./action-logger'); | ||
var _actionLogger2 = _interopRequireDefault(_actionLogger); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
function _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } | ||
// global css to load on devNovel.injectUI() | ||
export var baseStyles = function baseStyles() { | ||
return injectGlobal(_templateObject, styledNormalized); | ||
var baseStyles = exports.baseStyles = function baseStyles() { | ||
return (0, _styledComponents.injectGlobal)(_templateObject, _styledNormalize2.default); | ||
}; | ||
var UIWrapper = styled.div(_templateObject2); | ||
var UIWrapper = _styledComponents2.default.div(_templateObject2); | ||
var BodyWrapper = styled.div(_templateObject3); | ||
var BodyWrapper = _styledComponents2.default.div(_templateObject3); | ||
var Body = styled.div(_templateObject4); | ||
var Body = _styledComponents2.default.div(_templateObject4); | ||
var StoryContainer = styled.div(_templateObject5); | ||
var StoryContainer = _styledComponents2.default.div(_templateObject5); | ||
@@ -35,17 +57,17 @@ var ActionLoggerContainer = StoryContainer.extend(_templateObject6); | ||
var devNovelInstance = _ref.devNovelInstance; | ||
return React.createElement( | ||
return _react2.default.createElement( | ||
UIWrapper, | ||
null, | ||
React.createElement(Sidebar, { devNovelInstance: devNovelInstance }), | ||
React.createElement( | ||
_react2.default.createElement(_sidebar2.default, { devNovelInstance: devNovelInstance }), | ||
_react2.default.createElement( | ||
BodyWrapper, | ||
null, | ||
React.createElement( | ||
_react2.default.createElement( | ||
Body, | ||
null, | ||
React.createElement(StoryContainer, { id: 'story-container' }), | ||
React.createElement( | ||
_react2.default.createElement(StoryContainer, { id: 'story-container' }), | ||
_react2.default.createElement( | ||
ActionLoggerContainer, | ||
null, | ||
React.createElement(ActionLogger, { devNovelInstance: devNovelInstance }) | ||
_react2.default.createElement(_actionLogger2.default, { devNovelInstance: devNovelInstance }) | ||
) | ||
@@ -57,2 +79,2 @@ ) | ||
export default DevNovelUI; | ||
exports.default = DevNovelUI; |
@@ -0,1 +1,7 @@ | ||
'use strict'; | ||
Object.defineProperty(exports, "__esModule", { | ||
value: true | ||
}); | ||
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; | ||
@@ -16,2 +22,30 @@ | ||
var _map = require('lodash/map'); | ||
var _map2 = _interopRequireDefault(_map); | ||
var _reduce = require('lodash/reduce'); | ||
var _reduce2 = _interopRequireDefault(_reduce); | ||
var _sortBy = require('lodash/sortBy'); | ||
var _sortBy2 = _interopRequireDefault(_sortBy); | ||
var _react = require('react'); | ||
var _react2 = _interopRequireDefault(_react); | ||
var _styledComponents = require('styled-components'); | ||
var _styledComponents2 = _interopRequireDefault(_styledComponents); | ||
var _mobx = require('mobx'); | ||
var _mobxReact = require('mobx-react'); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } | ||
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } | ||
@@ -70,24 +104,15 @@ | ||
import map from 'lodash/map'; | ||
import reduce from 'lodash/reduce'; | ||
var SidebarContainer = _styledComponents2.default.div(_templateObject); | ||
import React, { Component } from 'react'; | ||
import styled from 'styled-components'; | ||
var ProjectName = _styledComponents2.default.a(_templateObject2); | ||
import { observable, computed } from 'mobx'; | ||
import { observer } from 'mobx-react'; | ||
var FilterContainer = _styledComponents2.default.div(_templateObject3); | ||
var SidebarContainer = styled.div(_templateObject); | ||
var FilterInput = _styledComponents2.default.input(_templateObject4); | ||
var ProjectName = styled.a(_templateObject2); | ||
var StoriesList = _styledComponents2.default.ul(_templateObject5); | ||
var FilterContainer = styled.div(_templateObject3); | ||
var ParentContainer = _styledComponents2.default.li(_templateObject6); | ||
var FilterInput = styled.input(_templateObject4); | ||
var StoriesList = styled.ul(_templateObject5); | ||
var ParentContainer = styled.li(_templateObject6); | ||
var SelectParent = styled.span(_templateObject7, function (props) { | ||
var SelectParent = _styledComponents2.default.span(_templateObject7, function (props) { | ||
return props.selected ? 'bold' : 'normal'; | ||
@@ -100,3 +125,3 @@ }, function (props) { | ||
var Sidebar = observer(_class = (_class2 = function (_Component) { | ||
var Sidebar = (0, _mobxReact.observer)(_class = (_class2 = function (_Component) { | ||
_inherits(Sidebar, _Component); | ||
@@ -123,3 +148,3 @@ | ||
return React.createElement(FilterInput, { | ||
return _react2.default.createElement(FilterInput, { | ||
type: 'text', | ||
@@ -141,8 +166,11 @@ placeholder: 'Filter', | ||
return map(this.stories, function (parentStories, parentName) { | ||
return this.stories.map(function (_ref3) { | ||
var parentStories = _ref3.parentStories, | ||
parentName = _ref3.parentName; | ||
var isSelected = devNovelInstance.selectedStory.split('.')[0] === parentName; | ||
return React.createElement( | ||
return _react2.default.createElement( | ||
ParentContainer, | ||
{ key: parentName }, | ||
React.createElement( | ||
_react2.default.createElement( | ||
SelectParent, | ||
@@ -157,4 +185,4 @@ { | ||
), | ||
devNovelInstance.openAllStories || isSelected ? map(parentStories, function (storyFn, storyName) { | ||
return React.createElement( | ||
devNovelInstance.openAllStories || isSelected ? (0, _map2.default)(parentStories, function (storyFn, storyName) { | ||
return _react2.default.createElement( | ||
StoryContainer, | ||
@@ -180,6 +208,6 @@ { | ||
return React.createElement( | ||
return _react2.default.createElement( | ||
SidebarContainer, | ||
null, | ||
React.createElement( | ||
_react2.default.createElement( | ||
ProjectName, | ||
@@ -189,3 +217,3 @@ { href: project.link, target: '_default' }, | ||
), | ||
React.createElement( | ||
_react2.default.createElement( | ||
FilterContainer, | ||
@@ -195,3 +223,3 @@ null, | ||
), | ||
React.createElement( | ||
_react2.default.createElement( | ||
StoriesList, | ||
@@ -211,3 +239,3 @@ null, | ||
if (filterValue && filterValue.trim() && filterValue.trim().length >= 3) { | ||
return reduce(stories, function (result, parentStories, parentName) { | ||
return (0, _reduce2.default)(stories, function (result, parentStories, parentName) { | ||
var isParentNameMatch = parentName.toLowerCase().includes(filterValue); | ||
@@ -221,3 +249,5 @@ var isChildrenStoryMatch = Object.keys(parentStories).some(function (storyName) { | ||
return stories; | ||
return (0, _sortBy2.default)((0, _reduce2.default)(stories, function (result, parentStories, parentName) { | ||
return [].concat(_toConsumableArray(result), [{ parentName: parentName, parentStories: parentStories }]); | ||
}, []), 'parentName'); | ||
} | ||
@@ -227,3 +257,3 @@ }]); | ||
return Sidebar; | ||
}(Component), (_descriptor = _applyDecoratedDescriptor(_class2.prototype, 'filterValue', [observable], { | ||
}(_react.Component), (_descriptor = _applyDecoratedDescriptor(_class2.prototype, 'filterValue', [_mobx.observable], { | ||
enumerable: true, | ||
@@ -233,4 +263,4 @@ initializer: function initializer() { | ||
} | ||
}), _applyDecoratedDescriptor(_class2.prototype, 'stories', [computed], Object.getOwnPropertyDescriptor(_class2.prototype, 'stories'), _class2.prototype)), _class2)) || _class; | ||
}), _applyDecoratedDescriptor(_class2.prototype, 'stories', [_mobx.computed], Object.getOwnPropertyDescriptor(_class2.prototype, 'stories'), _class2.prototype)), _class2)) || _class; | ||
export default Sidebar; | ||
exports.default = Sidebar; |
{ | ||
"name": "dev-novel", | ||
"version": "0.0.2", | ||
"version": "0.0.3", | ||
"description": "📓 Build an interactive JavaScript development page", | ||
@@ -27,2 +27,3 @@ "main": "dist/index.js", | ||
"mobx-react": "^4.2.1", | ||
"qs": "^6.4.0", | ||
"react": "^15.5.4", | ||
@@ -29,0 +30,0 @@ "react-dom": "^15.5.4", |
@@ -11,13 +11,7 @@ # dev-novel | ||
Since the project is still private, you will need to clone and build dev-novel by yourself in order to use it in your project: | ||
* `$ npm i -D dev-novel` OR | ||
* `$ yarn add -D dev-novel` | ||
* `$ git clone git@github.com:algolia/dev-novel.git` | ||
* `$ cd dev-novel && yarn && yarn link` | ||
You will need your own build system (like webpack or rollup) to process the javascript and serve the page for you. You need to serve an `index.html` with a body tag and voilà! | ||
Then in your project you simply run: | ||
* `$ yarn link dev-novel` | ||
You will also need to provide your own build system, we are not providing an minified/unified build for the moment. So use either webpack, rollup or browserify to start your dev environment. | ||
### Usage | ||
@@ -79,2 +73,4 @@ | ||
start({ | ||
projectName: ?string // name of the project to display in header of sidebar | ||
projectLink: ?string // URL to link on the projectName | ||
openAllStories?: boolean // open all parent stories item in the menu by default | ||
@@ -92,4 +88,7 @@ }) | ||
// remove all event listeners when switching to another story | ||
const eventDisposers = [] | ||
registerDisposer(() => { eventDisposers.forEach(disposer => disposer()) }) | ||
let eventDisposers = [] | ||
registerDisposer(() => { | ||
eventDisposers.forEach(disposer => disposer()) | ||
eventDisposers = [] | ||
}) | ||
@@ -113,7 +112,1 @@ storiesOf('Button') | ||
![preview-action-logger](./preview-action-logger.gif) | ||
### TODO | ||
* [ ] Provide initializers/disposers per stories | ||
* [ ] Provide an UMD build for usage in the browser | ||
* [ ] Open source / publish to NPM? |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
34944
8
571
0
14
109
+ Addedqs@^6.4.0
+ Addedcall-bind-apply-helpers@1.0.1(transitive)
+ Addedcall-bound@1.0.3(transitive)
+ Addeddunder-proto@1.0.1(transitive)
+ Addedes-define-property@1.0.1(transitive)
+ Addedes-errors@1.3.0(transitive)
+ Addedes-object-atoms@1.1.1(transitive)
+ Addedfunction-bind@1.1.2(transitive)
+ Addedget-intrinsic@1.2.7(transitive)
+ Addedget-proto@1.0.1(transitive)
+ Addedgopd@1.2.0(transitive)
+ Addedhas-symbols@1.1.0(transitive)
+ Addedhasown@2.0.2(transitive)
+ Addedmath-intrinsics@1.1.0(transitive)
+ Addedobject-inspect@1.13.4(transitive)
+ Addedqs@6.14.0(transitive)
+ Addedside-channel@1.1.0(transitive)
+ Addedside-channel-list@1.0.0(transitive)
+ Addedside-channel-map@1.0.1(transitive)
+ Addedside-channel-weakmap@1.0.2(transitive)