mattermost-mobile/app/utils/mix.ts

17 lines
428 B
TypeScript

// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
class MixinBuilder {
superclass: any;
constructor(superclass: any) {
this.superclass = superclass;
}
with(...mixins: any[]) {
return mixins.reduce((c, mixin) => mixin(c), this.superclass);
}
}
const mix = (superclass: any) => new MixinBuilder(superclass);
export default mix;