Skip to content

Commit 8082ddc

Browse files
mschinissivakumar-kailasam
authored andcommitted
refactor(api): Refactor api to use the new function factories & export run function
1 parent 87a97d4 commit 8082ddc

File tree

1 file changed

+36
-29
lines changed

1 file changed

+36
-29
lines changed

src/api.js

Lines changed: 36 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -3,42 +3,49 @@ require('dotenv').config();
33
import Bluebird from 'bluebird';
44
import logger from 'src/utils/logger';
55
import drivers from 'src/drivers';
6-
import { readTmpFile, readTmpFileAsync } from 'src/utils/fs';
6+
import { readTmpFileFactory, readTmpFileAsyncFactory } from 'src/utils/fs';
77
import schemas from './schemas';
88

9+
// Get 'readTmpFile' and 'readTmpFileAsync' bound by 'api'
10+
const PROJECT_TYPE = 'api';
11+
const readTmpFile = readTmpFileFactory(PROJECT_TYPE);
12+
const readTmpFileAsync = readTmpFileAsyncFactory(PROJECT_TYPE);
13+
914
const { DRIVER } = process.env;
1015

1116
const SelectedDriver = drivers[DRIVER];
1217

13-
// Initialise driver
14-
SelectedDriver.init('modules');
15-
SelectedDriver.init('classes');
16-
SelectedDriver.init('methods');
17-
18-
// Load ember.json which includes all available ember versions.
19-
readTmpFileAsync('rev-index/ember.json')
20-
// Extract available versions
21-
.then(emberJson => emberJson.meta.availableVersions)
22-
// Clear the driver contents
23-
.tap(clearDriver)
24-
// Grab the json file of each ember version
25-
.map(readEmberIndexFileForVersion)
26-
// Fetch all public modules and public classes
27-
.map(fetchPublicModuleClassesForEmberVersion)
28-
// Run the schema against all data stored
29-
.map(mapDataForVersion)
30-
// Write out to selected driver.
31-
.map(writeToDriver)
32-
// Load ember-data.json which includes all available ember-data versions
33-
.then(() => readTmpFileAsync('rev-index/ember-data.json'))
34-
.then(emberJson => emberJson.meta.availableVersions)
35-
.map(readEmberDataIndexFileForVersion)
36-
.map(fetchPublicModuleClassesForEmberDataVersion)
37-
.map(mapDataForVersion)
38-
.map(writeToDriver)
39-
// Handle script error
40-
.catch(errorHandler);
18+
export function run() {
19+
// Initialise drivers
20+
SelectedDriver.init('modules');
21+
SelectedDriver.init('classes');
22+
SelectedDriver.init('methods');
23+
24+
// Load ember.json which includes all available ember versions.
25+
return readTmpFileAsync('rev-index/ember.json')
26+
// Extract available versions
27+
.then(emberJson => emberJson.meta.availableVersions)
28+
// Clear the driver contents
29+
.tap(clearDriver)
30+
// Grab the json file of each ember version
31+
.map(readEmberIndexFileForVersion)
32+
// Fetch all public modules and public classes
33+
.map(fetchPublicModuleClassesForEmberVersion)
34+
// Run the schema against all data stored
35+
.map(mapDataForVersion)
36+
// Write out to selected driver.
37+
.map(writeToDriver)
38+
// Load ember-data.json which includes all available ember-data versions
39+
.then(() => readTmpFileAsync('rev-index/ember-data.json'))
40+
.then(emberJson => emberJson.meta.availableVersions)
41+
.map(readEmberDataIndexFileForVersion)
42+
.map(fetchPublicModuleClassesForEmberDataVersion)
43+
.map(mapDataForVersion)
44+
.map(writeToDriver)
45+
// Handle script error
46+
.catch(errorHandler);
4147

48+
}
4249

4350
function readEmberIndexFileForVersion(version) {
4451
return readIndexFileForVersion(version, 'ember');

0 commit comments

Comments
 (0)