summaryrefslogtreecommitdiffstats
path: root/packages/gitbook-core/src/shapes
diff options
context:
space:
mode:
authorSamy Pesse <samypesse@gmail.com>2016-09-22 10:37:06 +0200
committerSamy Pesse <samypesse@gmail.com>2016-09-22 10:37:06 +0200
commitf49089a7d3a6fd5523c71e06e5e0d132bb6ffd9a (patch)
tree4656866589cd5e46650b867cc2447619ea11bb3a /packages/gitbook-core/src/shapes
parent0b1888e184d3f995c3130daf794416ad0a4312bc (diff)
downloadgitbook-f49089a7d3a6fd5523c71e06e5e0d132bb6ffd9a.zip
gitbook-f49089a7d3a6fd5523c71e06e5e0d132bb6ffd9a.tar.gz
gitbook-f49089a7d3a6fd5523c71e06e5e0d132bb6ffd9a.tar.bz2
Add immutable state for readme/summary
Add shapes for these states
Diffstat (limited to 'packages/gitbook-core/src/shapes')
-rw-r--r--packages/gitbook-core/src/shapes/File.js13
-rw-r--r--packages/gitbook-core/src/shapes/Page.js7
-rw-r--r--packages/gitbook-core/src/shapes/Summary.js13
-rw-r--r--packages/gitbook-core/src/shapes/SummaryArticle.js20
-rw-r--r--packages/gitbook-core/src/shapes/SummaryPart.js13
-rw-r--r--packages/gitbook-core/src/shapes/index.js6
6 files changed, 70 insertions, 2 deletions
diff --git a/packages/gitbook-core/src/shapes/File.js b/packages/gitbook-core/src/shapes/File.js
new file mode 100644
index 0000000..cff2219
--- /dev/null
+++ b/packages/gitbook-core/src/shapes/File.js
@@ -0,0 +1,13 @@
+const React = require('react');
+const {
+ oneOf,
+ string,
+ shape
+} = React.PropTypes;
+
+
+module.exports = shape({
+ mtime: string.isRequired,
+ path: string.isRequired,
+ type: oneOf(['markdown', 'asciidoc']).isRequired
+});
diff --git a/packages/gitbook-core/src/shapes/Page.js b/packages/gitbook-core/src/shapes/Page.js
index 11117fe..c589f54 100644
--- a/packages/gitbook-core/src/shapes/Page.js
+++ b/packages/gitbook-core/src/shapes/Page.js
@@ -1,11 +1,16 @@
const React = require('react');
const {
+ oneOf,
string,
+ number,
shape
} = React.PropTypes;
module.exports = shape({
title: string.isRequired,
- content: string.isRequired
+ content: string.isRequired,
+ level: string.isRequired,
+ depth: number.isRequired,
+ dir: oneOf(['ltr', 'rtl']).isRequired
});
diff --git a/packages/gitbook-core/src/shapes/Summary.js b/packages/gitbook-core/src/shapes/Summary.js
new file mode 100644
index 0000000..7efe4e0
--- /dev/null
+++ b/packages/gitbook-core/src/shapes/Summary.js
@@ -0,0 +1,13 @@
+const React = require('react');
+const {
+ arrayOf,
+ shape
+} = React.PropTypes;
+
+const File = require('./File');
+const Part = require('./SummaryPart');
+
+module.exports = shape({
+ file: File.isRequired,
+ parts: arrayOf(Part).isRequired
+});
diff --git a/packages/gitbook-core/src/shapes/SummaryArticle.js b/packages/gitbook-core/src/shapes/SummaryArticle.js
new file mode 100644
index 0000000..d13bb31
--- /dev/null
+++ b/packages/gitbook-core/src/shapes/SummaryArticle.js
@@ -0,0 +1,20 @@
+/* eslint-disable no-use-before-define */
+
+const React = require('react');
+const {
+ arrayOf,
+ string,
+ number,
+ shape
+} = React.PropTypes;
+
+const Article = shape({
+ title: string.isRequired,
+ depth: number.isRequired,
+ path: string,
+ ref: string,
+ level: string,
+ articles: arrayOf(Article)
+});
+
+module.exports = Article;
diff --git a/packages/gitbook-core/src/shapes/SummaryPart.js b/packages/gitbook-core/src/shapes/SummaryPart.js
new file mode 100644
index 0000000..75d5602
--- /dev/null
+++ b/packages/gitbook-core/src/shapes/SummaryPart.js
@@ -0,0 +1,13 @@
+const React = require('react');
+const {
+ arrayOf,
+ string,
+ shape
+} = React.PropTypes;
+
+const Article = require('./SummaryArticle');
+
+module.exports = shape({
+ title: string.isRequired,
+ articles: arrayOf(Article)
+});
diff --git a/packages/gitbook-core/src/shapes/index.js b/packages/gitbook-core/src/shapes/index.js
index ca95a99..149b5a7 100644
--- a/packages/gitbook-core/src/shapes/index.js
+++ b/packages/gitbook-core/src/shapes/index.js
@@ -1,4 +1,8 @@
module.exports = {
- Page: require('./Page')
+ Page: require('./Page'),
+ File: require('./File'),
+ Summary: require('./Summary'),
+ SummaryPart: require('./SummaryPart'),
+ SummaryArticle: require('./SummaryArticle')
};