mirror of
https://github.com/GitbookIO/gitbook.git
synced 2026-09-16 15:45:13 +00:00
72 lines
1.3 KiB
JavaScript
72 lines
1.3 KiB
JavaScript
var Immutable = require('immutable');
|
|
|
|
var File = require('./file');
|
|
var Language = require('./language');
|
|
|
|
var Languages = Immutable.Record({
|
|
file: File(),
|
|
list: Immutable.OrderedMap()
|
|
});
|
|
|
|
Languages.prototype.getFile = function() {
|
|
return this.get('file');
|
|
};
|
|
|
|
Languages.prototype.getList = function() {
|
|
return this.get('list');
|
|
};
|
|
|
|
/**
|
|
Get default languages
|
|
|
|
@return {Language}
|
|
*/
|
|
Languages.prototype.getDefaultLanguage = function() {
|
|
return this.getList().first();
|
|
};
|
|
|
|
/**
|
|
Get a language by its ID
|
|
|
|
@param {String} lang
|
|
@return {Language}
|
|
*/
|
|
Languages.prototype.getLanguage = function(lang) {
|
|
return this.getList().get(lang);
|
|
};
|
|
|
|
/**
|
|
Return count of langs
|
|
|
|
@return {Number}
|
|
*/
|
|
Languages.prototype.getCount = function() {
|
|
return this.getList().size;
|
|
};
|
|
|
|
/**
|
|
Create a languages list from a JS object
|
|
|
|
@param {File}
|
|
@param {Array}
|
|
@return {Language}
|
|
*/
|
|
Languages.createFromList = function(file, langs) {
|
|
var list = Immutable.OrderedMap();
|
|
|
|
langs.forEach(function(lang) {
|
|
lang = Language({
|
|
title: lang.title,
|
|
path: lang.ref
|
|
});
|
|
list = list.set(lang.getID(), lang);
|
|
});
|
|
|
|
return Languages({
|
|
file: file,
|
|
list: list
|
|
});
|
|
};
|
|
|
|
module.exports = Languages;
|