@@ -14,6 +14,68 @@ import revProjVersionFiles from './lib/rev-docs'
14
14
import { downloadExistingDocsToLocal , uploadDocsToS3 } from './lib/s3-sync'
15
15
import fixBorkedYuidocFiles from './lib/fix-borked-yuidoc-files'
16
16
17
+ async function transformObject ( doc , projectName , docVersion ) {
18
+ try {
19
+ const object = await transformYuiObject ( [ doc ] , projectName )
20
+ const { data } = markup ( object )
21
+ const giantDocument = { data }
22
+ console . log ( 'normalizing dependencies' )
23
+ let transformed = await normalizeEmberDependencies ( giantDocument )
24
+ transformed = await createClassesOnDisk ( transformed , projectName , docVersion )
25
+ console . log ( `Finished processing ${ projectName } -${ docVersion } ` )
26
+ transformed = getVersionIndex ( transformed , projectName )
27
+ revProjVersionFiles ( projectName , docVersion )
28
+ return transformed
29
+ } catch ( e ) {
30
+ console . log ( e )
31
+ throw e
32
+ }
33
+ }
34
+
35
+ async function transformProject ( project , projectName ) {
36
+ const docs = await RSVP . map ( project , doc => {
37
+ let docVersion = doc . version
38
+ console . log ( `Starting to process ${ projectName } -${ docVersion } ` )
39
+
40
+ const existingFolder = `tmp/json-docs/${ projectName } /${ docVersion } `
41
+ if ( fs . existsSync ( existingFolder ) ) {
42
+ rimraf . sync ( existingFolder )
43
+ }
44
+
45
+ return transformObject ( doc , projectName , docVersion )
46
+ } ) . catch ( ( e ) => {
47
+ console . log ( e )
48
+ console . error ( 'wat' )
49
+ } )
50
+
51
+ let [ docToSave , ...remainingDocs ] = docs . filter ( ( { data } ) => data . id === projectName )
52
+
53
+ if ( ! docToSave ) {
54
+ return Promise . resolve ( )
55
+ }
56
+
57
+ let existingDoc = `tmp/json-docs/${ projectName } /projects/${ projectName } .json`
58
+ if ( fs . existsSync ( existingDoc ) ) {
59
+ existingDoc = fs . readJsonSync ( existingDoc )
60
+ docToSave . data . relationships [ 'project-versions' ] . data = docToSave . data . relationships [
61
+ 'project-versions'
62
+ ] . data . concat ( existingDoc . data . relationships [ 'project-versions' ] . data )
63
+ }
64
+
65
+ remainingDocs . forEach ( ( { data } ) => {
66
+ docToSave . data . relationships [ 'project-versions' ] . data = docToSave . data . relationships [
67
+ 'project-versions'
68
+ ] . data . concat ( data . relationships [ 'project-versions' ] . data )
69
+ } )
70
+ return saveDoc ( docToSave , projectName ) . then ( ( ) => projectName )
71
+ }
72
+
73
+ function transformProjectsDeep ( projects , docs ) {
74
+ return RSVP . map ( projects , projectName => {
75
+ return transformProject ( docs [ projectName ] , projectName )
76
+ } )
77
+ }
78
+
17
79
export async function apiDocsProcessor (
18
80
projects ,
19
81
specificDocsVersion ,
@@ -38,62 +100,12 @@ export async function apiDocsProcessor(
38
100
console . log ( 'Skipping downloading docs' )
39
101
}
40
102
41
- await readDocs ( projects , specificDocsVersion , ignorePreviouslyIndexedDoc , runClean )
42
- . then ( docs => {
43
- return RSVP . map ( projects , projectName => {
44
- return RSVP . map ( docs [ projectName ] , doc => {
45
- let docVersion = doc . version
46
- console . log ( `Starting to process ${ projectName } -${ docVersion } ` )
47
-
48
- const existingFolder = `tmp/json-docs/${ projectName } /${ docVersion } `
49
- if ( fs . existsSync ( existingFolder ) ) {
50
- rimraf . sync ( existingFolder )
51
- }
103
+ const _transformProjectsDeep = transformProjectsDeep . bind ( null , projects )
52
104
53
- return transformYuiObject ( [ doc ] , projectName )
54
- . then ( markup )
55
- . then ( ( { data } ) => {
56
- let giantDocument = { data }
57
- console . log ( 'normalizing dependencies' )
58
- return normalizeEmberDependencies ( giantDocument )
59
- } )
60
- . then ( doc => {
61
- return createClassesOnDisk ( doc , projectName , docVersion )
62
- } )
63
- . then ( doc => {
64
- console . log ( `Finished processing ${ projectName } -${ docVersion } ` )
65
- return getVersionIndex ( doc , projectName )
66
- } )
67
- . then ( doc => {
68
- revProjVersionFiles ( projectName , docVersion )
69
- return doc
70
- } )
71
- } ) . then ( docs => {
72
- let [ docToSave , ...remainingDocs ] = docs . filter ( ( { data } ) => data . id === projectName )
73
-
74
- if ( ! docToSave ) {
75
- return Promise . resolve ( )
76
- }
77
-
78
- let existingDoc = `tmp/json-docs/${ projectName } /projects/${ projectName } .json`
79
- if ( fs . existsSync ( existingDoc ) ) {
80
- existingDoc = fs . readJsonSync ( existingDoc )
81
- docToSave . data . relationships [ 'project-versions' ] . data = docToSave . data . relationships [
82
- 'project-versions'
83
- ] . data . concat ( existingDoc . data . relationships [ 'project-versions' ] . data )
84
- }
85
-
86
- remainingDocs . forEach ( ( { data } ) => {
87
- docToSave . data . relationships [ 'project-versions' ] . data = docToSave . data . relationships [
88
- 'project-versions'
89
- ] . data . concat ( data . relationships [ 'project-versions' ] . data )
90
- } )
91
- return saveDoc ( docToSave , projectName ) . then ( ( ) => projectName )
92
- } )
93
- } )
94
- } )
105
+ await readDocs ( projects , specificDocsVersion , ignorePreviouslyIndexedDoc , runClean )
106
+ . then ( _transformProjectsDeep )
95
107
. then ( ( ) =>
96
- [ 'ember' , 'ember-data' ] . map ( project => {
108
+ projects . map ( project => {
97
109
const projRevFile = `tmp/rev-index/${ project } .json`
98
110
let projRevFileContent = fs . readJsonSync (
99
111
`tmp/json-docs/${ project } /projects/${ project } .json`
0 commit comments