Skip to content

Commit c29a517

Browse files
move domain/handle-dependencies to TS
1 parent 9cb6da2 commit c29a517

20 files changed

+156
-95
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,13 @@
1-
'use strict';
1+
import strings from '../../../resources';
22

3-
const strings = require('../../../resources').default;
4-
5-
module.exports = (options, cb) => {
3+
export default function ensureCompilerIsDeclaredAsDevDependency(
4+
options: {
5+
componentPath: string;
6+
pkg: { devDependencies: Dictionary<string> };
7+
template: string;
8+
},
9+
cb: Callback<string, string>
10+
) {
611
const { componentPath, pkg, template } = options;
712
const compilerDep = `${template}-compiler`;
813
const isOk = pkg.devDependencies[compilerDep];
@@ -12,4 +17,4 @@ module.exports = (options, cb) => {
1217
: strings.errors.cli.TEMPLATE_DEP_MISSING(template, componentPath);
1318

1419
cb(err, compilerDep);
15-
};
20+
}

src/cli/domain/handle-dependencies/get-compiler.js renamed to src/cli/domain/handle-dependencies/get-compiler.ts

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,18 @@
1-
'use strict';
1+
import path from 'path';
22

3-
const path = require('path');
3+
import cleanRequire from '../../../utils/clean-require';
4+
import { Logger } from '../../logger';
5+
import installCompiler from './install-compiler';
46

5-
const cleanRequire = require('../../../utils/clean-require').default;
6-
const installCompiler = require('./install-compiler');
7-
8-
module.exports = (options, cb) => {
7+
export default function getCompiler(
8+
options: {
9+
compilerDep: string;
10+
componentPath: string;
11+
logger: Logger;
12+
pkg: { name: string; devDependencies: Dictionary<string> };
13+
},
14+
cb: Callback<string, string | number>
15+
) {
916
const { compilerDep, componentPath, logger, pkg } = options;
1017
const compilerPath = path.join(componentPath, 'node_modules', compilerDep);
1118
const compiler = cleanRequire(compilerPath, { justTry: true });
@@ -28,4 +35,4 @@ module.exports = (options, cb) => {
2835
};
2936

3037
installCompiler(installOptions, cb);
31-
};
38+
}

src/cli/domain/handle-dependencies/index.js renamed to src/cli/domain/handle-dependencies/index.ts

Lines changed: 37 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,48 @@
1-
'use strict';
1+
import async from 'async';
2+
import coreModules from 'builtin-modules';
3+
import fs from 'fs-extra';
4+
import path from 'path';
5+
import _ from 'lodash';
26

3-
const async = require('async');
4-
const coreModules = require('builtin-modules');
5-
const fs = require('fs-extra');
6-
const path = require('path');
7-
const _ = require('lodash');
7+
import ensureCompilerIsDeclaredAsDevDependency from './ensure-compiler-is-declared-as-devDependency';
8+
import getCompiler from './get-compiler';
9+
import installMissingDependencies from './install-missing-dependencies';
10+
import linkMissingDependencies from './link-missing-dependencies';
11+
import isTemplateLegacy from '../../../utils/is-template-legacy';
12+
import strings from '../../../resources';
13+
import { Logger } from '../../logger';
814

9-
const ensureCompilerIsDeclaredAsDevDependency = require('./ensure-compiler-is-declared-as-devDependency');
10-
const getCompiler = require('./get-compiler');
11-
const installMissingDependencies = require('./install-missing-dependencies');
12-
const linkMissingDependencies = require('./link-missing-dependencies');
13-
const isTemplateLegacy = require('../../../utils/is-template-legacy').default;
14-
const strings = require('../../../resources').default;
15-
16-
const getComponentPackageJson = (componentPath, cb) =>
15+
const getComponentPackageJson = (componentPath: string, cb: Callback<any>) =>
1716
fs.readJson(path.join(componentPath, 'package.json'), cb);
1817

19-
module.exports = (options, callback) => {
18+
export default function handleDependencies(
19+
options: {
20+
components: string[];
21+
logger: Logger;
22+
useComponentDependencies?: boolean;
23+
},
24+
callback: Callback<
25+
{
26+
modules: string[];
27+
templates: Function[];
28+
},
29+
string
30+
>
31+
) {
2032
const { components, logger, useComponentDependencies } = options;
2133

2234
const dependencies = {};
23-
const addDependencies = componentDependencies =>
35+
const addDependencies = (componentDependencies: Dictionary<string>) =>
2436
_.each(componentDependencies || {}, (version, dependency) => {
2537
dependencies[dependency] = version;
2638
});
2739

28-
const templates = {};
29-
const addTemplate = (templateName, template) => {
40+
const templates: Dictionary<Function> = {};
41+
const addTemplate = (templateName: string, template: Function) => {
3042
templates[templateName] = template;
3143
};
3244

33-
const setupComponentDependencies = (componentPath, done) =>
45+
const setupComponentDependencies = (componentPath: string, done) =>
3446
async.waterfall(
3547
[
3648
cb => getComponentPackageJson(componentPath, cb),
@@ -67,7 +79,7 @@ module.exports = (options, callback) => {
6779
logger.warn(strings.messages.cli.CHECKING_DEPENDENCIES);
6880
async.eachSeries(components, setupComponentDependencies, err => {
6981
if (err) {
70-
return callback(err);
82+
return callback(err, undefined as any);
7183
}
7284

7385
const result = {
@@ -76,9 +88,12 @@ module.exports = (options, callback) => {
7688
};
7789
const options = { dependencies, logger };
7890
if (useComponentDependencies) {
91+
// @ts-ignore
7992
options.componentPath = components[0];
80-
return linkMissingDependencies(options, err => callback(err, result));
93+
return linkMissingDependencies(options as any, err =>
94+
callback(err, result)
95+
);
8196
}
8297
installMissingDependencies(options, err => callback(err, result));
8398
});
84-
};
99+
}

src/cli/domain/handle-dependencies/install-compiler.js renamed to src/cli/domain/handle-dependencies/install-compiler.ts

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,18 @@
1-
'use strict';
1+
import cleanRequire from '../../../utils/clean-require';
2+
import isTemplateValid from '../../../utils/is-template-valid';
3+
import * as npm from '../../../utils/npm-utils';
4+
import strings from '../../../resources/index';
5+
import { Logger } from '../../logger';
26

3-
const cleanRequire = require('../../../utils/clean-require').default;
4-
const isTemplateValid = require('../../../utils/is-template-valid').default;
5-
const npm = require('../../../utils/npm-utils');
6-
const strings = require('../../../resources/index').default;
7-
8-
module.exports = (options, cb) => {
7+
export default function installCompiler(
8+
options: {
9+
compilerPath: string;
10+
componentPath: string;
11+
dependency: string;
12+
logger: Logger;
13+
},
14+
cb: Callback<string, string | number>
15+
) {
916
const { compilerPath, componentPath, dependency, logger } = options;
1017

1118
logger.warn(strings.messages.cli.INSTALLING_DEPS(dependency), true);
@@ -24,4 +31,4 @@ module.exports = (options, cb) => {
2431
const errorMsg = 'There was a problem while installing the compiler';
2532
cb(!err && isOk ? null : errorMsg, compiler);
2633
});
27-
};
34+
}
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,21 @@
11
'use strict';
22

3-
const path = require('path');
4-
const _ = require('lodash');
3+
import path from 'path';
54

6-
const getMissingDependencies = require('./get-missing-dependencies').default;
7-
const npm = require('../../../utils/npm-utils');
8-
const strings = require('../../../resources/index').default;
5+
import getMissingDependencies from './get-missing-dependencies';
6+
import * as npm from '../../../utils/npm-utils';
7+
import strings from '../../../resources/index';
8+
import { Logger } from '../../logger';
99

10-
module.exports = (options, callback) => {
10+
export default function installMissingDependencies(
11+
options: { dependencies: Dictionary<string>; logger: Logger },
12+
callback: (err: string | null) => void
13+
) {
1114
const { dependencies, logger } = options;
1215

1316
const missing = getMissingDependencies(dependencies);
1417

15-
if (_.isEmpty(missing)) {
18+
if (!missing.length) {
1619
return callback(null);
1720
}
1821

@@ -26,11 +29,12 @@ module.exports = (options, callback) => {
2629
};
2730

2831
npm.installDependencies(npmOptions, err => {
29-
if (err || !_.isEmpty(getMissingDependencies(dependencies))) {
32+
if (err || getMissingDependencies(dependencies).length) {
3033
logger.err('FAIL');
3134
return callback(strings.errors.cli.DEPENDENCIES_INSTALL_FAIL);
3235
}
36+
3337
logger.ok('OK');
3438
callback(null);
3539
});
36-
};
40+
}
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,24 @@
1-
'use strict';
1+
import _ from 'lodash';
2+
import path from 'path';
3+
import fs from 'fs-extra';
4+
import getMissingDependencies from './get-missing-dependencies';
5+
import strings from '../../../resources/index';
6+
import stripVersion from '../../../utils/strip-version';
7+
import { Logger } from '../../logger';
28

3-
const _ = require('lodash');
4-
const path = require('path');
5-
const fs = require('fs-extra');
6-
const getMissingDependencies = require('./get-missing-dependencies').default;
7-
const strings = require('../../../resources/index').default;
8-
const stripVersion = require('../../../utils/strip-version').default;
9-
10-
module.exports = (options, callback) => {
9+
export default function linkMissingDependencies(
10+
options: {
11+
componentPath: string;
12+
dependencies: Dictionary<string>;
13+
logger: Logger;
14+
},
15+
callback: (err: string | null) => void
16+
) {
1117
const { componentPath, dependencies, logger } = options;
1218

1319
const missingDependencies = getMissingDependencies(dependencies);
1420

15-
if (_.isEmpty(missingDependencies)) {
21+
if (!missingDependencies.length) {
1622
return callback(null);
1723
}
1824

@@ -23,7 +29,8 @@ module.exports = (options, callback) => {
2329

2430
const symLinkType = 'dir';
2531
let symLinkError = false;
26-
_.each(missingDependencies, dependency => {
32+
33+
for (const dependency of missingDependencies) {
2734
const moduleName = stripVersion(dependency);
2835
const pathToComponentModule = path.resolve(
2936
componentPath,
@@ -37,8 +44,9 @@ module.exports = (options, callback) => {
3744
symLinkError = true;
3845
logger.err(strings.errors.cli.DEPENDENCY_LINK_FAIL(moduleName, err));
3946
}
40-
});
47+
}
48+
4149
return !symLinkError
4250
? callback(null)
4351
: callback(strings.errors.cli.DEPENDENCIES_LINK_FAIL);
44-
};
52+
}

src/cli/domain/handle-dependencies/require-template.js renamed to src/cli/domain/handle-dependencies/require-template.ts

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,16 @@
11
'use strict';
22

3-
const path = require('path');
3+
import path from 'path';
44

5-
const cleanRequire = require('../../../utils/clean-require').default;
6-
const isTemplateLegacy = require('../../../utils/is-template-legacy').default;
7-
const isTemplateValid = require('../../../utils/is-template-valid').default;
8-
const strings = require('../../../resources').default;
5+
import cleanRequire from '../../../utils/clean-require';
6+
import isTemplateLegacy from '../../../utils/is-template-legacy';
7+
import isTemplateValid from '../../../utils/is-template-valid';
8+
import strings from '../../../resources';
99

10-
module.exports = function(template, options) {
10+
export default function requireTemplate(
11+
template: string,
12+
options: { compiler: boolean; componentPath: string }
13+
) {
1114
const requireOptions = options || {};
1215
let ocTemplate;
1316

@@ -42,4 +45,4 @@ module.exports = function(template, options) {
4245
}
4346

4447
return ocTemplate;
45-
};
48+
}

src/cli/domain/package-components.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33
const fs = require('fs-extra');
44
const path = require('path');
55

6-
const requireTemplate = require('./handle-dependencies/require-template');
6+
const requireTemplate = require('./handle-dependencies/require-template')
7+
.default;
78
const validator = require('../../registry/domain/validators');
89

910
module.exports = function() {

src/cli/facade/dev.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ const path = require('path');
88
const _ = require('lodash');
99

1010
const getMockedPlugins = require('../domain/get-mocked-plugins');
11-
const handleDependencies = require('../domain/handle-dependencies');
11+
const handleDependencies = require('../domain/handle-dependencies').default;
1212
const oc = require('../../index');
1313
const strings = require('../../resources/index').default;
1414
const watch = require('../domain/watch');

src/cli/facade/package.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
const strings = require('../../resources/index').default;
44
const path = require('path');
5-
const handleDependencies = require('../domain/handle-dependencies');
5+
const handleDependencies = require('../domain/handle-dependencies').default;
66

77
module.exports = function(dependencies) {
88
const local = dependencies.local,

0 commit comments

Comments
 (0)