diff options
author | Samy Pesse <samypesse@gmail.com> | 2016-10-14 23:05:37 +0200 |
---|---|---|
committer | Samy Pesse <samypesse@gmail.com> | 2016-10-14 23:05:37 +0200 |
commit | f262a7cd89d0d555c27bf3a25bb2054a5af1e7fd (patch) | |
tree | 1512b033eee4eb8146096a039c1f547d1e184972 /packages/gitbook-core/src/models | |
parent | b63b0cc50d1714c428ff6c540d4b2773e2c51347 (diff) | |
download | gitbook-f262a7cd89d0d555c27bf3a25bb2054a5af1e7fd.zip gitbook-f262a7cd89d0d555c27bf3a25bb2054a5af1e7fd.tar.gz gitbook-f262a7cd89d0d555c27bf3a25bb2054a5af1e7fd.tar.bz2 |
Add languages to client side state, and add "current" to json repr
Diffstat (limited to 'packages/gitbook-core/src/models')
-rw-r--r-- | packages/gitbook-core/src/models/File.js | 4 | ||||
-rw-r--r-- | packages/gitbook-core/src/models/Language.js | 12 | ||||
-rw-r--r-- | packages/gitbook-core/src/models/Languages.js | 40 |
3 files changed, 54 insertions, 2 deletions
diff --git a/packages/gitbook-core/src/models/File.js b/packages/gitbook-core/src/models/File.js index 74db11e..c5ac654 100644 --- a/packages/gitbook-core/src/models/File.js +++ b/packages/gitbook-core/src/models/File.js @@ -35,7 +35,7 @@ class File extends Record(DEFAULTS) { /** * Return true if file is an instance of File * @param {Mixed} file - * @return {Boolean} + * @return {Boolean} isFile */ static is(file) { return (file instanceof File); @@ -44,7 +44,7 @@ class File extends Record(DEFAULTS) { /** * Create a file instance * @param {Mixed|File} file - * @return {File} + * @return {File} file */ static create(file) { return File.is(file) ? diff --git a/packages/gitbook-core/src/models/Language.js b/packages/gitbook-core/src/models/Language.js new file mode 100644 index 0000000..20fc237 --- /dev/null +++ b/packages/gitbook-core/src/models/Language.js @@ -0,0 +1,12 @@ +const { Record } = require('immutable'); + +const DEFAULTS = { + id: null, + title: null +}; + +class Language extends Record(DEFAULTS) { + +} + +module.exports = Language; diff --git a/packages/gitbook-core/src/models/Languages.js b/packages/gitbook-core/src/models/Languages.js new file mode 100644 index 0000000..b698d14 --- /dev/null +++ b/packages/gitbook-core/src/models/Languages.js @@ -0,0 +1,40 @@ +const { Record, List } = require('immutable'); +const Language = require('./Language'); +const File = require('./File'); + +const DEFAULTS = { + current: String(), + file: new File(), + list: List() +}; + +class Languages extends Record(DEFAULTS) { + constructor(spec = {}) { + super({ + ...spec, + file: File.create(spec.file), + list: List(spec.list).map(lang => new Language(lang)) + }); + } + + /** + * Return true if file is an instance of Languages + * @param {Mixed} langs + * @return {Boolean} + */ + static is(langs) { + return (langs instanceof Languages); + } + + /** + * Create a Languages instance + * @param {Mixed|Languages} langs + * @return {Languages} + */ + static create(langs) { + return Languages.is(langs) ? + langs : new Languages(langs); + } +} + +module.exports = Languages; |