@form8ion/javascript 15.8.2 → 16.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/lib/index.js +77 -64
- package/lib/index.js.map +1 -1
- package/package.json +17 -17
- package/src/code-style/lifter.js +2 -2
- package/src/dependencies/installer.js +5 -5
- package/src/dependencies/installer.test.js +8 -22
- package/src/dependencies/processor.js +10 -8
- package/src/dependencies/processor.test.js +31 -18
- package/src/dependencies/remover.js +2 -3
- package/src/dependencies/remover.test.js +4 -2
- package/src/lifter.js +8 -5
- package/src/lifter.test.js +12 -11
- package/src/node-version/scaffolder.js +4 -5
- package/src/node-version/scaffolder.test.js +5 -4
- package/src/node-version/tasks.js +4 -6
- package/src/node-version/tasks.test.js +5 -8
- package/src/options/schemas.js +2 -1
- package/src/options/schemas.test.js +11 -5
- package/src/package/lifter.js +3 -4
- package/src/package/lifter.test.js +8 -4
- package/src/package/scaffolder.js +2 -3
- package/src/package/scaffolder.test.js +3 -1
- package/src/project-type/application/scaffolder.js +2 -3
- package/src/project-type/application/scaffolder.test.js +3 -5
- package/src/project-type/monorepo/scaffolder.js +2 -3
- package/src/project-type/monorepo/scaffolder.test.js +3 -6
- package/src/project-type/package/scaffolder.js +2 -3
- package/src/project-type/package/scaffolder.test.js +6 -5
- package/src/project-type/publishable/access-level.js +1 -1
- package/src/project-type/publishable/access-level.test.js +5 -3
- package/src/project-type/publishable/badges.js +2 -2
- package/src/project-type/publishable/badges.test.js +14 -5
- package/src/project-type/publishable/lifter.js +9 -4
- package/src/project-type/publishable/lifter.test.js +4 -4
- package/src/project-type/scaffolder.js +4 -4
- package/src/project-type/scaffolder.test.js +15 -16
- package/src/prompts/questions.js +3 -3
- package/src/prompts/questions.test.js +6 -5
- package/src/scaffolder.js +7 -8
- package/src/scaffolder.test.js +6 -5
- package/src/tester.js +2 -4
- package/src/tester.test.js +5 -8
package/README.md
CHANGED
|
@@ -175,7 +175,7 @@ $ npm test
|
|
|
175
175
|
|
|
176
176
|
[renovate-link]: https://renovatebot.com
|
|
177
177
|
|
|
178
|
-
[renovate-badge]: https://img.shields.io/badge/renovate-enabled-brightgreen.svg?logo=
|
|
178
|
+
[renovate-badge]: https://img.shields.io/badge/renovate-enabled-brightgreen.svg?logo=renovate
|
|
179
179
|
|
|
180
180
|
[github-actions-ci-link]: https://github.com/form8ion/javascript/actions?query=workflow%3A%22Node.js+CI%22+branch%3Amaster
|
|
181
181
|
|
|
@@ -197,6 +197,6 @@ $ npm test
|
|
|
197
197
|
|
|
198
198
|
[coverage-link]: https://codecov.io/github/form8ion/javascript
|
|
199
199
|
|
|
200
|
-
[coverage-badge]: https://img.shields.io/codecov/c/github/form8ion/javascript?logo=codecov
|
|
200
|
+
[coverage-badge]: https://img.shields.io/codecov/c/github/form8ion/javascript/master?logo=codecov
|
|
201
201
|
|
|
202
202
|
[slsa-badge]: https://slsa.dev/images/gh-badge-level2.svg
|
package/lib/index.js
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { questionNames as questionNames$2, questions } from '@travi/language-scaffolder-prompts';
|
|
2
2
|
import deepmerge from 'deepmerge';
|
|
3
|
-
import { warn, info, error } from '@travi/cli-messages';
|
|
4
3
|
import { scaffoldChoice, dialects as dialects$1, projectTypes as projectTypes$1, packageManagers as packageManagers$1, writePackageJson, PROD_DEPENDENCY_TYPE, DEV_DEPENDENCY_TYPE, mergeIntoExistingPackageJson } from '@form8ion/javascript-core';
|
|
5
4
|
import * as commitConventionPlugin from '@form8ion/commit-convention';
|
|
6
5
|
import { scaffold as scaffold$5 } from '@form8ion/commit-convention';
|
|
7
6
|
import joi from 'joi';
|
|
8
|
-
import { fileExists, directoryExists, optionsSchemas, validateOptions, fileTypes, loadConfigFile, writeConfigFile, applyEnhancers } from '@form8ion/core';
|
|
7
|
+
import { fileExists, directoryExists, optionsSchemas, validateOptions, visibilityOptions, fileTypes, loadConfigFile, writeConfigFile, applyEnhancers } from '@form8ion/core';
|
|
9
8
|
import { prompt as prompt$1 } from '@form8ion/overridable-prompts';
|
|
10
9
|
import { execa } from 'execa';
|
|
11
10
|
import npmConf from 'npm-conf';
|
|
@@ -145,7 +144,7 @@ const nameBasedConfigSchema = joi.object({
|
|
|
145
144
|
|
|
146
145
|
const registriesSchema = joi.object().pattern(joi.string(), joi.string().uri()).default({});
|
|
147
146
|
|
|
148
|
-
const visibilitySchema = joi.string().valid(
|
|
147
|
+
const visibilitySchema = joi.string().valid(...Object.keys(visibilityOptions)).required();
|
|
149
148
|
|
|
150
149
|
const projectNameSchema = joi.string().regex(/^@\w*\//, {invert: true}).required();
|
|
151
150
|
|
|
@@ -270,7 +269,8 @@ async function prompt(
|
|
|
270
269
|
vcs,
|
|
271
270
|
decisions,
|
|
272
271
|
configs,
|
|
273
|
-
pathWithinParent
|
|
272
|
+
pathWithinParent,
|
|
273
|
+
{logger}
|
|
274
274
|
) {
|
|
275
275
|
const npmConf$1 = npmConf();
|
|
276
276
|
|
|
@@ -279,7 +279,7 @@ async function prompt(
|
|
|
279
279
|
maybeLoggedInNpmUsername = (await execa('npm', ['whoami'])).stdout;
|
|
280
280
|
} catch (failedExecutionResult) {
|
|
281
281
|
if (!decisions[questionNames$1.SCOPE]) {
|
|
282
|
-
warn('No logged in user found with `npm whoami`. Login with `npm login` '
|
|
282
|
+
logger.warn('No logged in user found with `npm whoami`. Login with `npm login` '
|
|
283
283
|
+ 'to use your npm account name as the package scope default.');
|
|
284
284
|
}
|
|
285
285
|
}
|
|
@@ -657,8 +657,8 @@ $ ${packageManager} test
|
|
|
657
657
|
};
|
|
658
658
|
}
|
|
659
659
|
|
|
660
|
-
async function determineLatestVersionOf(nodeVersionCategory) {
|
|
661
|
-
info('Determining version of node', {level: 'secondary'});
|
|
660
|
+
async function determineLatestVersionOf(nodeVersionCategory, {logger}) {
|
|
661
|
+
logger.info('Determining version of node', {level: 'secondary'});
|
|
662
662
|
|
|
663
663
|
const {stdout: nvmLsOutput} = await execa(
|
|
664
664
|
`. ~/.nvm/nvm.sh && nvm ls-remote${('LTS' === nodeVersionCategory) ? ' --lts' : ''}`,
|
|
@@ -671,25 +671,25 @@ async function determineLatestVersionOf(nodeVersionCategory) {
|
|
|
671
671
|
return lsLine.match(/(v[0-9]+)\.[0-9]+\.[0-9]+/)[1];
|
|
672
672
|
}
|
|
673
673
|
|
|
674
|
-
function install(nodeVersionCategory) {
|
|
675
|
-
info(`Installing ${nodeVersionCategory} version of node using nvm`, {level: 'secondary'});
|
|
674
|
+
function install(nodeVersionCategory, {logger}) {
|
|
675
|
+
logger.info(`Installing ${nodeVersionCategory} version of node using nvm`, {level: 'secondary'});
|
|
676
676
|
|
|
677
677
|
const subprocess = execa('. ~/.nvm/nvm.sh && nvm install', {shell: true});
|
|
678
678
|
subprocess.stdout.pipe(process.stdout);
|
|
679
679
|
return subprocess;
|
|
680
680
|
}
|
|
681
681
|
|
|
682
|
-
async function scaffoldNodeVersion({projectRoot, nodeVersionCategory}) {
|
|
682
|
+
async function scaffoldNodeVersion({projectRoot, nodeVersionCategory}, {logger}) {
|
|
683
683
|
if (!nodeVersionCategory) return undefined;
|
|
684
684
|
|
|
685
685
|
const lowerCaseCategory = nodeVersionCategory.toLowerCase();
|
|
686
|
-
info(`Configuring ${lowerCaseCategory} version of node`);
|
|
686
|
+
logger.info(`Configuring ${lowerCaseCategory} version of node`);
|
|
687
687
|
|
|
688
|
-
const version = await determineLatestVersionOf(nodeVersionCategory);
|
|
688
|
+
const version = await determineLatestVersionOf(nodeVersionCategory, {logger});
|
|
689
689
|
|
|
690
690
|
await promises.writeFile(`${projectRoot}/.nvmrc`, version);
|
|
691
691
|
|
|
692
|
-
await install(nodeVersionCategory);
|
|
692
|
+
await install(nodeVersionCategory, {logger});
|
|
693
693
|
|
|
694
694
|
return version;
|
|
695
695
|
}
|
|
@@ -741,8 +741,8 @@ async function scaffoldPackage({
|
|
|
741
741
|
license,
|
|
742
742
|
author,
|
|
743
743
|
description
|
|
744
|
-
}) {
|
|
745
|
-
info('Configuring package.json');
|
|
744
|
+
}, {logger}) {
|
|
745
|
+
logger.info('Configuring package.json');
|
|
746
746
|
|
|
747
747
|
const packageName = determinePackageName(projectName, scope);
|
|
748
748
|
|
|
@@ -845,10 +845,11 @@ async function installDependencies(
|
|
|
845
845
|
dependencies,
|
|
846
846
|
dependenciesType,
|
|
847
847
|
projectRoot,
|
|
848
|
-
packageManager
|
|
848
|
+
packageManager,
|
|
849
|
+
{logger}
|
|
849
850
|
) {
|
|
850
851
|
if (dependencies.length) {
|
|
851
|
-
info(`Installing ${dependenciesType} dependencies`, {level: 'secondary'});
|
|
852
|
+
logger.info(`Installing ${dependenciesType} dependencies`, {level: 'secondary'});
|
|
852
853
|
|
|
853
854
|
await execa(
|
|
854
855
|
`. ~/.nvm/nvm.sh && nvm use && ${packageManager} ${
|
|
@@ -858,19 +859,22 @@ async function installDependencies(
|
|
|
858
859
|
}`,
|
|
859
860
|
{shell: true, cwd: projectRoot}
|
|
860
861
|
);
|
|
861
|
-
} else warn(`No ${dependenciesType} dependencies to install`);
|
|
862
|
+
} else logger.warn(`No ${dependenciesType} dependencies to install`);
|
|
862
863
|
}
|
|
863
864
|
|
|
864
|
-
async function removeDependencies({packageManager, dependencies}) {
|
|
865
|
+
async function removeDependencies({packageManager, dependencies}, {logger}) {
|
|
865
866
|
if (dependencies.length) {
|
|
866
|
-
info('Removing dependencies dependencies', {level: 'secondary'});
|
|
867
|
+
logger.info('Removing dependencies dependencies', {level: 'secondary'});
|
|
867
868
|
|
|
868
869
|
await execa(packageManager, ['remove', ...dependencies]);
|
|
869
870
|
}
|
|
870
871
|
}
|
|
871
872
|
|
|
872
|
-
async function processDependencies(
|
|
873
|
-
|
|
873
|
+
async function processDependencies(
|
|
874
|
+
{dependencies = {}, devDependencies, projectRoot, packageManager},
|
|
875
|
+
{logger}
|
|
876
|
+
) {
|
|
877
|
+
logger.info('Processing dependencies');
|
|
874
878
|
|
|
875
879
|
if (Array.isArray(devDependencies)) {
|
|
876
880
|
throw new Error(
|
|
@@ -885,12 +889,12 @@ async function processDependencies({dependencies = {}, devDependencies, projectR
|
|
|
885
889
|
const {javascript: {production = [], development = [], remove: dependenciesToRemove = []} = {}} = dependencies;
|
|
886
890
|
|
|
887
891
|
try {
|
|
888
|
-
await installDependencies(production, PROD_DEPENDENCY_TYPE, projectRoot, packageManager);
|
|
889
|
-
await installDependencies(development, DEV_DEPENDENCY_TYPE, projectRoot, packageManager);
|
|
890
|
-
await removeDependencies({packageManager, dependencies: dependenciesToRemove});
|
|
892
|
+
await installDependencies(production, PROD_DEPENDENCY_TYPE, projectRoot, packageManager, {logger});
|
|
893
|
+
await installDependencies(development, DEV_DEPENDENCY_TYPE, projectRoot, packageManager, {logger});
|
|
894
|
+
await removeDependencies({packageManager, dependencies: dependenciesToRemove}, {logger});
|
|
891
895
|
} catch (e) {
|
|
892
|
-
error('Failed to update dependencies');
|
|
893
|
-
error(e, {level: 'secondary'});
|
|
896
|
+
logger.error('Failed to update dependencies');
|
|
897
|
+
logger.error(e, {level: 'secondary'});
|
|
894
898
|
}
|
|
895
899
|
}
|
|
896
900
|
|
|
@@ -982,8 +986,8 @@ async function liftPackageJson({
|
|
|
982
986
|
packageManager,
|
|
983
987
|
vcs,
|
|
984
988
|
pathWithinParent
|
|
985
|
-
}) {
|
|
986
|
-
info('Updating `package.json`', {level: 'secondary'});
|
|
989
|
+
}, {logger}) {
|
|
990
|
+
logger.info('Updating `package.json`', {level: 'secondary'});
|
|
987
991
|
|
|
988
992
|
const existingPackageJsonContents = JSON.parse(await promises.readFile(`${projectRoot}/package.json`, 'utf-8'));
|
|
989
993
|
const {scripts: liftedScripts, dependencies: scriptDependencies} = liftScripts({
|
|
@@ -1008,11 +1012,11 @@ async function liftPackageJson({
|
|
|
1008
1012
|
devDependencies,
|
|
1009
1013
|
projectRoot,
|
|
1010
1014
|
packageManager
|
|
1011
|
-
});
|
|
1015
|
+
}, {logger});
|
|
1012
1016
|
}
|
|
1013
1017
|
|
|
1014
1018
|
function mapProjectVisibility({projectVisibility}) {
|
|
1015
|
-
return '
|
|
1019
|
+
return 'OSS' === projectVisibility ? 'public' : 'restricted';
|
|
1016
1020
|
}
|
|
1017
1021
|
|
|
1018
1022
|
function isScope(firstPart) {
|
|
@@ -1037,14 +1041,14 @@ function buildNpmBadgeImageUrl(packageName, customRegistry) {
|
|
|
1037
1041
|
return `https://img.shields.io/npm/v/${packageName}?${params}`;
|
|
1038
1042
|
}
|
|
1039
1043
|
|
|
1040
|
-
function scaffoldPublishableBadges({packageName, accessLevel, customRegistry}) {
|
|
1044
|
+
function scaffoldPublishableBadges({packageName, accessLevel, customRegistry, registryPage}) {
|
|
1041
1045
|
return {
|
|
1042
1046
|
consumer: {
|
|
1043
1047
|
...'public' === accessLevel && {
|
|
1044
1048
|
npm: {
|
|
1045
1049
|
img: buildNpmBadgeImageUrl(packageName, customRegistry),
|
|
1046
1050
|
text: 'npm',
|
|
1047
|
-
link:
|
|
1051
|
+
link: registryPage
|
|
1048
1052
|
}
|
|
1049
1053
|
}
|
|
1050
1054
|
},
|
|
@@ -1083,17 +1087,22 @@ async function liftProvenance({projectRoot, packageDetails, customRegistry}) {
|
|
|
1083
1087
|
async function liftPublishable({projectRoot, packageDetails, configs}) {
|
|
1084
1088
|
const {name: packageName, publishConfig: {access: packageAccessLevel}} = packageDetails;
|
|
1085
1089
|
const customRegistry = resolveRegistry(packageName, configs.registries);
|
|
1086
|
-
const
|
|
1090
|
+
const registryPage = `https://www.npmjs.com/package/${packageName}`;
|
|
1087
1091
|
|
|
1088
|
-
await mergeIntoExistingPackageJson({projectRoot, config: {homepage}});
|
|
1092
|
+
await mergeIntoExistingPackageJson({projectRoot, config: {homepage: registryPage}});
|
|
1089
1093
|
|
|
1090
1094
|
return deepmerge(
|
|
1091
1095
|
await liftProvenance({packageDetails, projectRoot, customRegistry}),
|
|
1092
1096
|
{
|
|
1093
|
-
homepage,
|
|
1097
|
+
homepage: registryPage,
|
|
1094
1098
|
dependencies: {javascript: {development: ['publint']}},
|
|
1095
1099
|
scripts: {'lint:publish': 'publint --strict'},
|
|
1096
|
-
badges: scaffoldPublishableBadges({
|
|
1100
|
+
badges: scaffoldPublishableBadges({
|
|
1101
|
+
packageName,
|
|
1102
|
+
accessLevel: packageAccessLevel,
|
|
1103
|
+
customRegistry,
|
|
1104
|
+
registryPage
|
|
1105
|
+
})
|
|
1097
1106
|
}
|
|
1098
1107
|
);
|
|
1099
1108
|
}
|
|
@@ -1215,8 +1224,8 @@ async function scaffoldPackageProjectType({
|
|
|
1215
1224
|
dialect,
|
|
1216
1225
|
provideExample,
|
|
1217
1226
|
publishRegistry
|
|
1218
|
-
}) {
|
|
1219
|
-
info('Scaffolding Package Details');
|
|
1227
|
+
}, {logger}) {
|
|
1228
|
+
logger.info('Scaffolding Package Details');
|
|
1220
1229
|
|
|
1221
1230
|
const packageAccessLevel = mapProjectVisibility({projectVisibility: visibility});
|
|
1222
1231
|
const [detailsForBuild, publishableResults] = await Promise.all([
|
|
@@ -1284,15 +1293,15 @@ function liftPackage({projectRoot, packageDetails, configs}) {
|
|
|
1284
1293
|
}
|
|
1285
1294
|
|
|
1286
1295
|
async function projectIsPackage({
|
|
1287
|
-
packageDetails: {exports
|
|
1296
|
+
packageDetails: {exports, publishConfig, bin, private: projectMarkedPrivate}
|
|
1288
1297
|
}) {
|
|
1289
|
-
return !projectMarkedPrivate && (!!exports
|
|
1298
|
+
return !projectMarkedPrivate && (!!exports || (!!publishConfig && !bin));
|
|
1290
1299
|
}
|
|
1291
1300
|
|
|
1292
1301
|
const defaultBuildDirectory$1 = 'public';
|
|
1293
1302
|
|
|
1294
|
-
async function scaffoldApplication({projectRoot}) {
|
|
1295
|
-
info('Scaffolding Application Details');
|
|
1303
|
+
async function scaffoldApplication({projectRoot}, {logger}) {
|
|
1304
|
+
logger.info('Scaffolding Application Details');
|
|
1296
1305
|
|
|
1297
1306
|
await mergeIntoExistingPackageJson({projectRoot, config: {private: true}});
|
|
1298
1307
|
|
|
@@ -1315,8 +1324,8 @@ function projectIsApplication({packageDetails}) {
|
|
|
1315
1324
|
return !!packageDetails.private;
|
|
1316
1325
|
}
|
|
1317
1326
|
|
|
1318
|
-
async function scaffoldMonorepo({projectRoot}) {
|
|
1319
|
-
info('Scaffolding Monorepo Details');
|
|
1327
|
+
async function scaffoldMonorepo({projectRoot}, {logger}) {
|
|
1328
|
+
logger.info('Scaffolding Monorepo Details');
|
|
1320
1329
|
|
|
1321
1330
|
await mergeIntoExistingPackageJson({projectRoot, config: {private: true}});
|
|
1322
1331
|
|
|
@@ -1395,7 +1404,7 @@ async function scaffoldProjectType({
|
|
|
1395
1404
|
dialect,
|
|
1396
1405
|
provideExample,
|
|
1397
1406
|
publishRegistry
|
|
1398
|
-
}) {
|
|
1407
|
+
}, {logger}) {
|
|
1399
1408
|
switch (projectType) {
|
|
1400
1409
|
case projectTypes$1.PACKAGE:
|
|
1401
1410
|
return scaffoldPackageProjectType({
|
|
@@ -1410,9 +1419,9 @@ async function scaffoldProjectType({
|
|
|
1410
1419
|
dialect,
|
|
1411
1420
|
provideExample,
|
|
1412
1421
|
publishRegistry
|
|
1413
|
-
});
|
|
1422
|
+
}, {logger});
|
|
1414
1423
|
case projectTypes$1.APPLICATION:
|
|
1415
|
-
return scaffoldApplication({projectRoot});
|
|
1424
|
+
return scaffoldApplication({projectRoot}, {logger});
|
|
1416
1425
|
case projectTypes$1.CLI:
|
|
1417
1426
|
return scaffoldCli({
|
|
1418
1427
|
visibility,
|
|
@@ -1423,7 +1432,7 @@ async function scaffoldProjectType({
|
|
|
1423
1432
|
packageBundlers
|
|
1424
1433
|
});
|
|
1425
1434
|
case projectTypes$1.MONOREPO:
|
|
1426
|
-
return scaffoldMonorepo({projectRoot});
|
|
1435
|
+
return scaffoldMonorepo({projectRoot}, {logger});
|
|
1427
1436
|
case 'Other':
|
|
1428
1437
|
return {};
|
|
1429
1438
|
default:
|
|
@@ -1680,8 +1689,8 @@ async function scaffoldCodeStyle({
|
|
|
1680
1689
|
].filter(Boolean)));
|
|
1681
1690
|
}
|
|
1682
1691
|
|
|
1683
|
-
function liftCodeStyle(options) {
|
|
1684
|
-
return applyEnhancers({options, enhancers: [eslintPlugin]});
|
|
1692
|
+
function liftCodeStyle(options, dependencies) {
|
|
1693
|
+
return applyEnhancers({options, enhancers: [eslintPlugin], dependencies});
|
|
1685
1694
|
}
|
|
1686
1695
|
|
|
1687
1696
|
function codeStyleConfigured(options) {
|
|
@@ -1695,8 +1704,8 @@ var codeStylePlugin = /*#__PURE__*/Object.freeze({
|
|
|
1695
1704
|
test: codeStyleConfigured
|
|
1696
1705
|
});
|
|
1697
1706
|
|
|
1698
|
-
async function scaffoldJavascript(options) {
|
|
1699
|
-
info('Initializing JavaScript project');
|
|
1707
|
+
async function scaffoldJavascript(options, {logger}) {
|
|
1708
|
+
logger.info('Initializing JavaScript project');
|
|
1700
1709
|
|
|
1701
1710
|
const {
|
|
1702
1711
|
projectRoot,
|
|
@@ -1732,9 +1741,9 @@ async function scaffoldJavascript(options) {
|
|
|
1732
1741
|
provideExample,
|
|
1733
1742
|
packageManager,
|
|
1734
1743
|
dialect
|
|
1735
|
-
} = await prompt(ciServices, hosts, visibility, vcs, decisions, configs, pathWithinParent);
|
|
1744
|
+
} = await prompt(ciServices, hosts, visibility, vcs, decisions, configs, pathWithinParent, {logger});
|
|
1736
1745
|
|
|
1737
|
-
info('Writing project files', {level: 'secondary'});
|
|
1746
|
+
logger.info('Writing project files', {level: 'secondary'});
|
|
1738
1747
|
|
|
1739
1748
|
const {packageName} = await scaffoldPackage({
|
|
1740
1749
|
projectRoot,
|
|
@@ -1744,7 +1753,7 @@ async function scaffoldJavascript(options) {
|
|
|
1744
1753
|
license,
|
|
1745
1754
|
author,
|
|
1746
1755
|
description
|
|
1747
|
-
});
|
|
1756
|
+
}, {logger});
|
|
1748
1757
|
const projectTypeResults = await scaffoldProjectType({
|
|
1749
1758
|
projectType,
|
|
1750
1759
|
projectRoot,
|
|
@@ -1758,7 +1767,7 @@ async function scaffoldJavascript(options) {
|
|
|
1758
1767
|
dialect,
|
|
1759
1768
|
provideExample,
|
|
1760
1769
|
publishRegistry: configs.registries.publish
|
|
1761
|
-
});
|
|
1770
|
+
}, {logger});
|
|
1762
1771
|
const verificationResults = await scaffoldVerification({
|
|
1763
1772
|
projectRoot,
|
|
1764
1773
|
dialect,
|
|
@@ -1772,7 +1781,7 @@ async function scaffoldJavascript(options) {
|
|
|
1772
1781
|
pathWithinParent
|
|
1773
1782
|
});
|
|
1774
1783
|
const [nodeVersion, npmResults, dialectResults, codeStyleResults] = await Promise.all([
|
|
1775
|
-
scaffoldNodeVersion({projectRoot, nodeVersionCategory}),
|
|
1784
|
+
scaffoldNodeVersion({projectRoot, nodeVersionCategory}, {logger}),
|
|
1776
1785
|
scaffoldNpmConfiguration({projectType, projectRoot}),
|
|
1777
1786
|
scaffoldDialect({
|
|
1778
1787
|
dialect,
|
|
@@ -1908,8 +1917,8 @@ async function liftJavaScript({
|
|
|
1908
1917
|
pathWithinParent,
|
|
1909
1918
|
enhancers = {},
|
|
1910
1919
|
configs = {}
|
|
1911
|
-
}) {
|
|
1912
|
-
info('Lifting JavaScript-specific details');
|
|
1920
|
+
}, dependencies) {
|
|
1921
|
+
dependencies.logger.info('Lifting JavaScript-specific details');
|
|
1913
1922
|
|
|
1914
1923
|
const [packageManager, packageContents] = await Promise.all([
|
|
1915
1924
|
resolveCurrentPackageManager({projectRoot, packageManager: results.packageManager}),
|
|
@@ -1931,15 +1940,19 @@ async function liftJavaScript({
|
|
|
1931
1940
|
packageManagers,
|
|
1932
1941
|
registriesPlugin
|
|
1933
1942
|
},
|
|
1934
|
-
options: {packageManager, projectRoot, vcs, packageDetails: JSON.parse(packageContents), configs}
|
|
1943
|
+
options: {packageManager, projectRoot, vcs, packageDetails: JSON.parse(packageContents), configs},
|
|
1944
|
+
dependencies
|
|
1935
1945
|
});
|
|
1936
1946
|
|
|
1937
|
-
await liftPackageJson(
|
|
1947
|
+
await liftPackageJson(
|
|
1948
|
+
deepmerge.all([{projectRoot, packageManager, vcs, pathWithinParent}, enhancerResults]),
|
|
1949
|
+
dependencies
|
|
1950
|
+
);
|
|
1938
1951
|
|
|
1939
1952
|
return enhancerResults;
|
|
1940
1953
|
}
|
|
1941
1954
|
|
|
1942
|
-
async function projectUsesJavaScript({projectRoot}) {
|
|
1955
|
+
async function projectUsesJavaScript({projectRoot}, {logger}) {
|
|
1943
1956
|
const [nvmFound, jsPackageManagerFound] = await Promise.all([
|
|
1944
1957
|
nodeVersionMangerInUse({projectRoot}),
|
|
1945
1958
|
packageManagerInUse({projectRoot})
|
|
@@ -1947,7 +1960,7 @@ async function projectUsesJavaScript({projectRoot}) {
|
|
|
1947
1960
|
|
|
1948
1961
|
const jsProjectFound = nvmFound || jsPackageManagerFound;
|
|
1949
1962
|
|
|
1950
|
-
if (jsProjectFound) info('JavaScript Project Detected');
|
|
1963
|
+
if (jsProjectFound) logger.info('JavaScript Project Detected');
|
|
1951
1964
|
|
|
1952
1965
|
return jsProjectFound;
|
|
1953
1966
|
}
|