UNPKG

798 BJavaScriptView Raw
1module.exports = Class =>
2 class extends Class {
3 before(name) {
4 if (this.__after) {
5 throw new Error(
6 `Unable to set .before(${JSON.stringify(
7 name
8 )}) with existing value for .after()`
9 );
10 }
11
12 this.__before = name;
13 return this;
14 }
15
16 after(name) {
17 if (this.__before) {
18 throw new Error(
19 `Unable to set .after(${JSON.stringify(
20 name
21 )}) with existing value for .before()`
22 );
23 }
24
25 this.__after = name;
26 return this;
27 }
28
29 merge(obj, omit = []) {
30 if (obj.before) {
31 this.before(obj.before);
32 }
33
34 if (obj.after) {
35 this.after(obj.after);
36 }
37
38 return super.merge(obj, [...omit, 'before', 'after']);
39 }
40 };