1
+ const { readdirSync, rmSync } = require ( 'fs' ) ;
2
+ const walkSync = require ( 'walk-sync' ) ;
3
+
4
+ const files = readdirSync ( 'rev-index' ) ;
5
+
6
+ const plurals = {
7
+ namespace : 'namespaces' ,
8
+ class : 'classes' ,
9
+ module : 'modules' ,
10
+ }
11
+
12
+ function deleteUnusedFilesForRevIndex ( file ) {
13
+ const json = require ( file ) ;
14
+
15
+ let project ;
16
+
17
+ if ( json . data . id . match ( / ^ e m b e r - \d / ) ) {
18
+ project = 'ember' ;
19
+ } else if ( json . data . id . match ( / ^ e m b e r - d a t a - \d / ) ) {
20
+ project = 'ember-data' ;
21
+ } else {
22
+ console . log ( 'error figuring out project for' , file ) ;
23
+ return ;
24
+ }
25
+
26
+ const version = json . data . attributes . version ;
27
+ const knownFiles = [ ] ;
28
+
29
+ [ 'module' , 'class' , 'namespace' ] . forEach ( entity => {
30
+ for ( const key in json . meta [ entity ] ) {
31
+
32
+
33
+ knownFiles . push ( `${ plurals [ entity ] } /${ json . meta [ entity ] [ key ] } .json` ) ;
34
+ }
35
+ } )
36
+
37
+
38
+ const paths = walkSync ( `json-docs/${ project } /${ version } ` , { directories : false } ) ;
39
+
40
+ paths . forEach ( file => {
41
+ if ( file . startsWith ( 'project-versions/' ) ) {
42
+ // ignore project-versions folder
43
+ return ;
44
+ }
45
+
46
+ if ( file . startsWith ( 'missings/' ) ) {
47
+ // I have no idea what a "missings" is but tests fail if we don't ignore them
48
+ return ;
49
+ }
50
+
51
+ if ( ! knownFiles . includes ( file ) ) {
52
+ rmSync ( `json-docs/${ project } /${ version } /${ file } ` )
53
+ }
54
+ } )
55
+
56
+ }
57
+
58
+ files . forEach ( file => {
59
+ deleteUnusedFilesForRevIndex ( `./rev-index/${ file } ` )
60
+ } ) ;
0 commit comments