2025-05-12 05:38:44 +09:00

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;