Move more shared utils into utils package and reuse them
This commit is contained in:
18
packages/utils/src/class_utils.ts
Normal file
18
packages/utils/src/class_utils.ts
Normal 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;
|
||||
},
|
||||
};
|
Reference in New Issue
Block a user