@@ -2,19 +2,14 @@ import { ContractParameters, DiscoveryOutput } from '@l2beat/discovery-types'
22import { assign , parse , stringify } from 'comment-json'
33import * as fs from 'fs/promises'
44
5- import { ContractOverrides } from '../config /DiscoveryOverrides'
5+ import { ContractOverrides } from './DiscoveryOverrides'
66import {
77 MutableDiscoveryOverrides ,
88 MutableOverride ,
9- } from '../config /MutableDiscoveryOverrides'
10- import { RawDiscoveryConfig } from '../config /RawDiscoveryConfig'
9+ } from './MutableDiscoveryOverrides'
10+ import { RawDiscoveryConfig } from './RawDiscoveryConfig'
1111
12- interface IgnoreResult {
13- possible : string [ ]
14- ignored : string [ ]
15- }
16-
17- export class InteractiveOverridesManager {
12+ export class DiscoveryOverridesBuilder {
1813 private readonly mutableOverrides : MutableDiscoveryOverrides
1914
2015 constructor (
@@ -30,93 +25,33 @@ export class InteractiveOverridesManager {
3025 return [ ...this . output . contracts ]
3126 }
3227
33- getWatchMode ( contract : ContractParameters ) : {
34- all : string [ ]
35- ignored : string [ ]
36- } {
28+ getWatchMode ( contract : ContractParameters ) : string [ ] {
3729 const isDiscoveryIgnored = this . getIgnoreDiscovery ( contract )
38- const ignoredMethods = this . getIgnoredMethods ( contract )
3930
4031 if ( isDiscoveryIgnored ) {
41- return {
42- all : [ ] ,
43- ignored : [ ] ,
44- }
32+ return [ ]
4533 }
4634
4735 const overrides = this . getSafeOverride ( contract )
4836
49- const allProperties = Object . keys ( contract . values ?? { } )
50-
5137 const ignoredInWatchMode = overrides ?. ignoreInWatchMode ?? [ ]
5238
53- // All discovered keys + look ahead for all ignored methods
54- const possibleMethods = [
55- ...new Set ( [ ...allProperties , ...ignoredMethods . possible ] ) ,
56- ]
57- . filter ( ( method ) => ! this . isCustomHandler ( contract , method ) )
58- . filter ( ( method ) => ! ignoredMethods . ignored . includes ( method ) )
59-
60- return {
61- all : possibleMethods ,
62- ignored : ignoredInWatchMode ,
63- }
39+ return ignoredInWatchMode
6440 }
6541
66- getIgnoredRelatives ( contract : ContractParameters ) : IgnoreResult {
67- const isDiscoveryIgnored = this . getIgnoreDiscovery ( contract )
68- const ignoredMethods = this . getIgnoredMethods ( contract )
69-
70- if ( isDiscoveryIgnored ) {
71- return {
72- possible : [ ] ,
73- ignored : [ ] ,
74- }
75- }
76-
42+ getIgnoredRelatives ( contract : ContractParameters ) : string [ ] {
7743 const overrides = this . getSafeOverride ( contract )
7844
79- const allProperties = Object . keys ( contract . values ?? { } )
80-
8145 const ignoredRelatives = overrides ?. ignoreRelatives ?? [ ]
8246
83- // All discovered keys + look ahead for all ignored methods
84- const possibleMethods = [
85- ...new Set ( [ ...allProperties , ...ignoredMethods . possible ] ) ,
86- ]
87- . filter ( ( method ) => ! this . isCustomHandler ( contract , method ) )
88- . filter ( ( method ) => ! ignoredMethods . ignored . includes ( method ) )
89-
90- return {
91- possible : possibleMethods ,
92- ignored : ignoredRelatives ,
93- }
47+ return ignoredRelatives
9448 }
9549
96- getIgnoredMethods ( contract : ContractParameters ) : IgnoreResult {
97- const isDiscoveryIgnored = this . getIgnoreDiscovery ( contract )
98-
99- if ( isDiscoveryIgnored ) {
100- return {
101- possible : [ ] ,
102- ignored : [ ] ,
103- }
104- }
105-
50+ getIgnoredMethods ( contract : ContractParameters ) : string [ ] {
10651 const overrides = this . getSafeOverride ( contract )
107-
10852 const ignoredMethods = overrides ?. ignoreMethods ?? [ ]
10953
110- const allProperties = Object . keys ( contract . values ?? { } )
111-
112- const possibleMethods = [
113- ...new Set ( [ ...allProperties , ...ignoredMethods ] ) ,
114- ] . filter ( ( method ) => ! this . isCustomHandler ( contract , method ) )
115-
116- return {
117- possible : possibleMethods ,
118- ignored : ignoredMethods ,
119- }
54+ return ignoredMethods
12055 }
12156
12257 getIgnoreDiscovery ( contract : ContractParameters ) : boolean {
@@ -146,12 +81,12 @@ export class InteractiveOverridesManager {
14681 }
14782
14883 // Exclude ignoreMethods from watch mode and relatives completely
149- const validWatchMode = ignoredInWatchMode . ignored . filter (
150- ( method ) => ! ignoredMethods . ignored . includes ( method ) ,
84+ const validWatchMode = ignoredInWatchMode . filter (
85+ ( method ) => ! ignoredMethods . includes ( method ) ,
15186 )
15287
153- const validRelatives = ignoredRelatives . ignored . filter (
154- ( method ) => ! ignoredMethods . ignored . includes ( method ) ,
88+ const validRelatives = ignoredRelatives . filter (
89+ ( method ) => ! ignoredMethods . includes ( method ) ,
15590 )
15691
15792 this . mutableOverrides . set ( contract , {
@@ -205,7 +140,7 @@ export class InteractiveOverridesManager {
205140 }
206141 }
207142
208- private isCustomHandler (
143+ public isCustomHandler (
209144 contract : ContractParameters ,
210145 property : string ,
211146 ) : boolean {
0 commit comments