Move more shared utils into utils package and reuse them

This commit is contained in:
Leonid Logvinov
2017-12-08 18:01:40 +03:00
parent 6120a43fff
commit cb596c1413
29 changed files with 41 additions and 171 deletions

View File

@@ -0,0 +1,18 @@
import * as _ from 'lodash';
export const classUtils = {
// This is useful for classes that have nested methods. Nested methods don't get bound out of the box.
bindAll(self: any, exclude: string[] = ['contructor'], thisArg?: any): void {
for (const key of Object.getOwnPropertyNames(self)) {
const val = self[key];
if (!_.includes(exclude, key)) {
if (_.isFunction(val)) {
self[key] = val.bind(thisArg || self);
} else if (_.isObject(val)) {
classUtils.bindAll(val, exclude, self);
}
}
}
return self;
},
};