UNPKG

json-restyle

Version:
159 lines (150 loc) 11.9 kB
(function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/common')) : typeof define === 'function' && define.amd ? define('json-restyle', ['exports', '@angular/core', '@angular/common'], factory) : (factory((global['json-restyle'] = {}),global.ng.core,global.ng.common)); }(this, (function (exports,i0,common) { 'use strict'; /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ var JsonRestyleService = (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: i0.Injectable, args: [{ providedIn: 'root' },] }, ]; /** @nocollapse */ JsonRestyleService.ctorParameters = function () { return []; }; /** @nocollapse */ JsonRestyleService.ngInjectableDef = i0.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 = (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: i0.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: i0.Input }], mapping: [{ type: i0.Input }] }; return JsonRestyleComponent; }()); /** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ var JsonRestyleModule = (function () { function JsonRestyleModule() { } JsonRestyleModule.decorators = [ { type: i0.NgModule, args: [{ imports: [ common.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 */ exports.JsonRestyleService = JsonRestyleService; exports.JsonRestyleComponent = JsonRestyleComponent; exports.JsonRestyleModule = JsonRestyleModule; Object.defineProperty(exports, '__esModule', { value: true }); }))); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbi1yZXN0eWxlLnVtZC5qcy5tYXAiLCJzb3VyY2VzIjpbIm5nOi8vanNvbi1yZXN0eWxlL2pzb24tcmVzdHlsZS5zZXJ2aWNlLnRzIiwibmc6Ly9qc29uLXJlc3R5bGUvanNvbi1yZXN0eWxlLmNvbXBvbmVudC50cyIsIm5nOi8vanNvbi1yZXN0eWxlL2pzb24tcmVzdHlsZS5tb2R1bGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBKc29uUmVzdHlsZVNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4vKioqXG4gKiBQVVJQT1NFICAgIDogUmVuYW1lIGtleSBpbiBqc29uIG9iamVjdFxuICoganNvbk9iamVjdCA6IFNpbmdsZSBKU09OIG9iamVjdC9BcnJheSBvZiBKU09OIG9iamVjdHNcbiAqIG1hcHBpbmdzICAgOiB7IE9sZCBrZXkgTmFtZTEgOiBOZXcga2V5IE5hbWUxLCBPbGQga2V5IE5hbWUyIDogTmV3IGtleSBOYW1lMiwgLi4uIH1cbiAqIFRPRE8gICAgICAgOiBOZXN0ZWQgSlNPTiBPYmplY3RcbiAqL1xuICBwdWJsaWMgcmVmb3JtKGpzb25PYmplY3QsIG1hcHBpbmdzKSB7XG4gICAgbGV0IGRhdGE6IGFueTtcbiAgICBpZiAoanNvbk9iamVjdCBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICBkYXRhID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgIGFycmF5OiBqc29uT2JqZWN0XG4gICAgICAgICAgICB9KSkuYXJyYXk7XG4gICAgICBmb3IgKGxldCBpPTA7IGk8ZGF0YS5sZW5ndGg7IGkrKykge1xuICAgICAgICBmb3IgKHZhciBwcm9wZXJ0eSBpbiBtYXBwaW5ncykge1xuICAgICAgICAgIGRhdGFbaV1bbWFwcGluZ3NbcHJvcGVydHldXSA9IGRhdGFbaV1bcHJvcGVydHldO1xuICAgICAgICAgIGRlbGV0ZSBkYXRhW2ldW3Byb3BlcnR5XTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChqc29uT2JqZWN0IGluc3RhbmNlb2YgT2JqZWN0KSB7XG4gICAgICAgIGRhdGEgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGpzb25PYmplY3QpKTtcbiAgICAgICAgZm9yICh2YXIgcHJvcGVydHkgaW4gbWFwcGluZ3MpIHtcbiAgICAgICAgICBkYXRhW21hcHBpbmdzW3Byb3BlcnR5XV0gPSBkYXRhW3Byb3BlcnR5XTtcbiAgICAgICAgICBkZWxldGUgZGF0YVtwcm9wZXJ0eV07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBqc29uT2JqZWN0O1xuICB9XG59XG4iLCJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSnNvblJlc3R5bGVTZXJ2aWNlIH0gZnJvbSAnLi9qc29uLXJlc3R5bGUuc2VydmljZSc7XG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdqc29uLXJlc3R5bGUnLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxwPlxuICAgICAgUmF3IERhdGE6IHt7ZGF0YSB8IGpzb259fVxuICAgIDwvcD5cbiAgICA8cD5cbiAgICAgIE1vZGlmaWVkIERhdGE6IHt7bW9kaWZpZWREYXRhIHwganNvbn19XG4gICAgPC9wPlxuICBgLFxuICBzdHlsZXM6IFtdXG59KVxuZXhwb3J0IGNsYXNzIEpzb25SZXN0eWxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBkYXRhOiBhbnk7XG4gIEBJbnB1dCgpIG1hcHBpbmc6IGFueTtcblxuICBwdWJsaWMgbW9kaWZpZWREYXRhOiBhbnk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBqc29uU2VydmljZTogSnNvblJlc3R5bGVTZXJ2aWNlKSB7IH1cblxuICBuZ09uSW5pdCgpIHtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlcyAmJiAoY2hhbmdlcy5kYXRhICYmIGNoYW5nZXMuZGF0YS5wcmV2aW91c1ZhbHVlICE9IGNoYW5nZXMuZGF0YS5jdXJyZW50VmFsdWUpXG4gICAgfHwgKGNoYW5nZXMubWFwcGluZyAmJiBjaGFuZ2VzLm1hcHBpbmcucHJldmlvdXNWYWx1ZSAhPSBjaGFuZ2VzLm1hcHBpbmcuY3VycmVudFZhbHVlKSkge1xuICAgICAgdGhpcy5tb2RpZmllZERhdGEgPSB0aGlzLmpzb25TZXJ2aWNlLnJlZm9ybSh0aGlzLmRhdGEsIHRoaXMubWFwcGluZyk7XG4gICAgfVxuICB9XG59XG4iLCJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJzsgXG5pbXBvcnQgeyBKc29uUmVzdHlsZUNvbXBvbmVudCB9IGZyb20gJy4vanNvbi1yZXN0eWxlLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGVcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbSnNvblJlc3R5bGVDb21wb25lbnRdLFxuICBleHBvcnRzOiBbSnNvblJlc3R5bGVDb21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIEpzb25SZXN0eWxlTW9kdWxlIHsgfVxuIl0sIm5hbWVzIjpbIkluamVjdGFibGUiLCJDb21wb25lbnQiLCJJbnB1dCIsIk5nTW9kdWxlIiwiQ29tbW9uTW9kdWxlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUE7UUFNRTtTQUFpQjs7Ozs7Ozs7Ozs7UUFRVixtQ0FB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