65 lines
1.6 KiB
JavaScript
65 lines
1.6 KiB
JavaScript
"use strict";
|
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
};
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
const immutable_1 = __importDefault(require("immutable"));
|
|
const file_1 = __importDefault(require("./file"));
|
|
const language_1 = __importDefault(require("./language"));
|
|
class Languages extends immutable_1.default.Record({
|
|
file: new file_1.default(),
|
|
list: immutable_1.default.OrderedMap()
|
|
}) {
|
|
getFile() {
|
|
return this.get("file");
|
|
}
|
|
getList() {
|
|
return this.get("list");
|
|
}
|
|
/**
|
|
Get default languages
|
|
|
|
@return {Language}
|
|
*/
|
|
getDefaultLanguage() {
|
|
return this.getList().first();
|
|
}
|
|
/**
|
|
Get a language by its ID
|
|
|
|
@param {string} lang
|
|
@return {Language}
|
|
*/
|
|
getLanguage(lang) {
|
|
return this.getList().get(lang);
|
|
}
|
|
/**
|
|
Return count of langs
|
|
|
|
@return {number}
|
|
*/
|
|
getCount() {
|
|
return this.getList().size;
|
|
}
|
|
/**
|
|
Create a languages list from a JS object
|
|
|
|
@return {Language}
|
|
*/
|
|
static createFromList(file, langs) {
|
|
let list = immutable_1.default.OrderedMap();
|
|
langs.forEach((lang) => {
|
|
lang = new language_1.default({
|
|
title: lang.title,
|
|
path: lang.ref
|
|
});
|
|
list = list.set(lang.getID(), lang);
|
|
});
|
|
return new Languages({
|
|
file: file,
|
|
list: list
|
|
});
|
|
}
|
|
}
|
|
exports.default = Languages;
|