playcanvas
Version:
PlayCanvas WebGL game engine
39 lines (37 loc) • 1.24 kB
JavaScript
class I18nParser {
_validate(data) {
if (!data.header) {
throw new Error('pc.I18n#addData: Missing "header" field');
}
if (!data.header.version) {
throw new Error('pc.I18n#addData: Missing "header.version" field');
}
if (data.header.version !== 1) {
throw new Error('pc.I18n#addData: Invalid "header.version" field');
}
if (!data.data) {
throw new Error('pc.I18n#addData: Missing "data" field');
} else if (!Array.isArray(data.data)) {
throw new Error('pc.I18n#addData: "data" field must be an array');
}
for(let i = 0, len = data.data.length; i < len; i++){
const entry = data.data[i];
if (!entry.info) {
throw new Error(`pc.I18n#addData: missing "data[${i}].info" field`);
}
if (!entry.info.locale) {
throw new Error(`pc.I18n#addData: missing "data[${i}].info.locale" field`);
}
if (typeof entry.info.locale !== 'string') {
throw new Error(`pc.I18n#addData: "data[${i}].info.locale" must be a string`);
}
if (!entry.messages) {
throw new Error(`pc.I18n#addData: missing "data[${i}].messages" field`);
}
}
}
parse(data) {
return data.data;
}
}
export { I18nParser };