@form8ion/javascript 7.0.4 → 7.2.0
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 +84 -92
- package/lib/index.js.map +1 -1
- package/lib/index.mjs +84 -92
- package/lib/index.mjs.map +1 -1
- package/package.json +5 -5
package/lib/index.js
CHANGED
|
@@ -829,19 +829,6 @@ function buildPackageName (projectName, scope) {
|
|
|
829
829
|
throw new Error(`The package name ${name} is invalid:${os.EOL}\t* ${errors.join(`${os.EOL}\t* `)}`);
|
|
830
830
|
}
|
|
831
831
|
|
|
832
|
-
async function chooseApplicationType ({types, projectType, decisions}) {
|
|
833
|
-
if (!Object.keys(types).length) return 'Other';
|
|
834
|
-
|
|
835
|
-
const answers = await overridablePrompts.prompt([{
|
|
836
|
-
name: questionNames$1.PROJECT_TYPE_CHOICE,
|
|
837
|
-
type: 'list',
|
|
838
|
-
message: `What type of ${projectType} is this?`,
|
|
839
|
-
choices: [...Object.keys(types), new overridablePrompts.Separator(), 'Other']
|
|
840
|
-
}], decisions);
|
|
841
|
-
|
|
842
|
-
return answers[questionNames$1.PROJECT_TYPE_CHOICE];
|
|
843
|
-
}
|
|
844
|
-
|
|
845
832
|
function getInstallationCommand(packageManager) {
|
|
846
833
|
if (javascriptCore.packageManagers.NPM === packageManager) return 'npm install';
|
|
847
834
|
if (javascriptCore.packageManagers.YARN === packageManager) return 'yarn add';
|
|
@@ -979,9 +966,7 @@ async function scaffoldPackageType ({
|
|
|
979
966
|
packageManager,
|
|
980
967
|
visibility,
|
|
981
968
|
scope,
|
|
982
|
-
packageTypes,
|
|
983
969
|
packageBundlers,
|
|
984
|
-
tests,
|
|
985
970
|
decisions,
|
|
986
971
|
dialect,
|
|
987
972
|
publishRegistry
|
|
@@ -1026,13 +1011,6 @@ async function scaffoldPackageType ({
|
|
|
1026
1011
|
})
|
|
1027
1012
|
]);
|
|
1028
1013
|
|
|
1029
|
-
const chosenType = await chooseApplicationType({types: packageTypes, projectType: 'package', decisions});
|
|
1030
|
-
const results = await javascriptCore.scaffoldChoice(
|
|
1031
|
-
packageTypes,
|
|
1032
|
-
chosenType,
|
|
1033
|
-
{projectRoot, projectName, packageName, tests, scope}
|
|
1034
|
-
);
|
|
1035
|
-
|
|
1036
1014
|
return deepmerge__default["default"].all([
|
|
1037
1015
|
{
|
|
1038
1016
|
documentation: scaffoldPackageDocumentation({packageName, visibility, scope, packageManager}),
|
|
@@ -1044,74 +1022,47 @@ async function scaffoldPackageType ({
|
|
|
1044
1022
|
scripts: {},
|
|
1045
1023
|
badges: defineBadges(packageName, visibility)
|
|
1046
1024
|
},
|
|
1047
|
-
detailsForBuild
|
|
1048
|
-
results
|
|
1025
|
+
detailsForBuild
|
|
1049
1026
|
]);
|
|
1050
1027
|
}
|
|
1051
1028
|
|
|
1052
|
-
const defaultBuildDirectory$1 = '
|
|
1029
|
+
const defaultBuildDirectory$1 = 'public';
|
|
1053
1030
|
|
|
1054
|
-
async function scaffoldApplicationType ({
|
|
1055
|
-
applicationTypes,
|
|
1056
|
-
projectRoot,
|
|
1057
|
-
projectName,
|
|
1058
|
-
packageName,
|
|
1059
|
-
packageManager,
|
|
1060
|
-
tests,
|
|
1061
|
-
decisions
|
|
1062
|
-
}) {
|
|
1031
|
+
async function scaffoldApplicationType ({projectRoot}) {
|
|
1063
1032
|
cliMessages.info('Scaffolding Application Details');
|
|
1064
1033
|
|
|
1065
|
-
|
|
1066
|
-
chooseApplicationType({types: applicationTypes, projectType: 'application', decisions}),
|
|
1067
|
-
javascriptCore.mergeIntoExistingPackageJson({projectRoot, config: {private: true}})
|
|
1068
|
-
]);
|
|
1069
|
-
|
|
1070
|
-
const results = await javascriptCore.scaffoldChoice(
|
|
1071
|
-
applicationTypes,
|
|
1072
|
-
chosenType,
|
|
1073
|
-
{projectRoot, projectName, packageName, packageManager, tests}
|
|
1074
|
-
);
|
|
1034
|
+
await javascriptCore.mergeIntoExistingPackageJson({projectRoot, config: {private: true}});
|
|
1075
1035
|
|
|
1076
|
-
const buildDirectory =
|
|
1036
|
+
const buildDirectory = defaultBuildDirectory$1;
|
|
1077
1037
|
|
|
1078
|
-
return
|
|
1079
|
-
{
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
prebuild: 'run-s clean'
|
|
1084
|
-
},
|
|
1085
|
-
dependencies: [],
|
|
1086
|
-
devDependencies: ['rimraf'],
|
|
1087
|
-
vcsIgnore: {files: ['.env'], directories: [`/${buildDirectory}/`]},
|
|
1088
|
-
buildDirectory,
|
|
1089
|
-
eslintConfigs: [],
|
|
1090
|
-
nextSteps: []
|
|
1038
|
+
return {
|
|
1039
|
+
scripts: {
|
|
1040
|
+
clean: `rimraf ./${buildDirectory}`,
|
|
1041
|
+
start: `node ./${buildDirectory}/index.js`,
|
|
1042
|
+
prebuild: 'run-s clean'
|
|
1091
1043
|
},
|
|
1092
|
-
|
|
1093
|
-
|
|
1044
|
+
dependencies: [],
|
|
1045
|
+
devDependencies: ['rimraf'],
|
|
1046
|
+
vcsIgnore: {files: ['.env'], directories: [`/${buildDirectory}/`]},
|
|
1047
|
+
buildDirectory,
|
|
1048
|
+
eslintConfigs: [],
|
|
1049
|
+
nextSteps: []
|
|
1050
|
+
};
|
|
1094
1051
|
}
|
|
1095
1052
|
|
|
1096
|
-
async function scaffoldMonorepoType ({
|
|
1053
|
+
async function scaffoldMonorepoType ({projectRoot}) {
|
|
1097
1054
|
cliMessages.info('Scaffolding Monorepo Details');
|
|
1098
1055
|
|
|
1099
|
-
const chosenType = await chooseApplicationType({types: monorepoTypes, projectType: javascriptCore.projectTypes.MONOREPO, decisions});
|
|
1100
|
-
const results = await javascriptCore.scaffoldChoice(monorepoTypes, chosenType, {projectRoot, packageManager});
|
|
1101
|
-
|
|
1102
1056
|
await javascriptCore.mergeIntoExistingPackageJson({projectRoot, config: {private: true}});
|
|
1103
1057
|
|
|
1104
|
-
return
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
},
|
|
1113
|
-
results
|
|
1114
|
-
);
|
|
1058
|
+
return {
|
|
1059
|
+
eslintConfigs: [],
|
|
1060
|
+
nextSteps: [{
|
|
1061
|
+
summary: 'Add packages to your new monorepo',
|
|
1062
|
+
description: 'Leverage [@form8ion/add-package-to-monorepo](https://npm.im/@form8ion/add-package-to-monorepo)'
|
|
1063
|
+
+ ' to scaffold new packages into your new monorepo'
|
|
1064
|
+
}]
|
|
1065
|
+
};
|
|
1115
1066
|
}
|
|
1116
1067
|
|
|
1117
1068
|
const defaultBuildDirectory = 'bin';
|
|
@@ -1159,12 +1110,8 @@ async function scaffoldProjectType ({
|
|
|
1159
1110
|
packageName,
|
|
1160
1111
|
packageManager,
|
|
1161
1112
|
visibility,
|
|
1162
|
-
applicationTypes,
|
|
1163
|
-
packageTypes,
|
|
1164
1113
|
packageBundlers,
|
|
1165
|
-
monorepoTypes,
|
|
1166
1114
|
scope,
|
|
1167
|
-
tests,
|
|
1168
1115
|
vcs,
|
|
1169
1116
|
decisions,
|
|
1170
1117
|
dialect,
|
|
@@ -1179,28 +1126,18 @@ async function scaffoldProjectType ({
|
|
|
1179
1126
|
packageManager,
|
|
1180
1127
|
visibility,
|
|
1181
1128
|
scope,
|
|
1182
|
-
packageTypes,
|
|
1183
1129
|
packageBundlers,
|
|
1184
|
-
tests,
|
|
1185
1130
|
vcs,
|
|
1186
1131
|
decisions,
|
|
1187
1132
|
dialect,
|
|
1188
1133
|
publishRegistry
|
|
1189
1134
|
});
|
|
1190
1135
|
case javascriptCore.projectTypes.APPLICATION:
|
|
1191
|
-
return scaffoldApplicationType({
|
|
1192
|
-
projectRoot,
|
|
1193
|
-
projectName,
|
|
1194
|
-
packageName,
|
|
1195
|
-
packageManager,
|
|
1196
|
-
applicationTypes,
|
|
1197
|
-
tests,
|
|
1198
|
-
decisions
|
|
1199
|
-
});
|
|
1136
|
+
return scaffoldApplicationType({projectRoot});
|
|
1200
1137
|
case javascriptCore.projectTypes.CLI:
|
|
1201
1138
|
return scaffoldCliType({packageName, visibility, projectRoot, dialect, publishRegistry});
|
|
1202
1139
|
case javascriptCore.projectTypes.MONOREPO:
|
|
1203
|
-
return scaffoldMonorepoType({
|
|
1140
|
+
return scaffoldMonorepoType({projectRoot});
|
|
1204
1141
|
case 'Other':
|
|
1205
1142
|
return {
|
|
1206
1143
|
eslintConfigs: []
|
|
@@ -1210,6 +1147,44 @@ async function scaffoldProjectType ({
|
|
|
1210
1147
|
}
|
|
1211
1148
|
}
|
|
1212
1149
|
|
|
1150
|
+
async function chooseProjectTypePlugin ({types, projectType, decisions}) {
|
|
1151
|
+
if (!Object.keys(types).length) return 'Other';
|
|
1152
|
+
|
|
1153
|
+
const answers = await overridablePrompts.prompt([{
|
|
1154
|
+
name: questionNames$1.PROJECT_TYPE_CHOICE,
|
|
1155
|
+
type: 'list',
|
|
1156
|
+
message: `What type of ${projectType} is this?`,
|
|
1157
|
+
choices: [...Object.keys(types), new overridablePrompts.Separator(), 'Other']
|
|
1158
|
+
}], decisions);
|
|
1159
|
+
|
|
1160
|
+
return answers[questionNames$1.PROJECT_TYPE_CHOICE];
|
|
1161
|
+
}
|
|
1162
|
+
|
|
1163
|
+
async function scaffoldProjectTypePlugin ({
|
|
1164
|
+
projectRoot,
|
|
1165
|
+
projectType,
|
|
1166
|
+
projectName,
|
|
1167
|
+
packageName,
|
|
1168
|
+
packageManager,
|
|
1169
|
+
scope,
|
|
1170
|
+
dialect,
|
|
1171
|
+
tests,
|
|
1172
|
+
decisions,
|
|
1173
|
+
plugins
|
|
1174
|
+
}) {
|
|
1175
|
+
const pluginsForProjectType = plugins[projectType];
|
|
1176
|
+
|
|
1177
|
+
if (!pluginsForProjectType) return {};
|
|
1178
|
+
|
|
1179
|
+
const chosenType = await chooseProjectTypePlugin({types: pluginsForProjectType, decisions, projectType});
|
|
1180
|
+
|
|
1181
|
+
return javascriptCore.scaffoldChoice(
|
|
1182
|
+
pluginsForProjectType,
|
|
1183
|
+
chosenType,
|
|
1184
|
+
{projectRoot, projectName, packageName, packageManager, scope, tests, dialect}
|
|
1185
|
+
);
|
|
1186
|
+
}
|
|
1187
|
+
|
|
1213
1188
|
async function scaffoldTesting ({
|
|
1214
1189
|
projectRoot,
|
|
1215
1190
|
visibility,
|
|
@@ -1483,7 +1458,7 @@ async function scaffolder (options) {
|
|
|
1483
1458
|
pathWithinParent
|
|
1484
1459
|
})
|
|
1485
1460
|
]);
|
|
1486
|
-
const [nodeVersion, npmResults, dialectResults, codeStyleResults] = await Promise.all([
|
|
1461
|
+
const [nodeVersion, npmResults, dialectResults, codeStyleResults, projectTypePluginResults] = await Promise.all([
|
|
1487
1462
|
scaffoldNodeVersion({projectRoot, nodeVersionCategory}),
|
|
1488
1463
|
scaffoldNpmConfig({projectType, projectRoot, registries}),
|
|
1489
1464
|
scaffoldDialect({
|
|
@@ -1503,6 +1478,22 @@ async function scaffolder (options) {
|
|
|
1503
1478
|
configureLinting,
|
|
1504
1479
|
buildDirectory: projectTypeResults.buildDirectory,
|
|
1505
1480
|
eslint: verificationResults.eslint
|
|
1481
|
+
}),
|
|
1482
|
+
scaffoldProjectTypePlugin({
|
|
1483
|
+
projectRoot,
|
|
1484
|
+
projectType,
|
|
1485
|
+
projectName,
|
|
1486
|
+
packageName,
|
|
1487
|
+
packageManager,
|
|
1488
|
+
scope,
|
|
1489
|
+
dialect,
|
|
1490
|
+
tests,
|
|
1491
|
+
decisions,
|
|
1492
|
+
plugins: {
|
|
1493
|
+
[javascriptCore.projectTypes.PACKAGE]: packageTypes,
|
|
1494
|
+
[javascriptCore.projectTypes.APPLICATION]: applicationTypes,
|
|
1495
|
+
[javascriptCore.projectTypes.MONOREPO]: monorepoTypes
|
|
1496
|
+
}
|
|
1506
1497
|
})
|
|
1507
1498
|
]);
|
|
1508
1499
|
const mergedContributions = deepmerge__default["default"].all([
|
|
@@ -1515,6 +1506,7 @@ async function scaffolder (options) {
|
|
|
1515
1506
|
javascriptCore.scaffoldChoice(ciServices, ci, {projectRoot, vcs, visibility, projectType, projectName, nodeVersion, tests}),
|
|
1516
1507
|
commitConventionPlugin.scaffold({projectRoot, projectType, configs, pathWithinParent})
|
|
1517
1508
|
])),
|
|
1509
|
+
projectTypePluginResults,
|
|
1518
1510
|
projectTypeResults,
|
|
1519
1511
|
verificationResults,
|
|
1520
1512
|
codeStyleResults,
|