UNPKG

typescript-object-helper

Version:

A simple dependency to aid in mapping and instantiating typescript classes

57 lines 2.41 kB
"use strict"; 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