UNPKG

@singleton-i18n/angular-client

Version:

Singleton client code for Angular 10.

64 lines 8.79 kB
/* * 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