UNPKG

json-restyle

Version:
148 lines (141 loc) 10.6 kB
import { Injectable, Component, Input, NgModule, defineInjectable } from '@angular/core'; import { CommonModule } from '@angular/common'; /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ var JsonRestyleService = /** @class */ (function () { function JsonRestyleService() { } /** * * PURPOSE : Rename key in json object * jsonObject : Single JSON object/Array of JSON objects * mappings : { Old key Name1 : New key Name1, Old key Name2 : New key Name2, ... } * TODO : Nested JSON Object * @param {?} jsonObject * @param {?} mappings * @return {?} */ JsonRestyleService.prototype.reform = /** * * PURPOSE : Rename key in json object * jsonObject : Single JSON object/Array of JSON objects * mappings : { Old key Name1 : New key Name1, Old key Name2 : New key Name2, ... } * TODO : Nested JSON Object * @param {?} jsonObject * @param {?} mappings * @return {?} */ function (jsonObject, mappings) { /** @type {?} */ var data; if (jsonObject instanceof Array) { data = JSON.parse(JSON.stringify({ array: jsonObject })).array; for (var i = 0; i < data.length; i++) { for (var property in mappings) { data[i][mappings[property]] = data[i][property]; delete data[i][property]; } } return data; } else { if (jsonObject instanceof Object) { data = JSON.parse(JSON.stringify(jsonObject)); for (var property in mappings) { data[mappings[property]] = data[property]; delete data[property]; } return data; } } return jsonObject; }; JsonRestyleService.decorators = [ { type: Injectable, args: [{ providedIn: 'root' },] }, ]; /** @nocollapse */ JsonRestyleService.ctorParameters = function () { return []; }; /** @nocollapse */ JsonRestyleService.ngInjectableDef = defineInjectable({ factory: function JsonRestyleService_Factory() { return new JsonRestyleService(); }, token: JsonRestyleService, providedIn: "root" }); return JsonRestyleService; }()); /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ var JsonRestyleComponent = /** @class */ (function () { function JsonRestyleComponent(jsonService) { this.jsonService = jsonService; } /** * @return {?} */ JsonRestyleComponent.prototype.ngOnInit = /** * @return {?} */ function () { }; /** * @param {?} changes * @return {?} */ JsonRestyleComponent.prototype.ngOnChanges = /** * @param {?} changes * @return {?} */ function (changes) { if (changes && (changes["data"] && changes["data"].previousValue != changes["data"].currentValue) || (changes["mapping"] && changes["mapping"].previousValue != changes["mapping"].currentValue)) { this.modifiedData = this.jsonService.reform(this.data, this.mapping); } }; JsonRestyleComponent.decorators = [ { type: Component, args: [{ selector: 'json-restyle', template: "\n <p>\n Raw Data: {{data | json}}\n </p>\n <p>\n Modified Data: {{modifiedData | json}}\n </p>\n ", styles: [] },] }, ]; /** @nocollapse */ JsonRestyleComponent.ctorParameters = function () { return [ { type: JsonRestyleService } ]; }; JsonRestyleComponent.propDecorators = { data: [{ type: Input }], mapping: [{ type: Input }] }; return JsonRestyleComponent; }()); /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ var JsonRestyleModule = /** @class */ (function () { function JsonRestyleModule() { } JsonRestyleModule.decorators = [ { type: NgModule, args: [{ imports: [ CommonModule ], declarations: [JsonRestyleComponent], exports: [JsonRestyleComponent] },] }, ]; return JsonRestyleModule; }()); /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ export { JsonRestyleService, JsonRestyleComponent, JsonRestyleModule }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbi1yZXN0eWxlLmpzLm1hcCIsInNvdXJjZXMiOlsibmc6Ly9qc29uLXJlc3R5bGUvanNvbi1yZXN0eWxlLnNlcnZpY2UudHMiLCJuZzovL2pzb24tcmVzdHlsZS9qc29uLXJlc3R5bGUuY29tcG9uZW50LnRzIiwibmc6Ly9qc29uLXJlc3R5bGUvanNvbi1yZXN0eWxlLm1vZHVsZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEpzb25SZXN0eWxlU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbi8qKipcbiAqIFBVUlBPU0UgICAgOiBSZW5hbWUga2V5IGluIGpzb24gb2JqZWN0XG4gKiBqc29uT2JqZWN0IDogU2luZ2xlIEpTT04gb2JqZWN0L0FycmF5IG9mIEpTT04gb2JqZWN0c1xuICogbWFwcGluZ3MgICA6IHsgT2xkIGtleSBOYW1lMSA6IE5ldyBrZXkgTmFtZTEsIE9sZCBrZXkgTmFtZTIgOiBOZXcga2V5IE5hbWUyLCAuLi4gfVxuICogVE9ETyAgICAgICA6IE5lc3RlZCBKU09OIE9iamVjdFxuICovXG4gIHB1YmxpYyByZWZvcm0oanNvbk9iamVjdCwgbWFwcGluZ3MpIHtcbiAgICBsZXQgZGF0YTogYW55O1xuICAgIGlmIChqc29uT2JqZWN0IGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgIGRhdGEgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgYXJyYXk6IGpzb25PYmplY3RcbiAgICAgICAgICAgIH0pKS5hcnJheTtcbiAgICAgIGZvciAobGV0IGk9MDsgaTxkYXRhLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGZvciAodmFyIHByb3BlcnR5IGluIG1hcHBpbmdzKSB7XG4gICAgICAgICAgZGF0YVtpXVttYXBwaW5nc1twcm9wZXJ0eV1dID0gZGF0YVtpXVtwcm9wZXJ0eV07XG4gICAgICAgICAgZGVsZXRlIGRhdGFbaV1bcHJvcGVydHldO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gZGF0YTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKGpzb25PYmplY3QgaW5zdGFuY2VvZiBPYmplY3QpIHtcbiAgICAgICAgZGF0YSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoanNvbk9iamVjdCkpO1xuICAgICAgICBmb3IgKHZhciBwcm9wZXJ0eSBpbiBtYXBwaW5ncykge1xuICAgICAgICAgIGRhdGFbbWFwcGluZ3NbcHJvcGVydHldXSA9IGRhdGFbcHJvcGVydHldO1xuICAgICAgICAgIGRlbGV0ZSBkYXRhW3Byb3BlcnR5XTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGpzb25PYmplY3Q7XG4gIH1cbn1cbiIsImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBKc29uUmVzdHlsZVNlcnZpY2UgfSBmcm9tICcuL2pzb24tcmVzdHlsZS5zZXJ2aWNlJztcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2pzb24tcmVzdHlsZScsXG4gIHRlbXBsYXRlOiBgXG4gICAgPHA+XG4gICAgICBSYXcgRGF0YToge3tkYXRhIHwganNvbn19XG4gICAgPC9wPlxuICAgIDxwPlxuICAgICAgTW9kaWZpZWQgRGF0YToge3ttb2RpZmllZERhdGEgfCBqc29ufX1cbiAgICA8L3A+XG4gIGAsXG4gIHN0eWxlczogW11cbn0pXG5leHBvcnQgY2xhc3MgSnNvblJlc3R5bGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIGRhdGE6IGFueTtcbiAgQElucHV0KCkgbWFwcGluZzogYW55O1xuXG4gIHB1YmxpYyBtb2RpZmllZERhdGE6IGFueTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGpzb25TZXJ2aWNlOiBKc29uUmVzdHlsZVNlcnZpY2UpIHsgfVxuXG4gIG5nT25Jbml0KCkge1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzICYmIChjaGFuZ2VzLmRhdGEgJiYgY2hhbmdlcy5kYXRhLnByZXZpb3VzVmFsdWUgIT0gY2hhbmdlcy5kYXRhLmN1cnJlbnRWYWx1ZSlcbiAgICB8fCAoY2hhbmdlcy5tYXBwaW5nICYmIGNoYW5nZXMubWFwcGluZy5wcmV2aW91c1ZhbHVlICE9IGNoYW5nZXMubWFwcGluZy5jdXJyZW50VmFsdWUpKSB7XG4gICAgICB0aGlzLm1vZGlmaWVkRGF0YSA9IHRoaXMuanNvblNlcnZpY2UucmVmb3JtKHRoaXMuZGF0YSwgdGhpcy5tYXBwaW5nKTtcbiAgICB9XG4gIH1cbn1cbiIsImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nOyBcbmltcG9ydCB7IEpzb25SZXN0eWxlQ29tcG9uZW50IH0gZnJvbSAnLi9qc29uLXJlc3R5bGUuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZVxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtKc29uUmVzdHlsZUNvbXBvbmVudF0sXG4gIGV4cG9ydHM6IFtKc29uUmVzdHlsZUNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgSnNvblJlc3R5bGVNb2R1bGUgeyB9XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBO0lBTUU7S0FBaUI7Ozs7Ozs7Ozs7O0lBUVYsbUNBQU07Ozs7Ozs7Ozs7Y0FBQyxVQUFVLEVBQUUsUUFBUTs7UUFDaEMsSUFBSSxJQUFJLENBQU07UUFDZCxJQUFJLFVBQVUsWUFBWSxLQUFLLEVBQUU7WUFDL0IsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztnQkFDekIsS0FBSyxFQUFFLFVBQVU7YUFDbEIsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1lBQ2hCLEtBQUssSUFBSSxDQUFDLEdBQUMsQ0FBQyxFQUFFLENBQUMsR0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUNoQyxLQUFLLElBQUksUUFBUSxJQUFJLFFBQVEsRUFBRTtvQkFDN0IsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQztvQkFDaEQsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUM7aUJBQzFCO2FBQ0Y7WUFDRCxPQUFPLElBQUksQ0FBQztTQUNiO2FBQU07WUFDTCxJQUFJLFVBQVUsWUFBWSxNQUFNLEVBQUU7Z0JBQ2hDLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztnQkFDOUMsS0FBSyxJQUFJLFFBQVEsSUFBSSxRQUFRLEVBQUU7b0JBQzdCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7b0JBQzFDLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2lCQUN2QjtnQkFDRCxPQUFPLElBQUksQ0FBQzthQUNiO1NBQ0Y7UUFDRCxPQUFPLFVBQVUsQ0FBQzs7O2dCQW5DckIsVUFBVSxTQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7Ozs7NkJBSkQ7Ozs7Ozs7QUNBQTtJQW9CRSw4QkFBb0IsV0FBK0I7UUFBL0IsZ0JBQVcsR0FBWCxXQUFXLENBQW9CO0tBQUs7Ozs7SUFFeEQsdUNBQVE7OztJQUFSO0tBQ0M7Ozs7O0lBRUQsMENBQVc7Ozs7SUFBWCxVQUFZLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxLQUFLLE9BQU8sWUFBUyxPQUFPLFNBQU0sYUFBYSxJQUFJLE9BQU8sU0FBTSxZQUFZLENBQUM7Z0JBQ3BGLE9BQU8sZUFBWSxPQUFPLFlBQVMsYUFBYSxJQUFJLE9BQU8sWUFBUyxZQUFZLENBQUMsRUFBRTtZQUNyRixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ3RFO0tBQ0Y7O2dCQTVCRixTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLGNBQWM7b0JBQ3hCLFFBQVEsRUFBRSwySEFPVDtvQkFDRCxNQUFNLEVBQUUsRUFBRTtpQkFDWDs7OztnQkFaUSxrQkFBa0I7Ozt1QkFjeEIsS0FBSzswQkFDTCxLQUFLOzsrQkFoQlI7Ozs7Ozs7QUNBQTs7OztnQkFJQyxRQUFRLFNBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7cUJBQ2I7b0JBQ0QsWUFBWSxFQUFFLENBQUMsb0JBQW9CLENBQUM7b0JBQ3BDLE9BQU8sRUFBRSxDQUFDLG9CQUFvQixDQUFDO2lCQUNoQzs7NEJBVkQ7Ozs7Ozs7Ozs7Ozs7OzsifQ==