@form8ion/javascript 7.0.3 → 7.1.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/lib/index.js +83 -92
- package/lib/index.js.map +1 -1
- package/lib/index.mjs +83 -92
- package/lib/index.mjs.map +1 -1
- package/package.json +5 -5
package/lib/index.mjs
CHANGED
|
@@ -793,19 +793,6 @@ function buildPackageName (projectName, scope) {
|
|
|
793
793
|
throw new Error(`The package name ${name} is invalid:${EOL}\t* ${errors.join(`${EOL}\t* `)}`);
|
|
794
794
|
}
|
|
795
795
|
|
|
796
|
-
async function chooseApplicationType ({types, projectType, decisions}) {
|
|
797
|
-
if (!Object.keys(types).length) return 'Other';
|
|
798
|
-
|
|
799
|
-
const answers = await prompt$1([{
|
|
800
|
-
name: questionNames$1.PROJECT_TYPE_CHOICE,
|
|
801
|
-
type: 'list',
|
|
802
|
-
message: `What type of ${projectType} is this?`,
|
|
803
|
-
choices: [...Object.keys(types), new Separator(), 'Other']
|
|
804
|
-
}], decisions);
|
|
805
|
-
|
|
806
|
-
return answers[questionNames$1.PROJECT_TYPE_CHOICE];
|
|
807
|
-
}
|
|
808
|
-
|
|
809
796
|
function getInstallationCommand(packageManager) {
|
|
810
797
|
if (packageManagers.NPM === packageManager) return 'npm install';
|
|
811
798
|
if (packageManagers.YARN === packageManager) return 'yarn add';
|
|
@@ -943,9 +930,7 @@ async function scaffoldPackageType ({
|
|
|
943
930
|
packageManager,
|
|
944
931
|
visibility,
|
|
945
932
|
scope,
|
|
946
|
-
packageTypes,
|
|
947
933
|
packageBundlers,
|
|
948
|
-
tests,
|
|
949
934
|
decisions,
|
|
950
935
|
dialect,
|
|
951
936
|
publishRegistry
|
|
@@ -990,13 +975,6 @@ async function scaffoldPackageType ({
|
|
|
990
975
|
})
|
|
991
976
|
]);
|
|
992
977
|
|
|
993
|
-
const chosenType = await chooseApplicationType({types: packageTypes, projectType: 'package', decisions});
|
|
994
|
-
const results = await scaffoldChoice(
|
|
995
|
-
packageTypes,
|
|
996
|
-
chosenType,
|
|
997
|
-
{projectRoot, projectName, packageName, tests, scope}
|
|
998
|
-
);
|
|
999
|
-
|
|
1000
978
|
return deepmerge.all([
|
|
1001
979
|
{
|
|
1002
980
|
documentation: scaffoldPackageDocumentation({packageName, visibility, scope, packageManager}),
|
|
@@ -1008,73 +986,47 @@ async function scaffoldPackageType ({
|
|
|
1008
986
|
scripts: {},
|
|
1009
987
|
badges: defineBadges(packageName, visibility)
|
|
1010
988
|
},
|
|
1011
|
-
detailsForBuild
|
|
1012
|
-
results
|
|
989
|
+
detailsForBuild
|
|
1013
990
|
]);
|
|
1014
991
|
}
|
|
1015
992
|
|
|
1016
|
-
const defaultBuildDirectory$1 = '
|
|
993
|
+
const defaultBuildDirectory$1 = 'public';
|
|
1017
994
|
|
|
1018
|
-
async function scaffoldApplicationType ({
|
|
1019
|
-
applicationTypes,
|
|
1020
|
-
projectRoot,
|
|
1021
|
-
projectName,
|
|
1022
|
-
packageName,
|
|
1023
|
-
packageManager,
|
|
1024
|
-
tests,
|
|
1025
|
-
decisions
|
|
1026
|
-
}) {
|
|
995
|
+
async function scaffoldApplicationType ({projectRoot}) {
|
|
1027
996
|
info('Scaffolding Application Details');
|
|
1028
997
|
|
|
1029
|
-
|
|
1030
|
-
chooseApplicationType({types: applicationTypes, projectType: 'application', decisions}),
|
|
1031
|
-
mergeIntoExistingPackageJson({projectRoot, config: {private: true}})
|
|
1032
|
-
]);
|
|
1033
|
-
|
|
1034
|
-
const results = await scaffoldChoice(
|
|
1035
|
-
applicationTypes,
|
|
1036
|
-
chosenType,
|
|
1037
|
-
{projectRoot, projectName, packageName, packageManager, tests}
|
|
1038
|
-
);
|
|
998
|
+
await mergeIntoExistingPackageJson({projectRoot, config: {private: true}});
|
|
1039
999
|
|
|
1040
|
-
const buildDirectory =
|
|
1000
|
+
const buildDirectory = defaultBuildDirectory$1;
|
|
1041
1001
|
|
|
1042
|
-
return
|
|
1043
|
-
{
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
prebuild: 'run-s clean'
|
|
1048
|
-
},
|
|
1049
|
-
dependencies: [],
|
|
1050
|
-
devDependencies: ['rimraf'],
|
|
1051
|
-
vcsIgnore: {files: ['.env'], directories: [`/${buildDirectory}/`]},
|
|
1052
|
-
buildDirectory,
|
|
1053
|
-
eslintConfigs: [],
|
|
1054
|
-
nextSteps: []
|
|
1002
|
+
return {
|
|
1003
|
+
scripts: {
|
|
1004
|
+
clean: `rimraf ./${buildDirectory}`,
|
|
1005
|
+
start: `node ./${buildDirectory}/index.js`,
|
|
1006
|
+
prebuild: 'run-s clean'
|
|
1055
1007
|
},
|
|
1056
|
-
|
|
1057
|
-
|
|
1008
|
+
dependencies: [],
|
|
1009
|
+
devDependencies: ['rimraf'],
|
|
1010
|
+
vcsIgnore: {files: ['.env'], directories: [`/${buildDirectory}/`]},
|
|
1011
|
+
buildDirectory,
|
|
1012
|
+
eslintConfigs: [],
|
|
1013
|
+
nextSteps: []
|
|
1014
|
+
};
|
|
1058
1015
|
}
|
|
1059
1016
|
|
|
1060
|
-
async function scaffoldMonorepoType ({
|
|
1017
|
+
async function scaffoldMonorepoType ({projectRoot}) {
|
|
1061
1018
|
info('Scaffolding Monorepo Details');
|
|
1062
1019
|
|
|
1063
|
-
|
|
1064
|
-
const results = await scaffoldChoice(monorepoTypes, chosenType, {projectRoot, packageManager});
|
|
1020
|
+
await mergeIntoExistingPackageJson({projectRoot, config: {private: true}});
|
|
1065
1021
|
|
|
1066
|
-
return
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
}]
|
|
1075
|
-
},
|
|
1076
|
-
results
|
|
1077
|
-
);
|
|
1022
|
+
return {
|
|
1023
|
+
eslintConfigs: [],
|
|
1024
|
+
nextSteps: [{
|
|
1025
|
+
summary: 'Add packages to your new monorepo',
|
|
1026
|
+
description: 'Leverage [@form8ion/add-package-to-monorepo](https://npm.im/@form8ion/add-package-to-monorepo)'
|
|
1027
|
+
+ ' to scaffold new packages into your new monorepo'
|
|
1028
|
+
}]
|
|
1029
|
+
};
|
|
1078
1030
|
}
|
|
1079
1031
|
|
|
1080
1032
|
const defaultBuildDirectory = 'bin';
|
|
@@ -1122,12 +1074,8 @@ async function scaffoldProjectType ({
|
|
|
1122
1074
|
packageName,
|
|
1123
1075
|
packageManager,
|
|
1124
1076
|
visibility,
|
|
1125
|
-
applicationTypes,
|
|
1126
|
-
packageTypes,
|
|
1127
1077
|
packageBundlers,
|
|
1128
|
-
monorepoTypes,
|
|
1129
1078
|
scope,
|
|
1130
|
-
tests,
|
|
1131
1079
|
vcs,
|
|
1132
1080
|
decisions,
|
|
1133
1081
|
dialect,
|
|
@@ -1142,28 +1090,18 @@ async function scaffoldProjectType ({
|
|
|
1142
1090
|
packageManager,
|
|
1143
1091
|
visibility,
|
|
1144
1092
|
scope,
|
|
1145
|
-
packageTypes,
|
|
1146
1093
|
packageBundlers,
|
|
1147
|
-
tests,
|
|
1148
1094
|
vcs,
|
|
1149
1095
|
decisions,
|
|
1150
1096
|
dialect,
|
|
1151
1097
|
publishRegistry
|
|
1152
1098
|
});
|
|
1153
1099
|
case projectTypes.APPLICATION:
|
|
1154
|
-
return scaffoldApplicationType({
|
|
1155
|
-
projectRoot,
|
|
1156
|
-
projectName,
|
|
1157
|
-
packageName,
|
|
1158
|
-
packageManager,
|
|
1159
|
-
applicationTypes,
|
|
1160
|
-
tests,
|
|
1161
|
-
decisions
|
|
1162
|
-
});
|
|
1100
|
+
return scaffoldApplicationType({projectRoot});
|
|
1163
1101
|
case projectTypes.CLI:
|
|
1164
1102
|
return scaffoldCliType({packageName, visibility, projectRoot, dialect, publishRegistry});
|
|
1165
1103
|
case projectTypes.MONOREPO:
|
|
1166
|
-
return scaffoldMonorepoType({
|
|
1104
|
+
return scaffoldMonorepoType({projectRoot});
|
|
1167
1105
|
case 'Other':
|
|
1168
1106
|
return {
|
|
1169
1107
|
eslintConfigs: []
|
|
@@ -1173,6 +1111,43 @@ async function scaffoldProjectType ({
|
|
|
1173
1111
|
}
|
|
1174
1112
|
}
|
|
1175
1113
|
|
|
1114
|
+
async function chooseProjectTypePlugin ({types, projectType, decisions}) {
|
|
1115
|
+
if (!Object.keys(types).length) return 'Other';
|
|
1116
|
+
|
|
1117
|
+
const answers = await prompt$1([{
|
|
1118
|
+
name: questionNames$1.PROJECT_TYPE_CHOICE,
|
|
1119
|
+
type: 'list',
|
|
1120
|
+
message: `What type of ${projectType} is this?`,
|
|
1121
|
+
choices: [...Object.keys(types), new Separator(), 'Other']
|
|
1122
|
+
}], decisions);
|
|
1123
|
+
|
|
1124
|
+
return answers[questionNames$1.PROJECT_TYPE_CHOICE];
|
|
1125
|
+
}
|
|
1126
|
+
|
|
1127
|
+
async function scaffoldProjectTypePlugin ({
|
|
1128
|
+
projectRoot,
|
|
1129
|
+
projectType,
|
|
1130
|
+
projectName,
|
|
1131
|
+
packageName,
|
|
1132
|
+
packageManager,
|
|
1133
|
+
scope,
|
|
1134
|
+
tests,
|
|
1135
|
+
decisions,
|
|
1136
|
+
plugins
|
|
1137
|
+
}) {
|
|
1138
|
+
const pluginsForProjectType = plugins[projectType];
|
|
1139
|
+
|
|
1140
|
+
if (!pluginsForProjectType) return {};
|
|
1141
|
+
|
|
1142
|
+
const chosenType = await chooseProjectTypePlugin({types: pluginsForProjectType, decisions, projectType});
|
|
1143
|
+
|
|
1144
|
+
return scaffoldChoice(
|
|
1145
|
+
pluginsForProjectType,
|
|
1146
|
+
chosenType,
|
|
1147
|
+
{projectRoot, projectName, packageName, packageManager, scope, tests}
|
|
1148
|
+
);
|
|
1149
|
+
}
|
|
1150
|
+
|
|
1176
1151
|
async function scaffoldTesting ({
|
|
1177
1152
|
projectRoot,
|
|
1178
1153
|
visibility,
|
|
@@ -1446,7 +1421,7 @@ async function scaffolder (options) {
|
|
|
1446
1421
|
pathWithinParent
|
|
1447
1422
|
})
|
|
1448
1423
|
]);
|
|
1449
|
-
const [nodeVersion, npmResults, dialectResults, codeStyleResults] = await Promise.all([
|
|
1424
|
+
const [nodeVersion, npmResults, dialectResults, codeStyleResults, projectTypePluginResults] = await Promise.all([
|
|
1450
1425
|
scaffoldNodeVersion({projectRoot, nodeVersionCategory}),
|
|
1451
1426
|
scaffoldNpmConfig({projectType, projectRoot, registries}),
|
|
1452
1427
|
scaffoldDialect({
|
|
@@ -1466,6 +1441,21 @@ async function scaffolder (options) {
|
|
|
1466
1441
|
configureLinting,
|
|
1467
1442
|
buildDirectory: projectTypeResults.buildDirectory,
|
|
1468
1443
|
eslint: verificationResults.eslint
|
|
1444
|
+
}),
|
|
1445
|
+
scaffoldProjectTypePlugin({
|
|
1446
|
+
projectRoot,
|
|
1447
|
+
projectType,
|
|
1448
|
+
projectName,
|
|
1449
|
+
packageName,
|
|
1450
|
+
packageManager,
|
|
1451
|
+
scope,
|
|
1452
|
+
tests,
|
|
1453
|
+
decisions,
|
|
1454
|
+
plugins: {
|
|
1455
|
+
[projectTypes.PACKAGE]: packageTypes,
|
|
1456
|
+
[projectTypes.APPLICATION]: applicationTypes,
|
|
1457
|
+
[projectTypes.MONOREPO]: monorepoTypes
|
|
1458
|
+
}
|
|
1469
1459
|
})
|
|
1470
1460
|
]);
|
|
1471
1461
|
const mergedContributions = deepmerge.all([
|
|
@@ -1478,6 +1468,7 @@ async function scaffolder (options) {
|
|
|
1478
1468
|
scaffoldChoice(ciServices, ci, {projectRoot, vcs, visibility, projectType, projectName, nodeVersion, tests}),
|
|
1479
1469
|
scaffold$5({projectRoot, projectType, configs, pathWithinParent})
|
|
1480
1470
|
])),
|
|
1471
|
+
projectTypePluginResults,
|
|
1481
1472
|
projectTypeResults,
|
|
1482
1473
|
verificationResults,
|
|
1483
1474
|
codeStyleResults,
|