@singleton-i18n/angular-client
Version:
Singleton client code for Angular 10.
64 lines • 8.79 kB
JavaScript
/*
* Copyright 2019-2021 VMware, Inc.
* SPDX-License-Identifier: EPL-2.0
*/
import { Injectable } from '@angular/core';
import { getNameSpace } from './config';
export class ResponseParser {
}
export class VIPResponseParser {
constructor() { }
validateResponse(res) {
if (!res || !res.response) {
return null;
}
const response = res.response;
// response code is bussiness code from VIP backend.
if (response.code && response.code !== 200) {
throw Error(response.message);
}
if (res.data && res.data.pattern && !res.data.pattern.isExistPattern) {
res.data.pattern = null;
}
return res.data;
}
ParseLocaleData(res, config) {
const translations = {};
const data = this.validateResponse(res);
const nameSpace = getNameSpace(config);
const pattern = this.ParsePatternsData(data);
translations[nameSpace] = this.ParseTranslationsData(data);
return {
categories: pattern,
messages: translations
};
}
ParsePatternsData(data) {
const pattern = data && data.pattern && data.pattern.categories
? data.pattern.categories : undefined;
return pattern;
}
ParseTranslationsData(data) {
if (data.messages) {
return data.messages;
}
const translations = data && data.components && data.components[0].messages
? data.components[0].messages : undefined;
return translations;
}
ParseSupportedLanguagesData(res) {
const data = this.validateResponse(res);
const languages = data && data.languages ? data.languages : null;
return languages;
}
ParseSupportedRegionsData(res) {
const data = this.validateResponse(res);
const regions = data && data[0] ? data[0] : null;
return regions;
}
}
VIPResponseParser.decorators = [
{ type: Injectable }
];
VIPResponseParser.ctorParameters = () => [];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcG9uc2UucGFyc2VyLmpzIiwic291cmNlUm9vdCI6Ii9ob21lL3JsaWdlbmcvUHJvamVjdHMvRGV2b3BzL0NsaWVudF9Bbmd1bGFyX0dpdEh1Yl9OcG1qcy92aXAvY2kvcHViMm9yZy9DbGllbnRfQW5ndWxhcl9HaXRIdWJfTnBtanMvc2luZ2xldG9uL3Byb2plY3RzL2FuZ3VsYXItY2xpZW50LyIsInNvdXJjZXMiOlsic3JjL3Jlc3BvbnNlLnBhcnNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxZQUFZLEVBQWEsTUFBTSxVQUFVLENBQUM7QUFNbkQsTUFBTSxPQUFnQixjQUFjO0NBT25DO0FBSUQsTUFBTSxPQUFPLGlCQUFpQjtJQUMxQixnQkFBZ0IsQ0FBQztJQUNqQixnQkFBZ0IsQ0FBQyxHQUFZO1FBQ3pCLElBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFHO1lBQ3pCLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFDRCxNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUMsUUFBUSxDQUFDO1FBQzlCLG9EQUFvRDtRQUNwRCxJQUFJLFFBQVEsQ0FBQyxJQUFJLElBQUksUUFBUSxDQUFDLElBQUksS0FBSyxHQUFHLEVBQUU7WUFDeEMsTUFBTSxLQUFLLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ2pDO1FBQ0QsSUFBSyxHQUFHLENBQUMsSUFBSSxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFO1lBQ25FLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztTQUMzQjtRQUNELE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQztJQUNwQixDQUFDO0lBRUQsZUFBZSxDQUFDLEdBQVksRUFBRSxNQUFpQjtRQUMzQyxNQUFNLFlBQVksR0FBMEIsRUFBRSxDQUFDO1FBQy9DLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN4QyxNQUFNLFNBQVMsR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdkMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdDLFlBQVksQ0FBQyxTQUFTLENBQUMsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0QsT0FBTztZQUNILFVBQVUsRUFBRSxPQUFPO1lBQ25CLFFBQVEsRUFBRSxZQUFZO1NBQ3pCLENBQUM7SUFDTixDQUFDO0lBRUQsaUJBQWlCLENBQUMsSUFBYTtRQUMzQixNQUFNLE9BQU8sR0FBRyxJQUFJLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVU7WUFDM0QsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDMUMsT0FBTyxPQUFPLENBQUM7SUFDbkIsQ0FBQztJQUVELHFCQUFxQixDQUFDLElBQWE7UUFDL0IsSUFBSyxJQUFJLENBQUMsUUFBUSxFQUFHO1lBQ2pCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztTQUN4QjtRQUNELE1BQU0sWUFBWSxHQUFHLElBQUksSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUTtZQUN2RSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUM5QyxPQUFPLFlBQVksQ0FBQztJQUN4QixDQUFDO0lBRUQsMkJBQTJCLENBQUMsR0FBWTtRQUNwQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDeEMsTUFBTSxTQUFTLEdBQUcsSUFBSSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNqRSxPQUFPLFNBQVMsQ0FBQztJQUNyQixDQUFDO0lBQ0QseUJBQXlCLENBQUMsR0FBWTtRQUNsQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDeEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDakQsT0FBTyxPQUFPLENBQUM7SUFDbkIsQ0FBQzs7O1lBdERKLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTktMjAyMSBWTXdhcmUsIEluYy5cbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wXG4gKi9cbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExvY2FsZURhdGEgfSBmcm9tICcuLi9zcmMvc2VydmljZXMvdmlwLnNlcnZpY2UnO1xuaW1wb3J0IHsgZ2V0TmFtZVNwYWNlLCBWSVBDb25maWcgfSBmcm9tICcuL2NvbmZpZyc7XG5cbmludGVyZmFjZSBSZXNUeXBlIHtcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBSZXNwb25zZVBhcnNlciB7XG4gICAgYWJzdHJhY3QgdmFsaWRhdGVSZXNwb25zZShyZXM6IFJlc1R5cGUpOiBPYmplY3QgfCB1bmRlZmluZWQ7XG4gICAgYWJzdHJhY3QgUGFyc2VMb2NhbGVEYXRhKHJlczogUmVzVHlwZSwgY29uZmlnOiBWSVBDb25maWcpOiBPYmplY3QgfCB1bmRlZmluZWQ7XG4gICAgYWJzdHJhY3QgUGFyc2VQYXR0ZXJuc0RhdGEocmVzOiBSZXNUeXBlKTogT2JqZWN0IHwgdW5kZWZpbmVkO1xuICAgIGFic3RyYWN0IFBhcnNlVHJhbnNsYXRpb25zRGF0YShyZXM6IFJlc1R5cGUpOiBPYmplY3QgfCB1bmRlZmluZWQ7XG4gICAgYWJzdHJhY3QgUGFyc2VTdXBwb3J0ZWRSZWdpb25zRGF0YShyZXM6IFJlc1R5cGUpOiBPYmplY3QgfCB1bmRlZmluZWQ7XG4gICAgYWJzdHJhY3QgUGFyc2VTdXBwb3J0ZWRMYW5ndWFnZXNEYXRhKHJlczogUmVzVHlwZSk6IHt9W10gfCB1bmRlZmluZWQ7XG59XG5cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFZJUFJlc3BvbnNlUGFyc2VyIGltcGxlbWVudHMgUmVzcG9uc2VQYXJzZXIge1xuICAgIGNvbnN0cnVjdG9yKCkgeyB9XG4gICAgdmFsaWRhdGVSZXNwb25zZShyZXM6IFJlc1R5cGUpOiBhbnkge1xuICAgICAgICBpZiAoICFyZXMgfHwgIXJlcy5yZXNwb25zZSApIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gcmVzLnJlc3BvbnNlO1xuICAgICAgICAvLyByZXNwb25zZSBjb2RlIGlzIGJ1c3NpbmVzcyBjb2RlIGZyb20gVklQIGJhY2tlbmQuXG4gICAgICAgIGlmIChyZXNwb25zZS5jb2RlICYmIHJlc3BvbnNlLmNvZGUgIT09IDIwMCkge1xuICAgICAgICAgICAgdGhyb3cgRXJyb3IocmVzcG9uc2UubWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCByZXMuZGF0YSAmJiByZXMuZGF0YS5wYXR0ZXJuICYmICFyZXMuZGF0YS5wYXR0ZXJuLmlzRXhpc3RQYXR0ZXJuKSB7XG4gICAgICAgICAgICByZXMuZGF0YS5wYXR0ZXJuID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzLmRhdGE7XG4gICAgfVxuXG4gICAgUGFyc2VMb2NhbGVEYXRhKHJlczogUmVzVHlwZSwgY29uZmlnOiBWSVBDb25maWcpOiBMb2NhbGVEYXRhIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgY29uc3QgdHJhbnNsYXRpb25zOiB7IFtrZXk6IHN0cmluZ106IGFueX0gPSB7fTtcbiAgICAgICAgY29uc3QgZGF0YSA9IHRoaXMudmFsaWRhdGVSZXNwb25zZShyZXMpO1xuICAgICAgICBjb25zdCBuYW1lU3BhY2UgPSBnZXROYW1lU3BhY2UoY29uZmlnKTtcbiAgICAgICAgY29uc3QgcGF0dGVybiA9IHRoaXMuUGFyc2VQYXR0ZXJuc0RhdGEoZGF0YSk7XG4gICAgICAgIHRyYW5zbGF0aW9uc1tuYW1lU3BhY2VdID0gdGhpcy5QYXJzZVRyYW5zbGF0aW9uc0RhdGEoZGF0YSk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBjYXRlZ29yaWVzOiBwYXR0ZXJuLFxuICAgICAgICAgICAgbWVzc2FnZXM6IHRyYW5zbGF0aW9uc1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIFBhcnNlUGF0dGVybnNEYXRhKGRhdGE6IFJlc1R5cGUpOiBPYmplY3QgfCB1bmRlZmluZWQge1xuICAgICAgICBjb25zdCBwYXR0ZXJuID0gZGF0YSAmJiBkYXRhLnBhdHRlcm4gJiYgZGF0YS5wYXR0ZXJuLmNhdGVnb3JpZXNcbiAgICAgICAgICAgID8gZGF0YS5wYXR0ZXJuLmNhdGVnb3JpZXMgOiB1bmRlZmluZWQ7XG4gICAgICAgIHJldHVybiBwYXR0ZXJuO1xuICAgIH1cblxuICAgIFBhcnNlVHJhbnNsYXRpb25zRGF0YShkYXRhOiBSZXNUeXBlKTogT2JqZWN0IHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKCBkYXRhLm1lc3NhZ2VzICkge1xuICAgICAgICAgICAgcmV0dXJuIGRhdGEubWVzc2FnZXM7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdHJhbnNsYXRpb25zID0gZGF0YSAmJiBkYXRhLmNvbXBvbmVudHMgJiYgZGF0YS5jb21wb25lbnRzWzBdLm1lc3NhZ2VzXG4gICAgICAgICAgICA/IGRhdGEuY29tcG9uZW50c1swXS5tZXNzYWdlcyA6IHVuZGVmaW5lZDtcbiAgICAgICAgcmV0dXJuIHRyYW5zbGF0aW9ucztcbiAgICB9XG5cbiAgICBQYXJzZVN1cHBvcnRlZExhbmd1YWdlc0RhdGEocmVzOiBSZXNUeXBlKToge31bXSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLnZhbGlkYXRlUmVzcG9uc2UocmVzKTtcbiAgICAgICAgY29uc3QgbGFuZ3VhZ2VzID0gZGF0YSAmJiBkYXRhLmxhbmd1YWdlcyA/IGRhdGEubGFuZ3VhZ2VzIDogbnVsbDtcbiAgICAgICAgcmV0dXJuIGxhbmd1YWdlcztcbiAgICB9XG4gICAgUGFyc2VTdXBwb3J0ZWRSZWdpb25zRGF0YShyZXM6IFJlc1R5cGUpOiBPYmplY3QgfCB1bmRlZmluZWQge1xuICAgICAgICBjb25zdCBkYXRhID0gdGhpcy52YWxpZGF0ZVJlc3BvbnNlKHJlcyk7XG4gICAgICAgIGNvbnN0IHJlZ2lvbnMgPSBkYXRhICYmIGRhdGFbMF0gPyBkYXRhWzBdIDogbnVsbDtcbiAgICAgICAgcmV0dXJuIHJlZ2lvbnM7XG4gICAgfVxufVxuIl19