typescript-object-helper
Version:
A simple dependency to aid in mapping and instantiating typescript classes
57 lines • 2.41 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.addIncrementer = exports.logger = exports.deepCopy = exports.instantiateFromArrayOperator = exports.instantiateFromJsonOperator = void 0;
const lodash_1 = __importDefault(require("lodash"));
const operators_1 = require("rxjs/operators");
const object_helper_functions_1 = require("./object-helper-functions");
function instantiateFromJsonOperator(// the generic parameter helps us conserve the type of the observable
classCast // add an optional parameter to prefix the logging
) {
return (source$) => source$.pipe((0, operators_1.map)((res => (0, object_helper_functions_1.copyObject)(res, classCast))));
}
exports.instantiateFromJsonOperator = instantiateFromJsonOperator;
function instantiateFromArrayOperator(// the generic parameter helps us conserve the type of the observable
classCast // add an optional parameter to prefix the logging
) {
return (source$) => source$.pipe((0, operators_1.map)(res => (0, object_helper_functions_1.copyArray)(res, classCast)));
}
exports.instantiateFromArrayOperator = instantiateFromArrayOperator;
function deepCopy() {
return (source$) => source$.pipe((0, operators_1.map)(val => {
if (typeof val === 'object') {
return (0, lodash_1.default)(val);
}
return val;
}));
}
exports.deepCopy = deepCopy;
function logger(label, ...args) {
console.log.bind(console);
const callStack = new Error('(Not really, just a stack trace...)').stack;
const formattedLabel = label ? ` - (${label}): ` : ':';
const completeLabel = `LOGGER${formattedLabel}`;
const formattedArgs = [];
args.forEach((arg) => {
formattedArgs.push(arg);
formattedArgs.push(',');
});
return (source$) => source$.pipe((0, operators_1.tap)((val) => {
console.log(completeLabel, ...formattedArgs, val);
console.log(callStack);
}));
}
exports.logger = logger;
function addIncrementer() {
let counter = 0;
return function foo(source) {
return source.pipe((0, operators_1.map)((value) => {
counter++;
return [counter, value];
}));
};
}
exports.addIncrementer = addIncrementer;
//# sourceMappingURL=rxjs-operators.js.map