json-restyle
Version:
Rename keys of JSON data
159 lines (150 loc) • 11.9 kB
JavaScript
(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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