@singleton-i18n/js-core-sdk
Version:
A JavaScript Singleton client library for internationalization and localization that leverage data from Singleton service. The library works both for the browser and as a Node.js module.
51 lines (50 loc) • 1.73 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.defaultResponseParser = exports.ResponseParser = void 0;
/*
* Copyright 2019-2021 VMware, Inc.
* SPDX-License-Identifier: EPL-2.0
*/
const logger_1 = require("./logger");
class ResponseParser {
}
exports.ResponseParser = ResponseParser;
class VIPResponseParser {
constructor() {
this.logger = logger_1.basedLogger.create('VIPResponseParser');
}
validateResponse(res) {
if (!res || !res.response) {
return null;
}
const response = res.response;
// response code is bussiness code from VIP backend.
if (response.code !== 200) {
this.logger.error(response.message);
}
return res.data;
}
getPatterns(res) {
const data = this.validateResponse(res);
const pattern = data && data.pattern && data.pattern.categories
? data.pattern.categories : null;
return pattern;
}
getTranslations(res) {
const data = this.validateResponse(res);
const translations = data && data.messages ? data.messages :
data && data.components && data.components[0].messages ? data.components[0].messages : null;
return translations;
}
getSupportedLanguages(res) {
const data = this.validateResponse(res);
const languages = data && data.languages ? data.languages : null;
return languages;
}
getSupportedRegions(res) {
const data = this.validateResponse(res);
const regions = data && data[0] && data[0].territories ? data[0].territories : null;
return regions;
}
}
exports.defaultResponseParser = new VIPResponseParser();