@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.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,73 +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
|
-
|
|
1100
|
-
const results = await javascriptCore.scaffoldChoice(monorepoTypes, chosenType, {projectRoot, packageManager});
|
|
1056
|
+
await javascriptCore.mergeIntoExistingPackageJson({projectRoot, config: {private: true}});
|
|
1101
1057
|
|
|
1102
|
-
return
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
}]
|
|
1111
|
-
},
|
|
1112
|
-
results
|
|
1113
|
-
);
|
|
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
|
+
};
|
|
1114
1066
|
}
|
|
1115
1067
|
|
|
1116
1068
|
const defaultBuildDirectory = 'bin';
|
|
@@ -1158,12 +1110,8 @@ async function scaffoldProjectType ({
|
|
|
1158
1110
|
packageName,
|
|
1159
1111
|
packageManager,
|
|
1160
1112
|
visibility,
|
|
1161
|
-
applicationTypes,
|
|
1162
|
-
packageTypes,
|
|
1163
1113
|
packageBundlers,
|
|
1164
|
-
monorepoTypes,
|
|
1165
1114
|
scope,
|
|
1166
|
-
tests,
|
|
1167
1115
|
vcs,
|
|
1168
1116
|
decisions,
|
|
1169
1117
|
dialect,
|
|
@@ -1178,28 +1126,18 @@ async function scaffoldProjectType ({
|
|
|
1178
1126
|
packageManager,
|
|
1179
1127
|
visibility,
|
|
1180
1128
|
scope,
|
|
1181
|
-
packageTypes,
|
|
1182
1129
|
packageBundlers,
|
|
1183
|
-
tests,
|
|
1184
1130
|
vcs,
|
|
1185
1131
|
decisions,
|
|
1186
1132
|
dialect,
|
|
1187
1133
|
publishRegistry
|
|
1188
1134
|
});
|
|
1189
1135
|
case javascriptCore.projectTypes.APPLICATION:
|
|
1190
|
-
return scaffoldApplicationType({
|
|
1191
|
-
projectRoot,
|
|
1192
|
-
projectName,
|
|
1193
|
-
packageName,
|
|
1194
|
-
packageManager,
|
|
1195
|
-
applicationTypes,
|
|
1196
|
-
tests,
|
|
1197
|
-
decisions
|
|
1198
|
-
});
|
|
1136
|
+
return scaffoldApplicationType({projectRoot});
|
|
1199
1137
|
case javascriptCore.projectTypes.CLI:
|
|
1200
1138
|
return scaffoldCliType({packageName, visibility, projectRoot, dialect, publishRegistry});
|
|
1201
1139
|
case javascriptCore.projectTypes.MONOREPO:
|
|
1202
|
-
return scaffoldMonorepoType({
|
|
1140
|
+
return scaffoldMonorepoType({projectRoot});
|
|
1203
1141
|
case 'Other':
|
|
1204
1142
|
return {
|
|
1205
1143
|
eslintConfigs: []
|
|
@@ -1209,6 +1147,43 @@ async function scaffoldProjectType ({
|
|
|
1209
1147
|
}
|
|
1210
1148
|
}
|
|
1211
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
|
+
tests,
|
|
1171
|
+
decisions,
|
|
1172
|
+
plugins
|
|
1173
|
+
}) {
|
|
1174
|
+
const pluginsForProjectType = plugins[projectType];
|
|
1175
|
+
|
|
1176
|
+
if (!pluginsForProjectType) return {};
|
|
1177
|
+
|
|
1178
|
+
const chosenType = await chooseProjectTypePlugin({types: pluginsForProjectType, decisions, projectType});
|
|
1179
|
+
|
|
1180
|
+
return javascriptCore.scaffoldChoice(
|
|
1181
|
+
pluginsForProjectType,
|
|
1182
|
+
chosenType,
|
|
1183
|
+
{projectRoot, projectName, packageName, packageManager, scope, tests}
|
|
1184
|
+
);
|
|
1185
|
+
}
|
|
1186
|
+
|
|
1212
1187
|
async function scaffoldTesting ({
|
|
1213
1188
|
projectRoot,
|
|
1214
1189
|
visibility,
|
|
@@ -1482,7 +1457,7 @@ async function scaffolder (options) {
|
|
|
1482
1457
|
pathWithinParent
|
|
1483
1458
|
})
|
|
1484
1459
|
]);
|
|
1485
|
-
const [nodeVersion, npmResults, dialectResults, codeStyleResults] = await Promise.all([
|
|
1460
|
+
const [nodeVersion, npmResults, dialectResults, codeStyleResults, projectTypePluginResults] = await Promise.all([
|
|
1486
1461
|
scaffoldNodeVersion({projectRoot, nodeVersionCategory}),
|
|
1487
1462
|
scaffoldNpmConfig({projectType, projectRoot, registries}),
|
|
1488
1463
|
scaffoldDialect({
|
|
@@ -1502,6 +1477,21 @@ async function scaffolder (options) {
|
|
|
1502
1477
|
configureLinting,
|
|
1503
1478
|
buildDirectory: projectTypeResults.buildDirectory,
|
|
1504
1479
|
eslint: verificationResults.eslint
|
|
1480
|
+
}),
|
|
1481
|
+
scaffoldProjectTypePlugin({
|
|
1482
|
+
projectRoot,
|
|
1483
|
+
projectType,
|
|
1484
|
+
projectName,
|
|
1485
|
+
packageName,
|
|
1486
|
+
packageManager,
|
|
1487
|
+
scope,
|
|
1488
|
+
tests,
|
|
1489
|
+
decisions,
|
|
1490
|
+
plugins: {
|
|
1491
|
+
[javascriptCore.projectTypes.PACKAGE]: packageTypes,
|
|
1492
|
+
[javascriptCore.projectTypes.APPLICATION]: applicationTypes,
|
|
1493
|
+
[javascriptCore.projectTypes.MONOREPO]: monorepoTypes
|
|
1494
|
+
}
|
|
1505
1495
|
})
|
|
1506
1496
|
]);
|
|
1507
1497
|
const mergedContributions = deepmerge__default["default"].all([
|
|
@@ -1514,6 +1504,7 @@ async function scaffolder (options) {
|
|
|
1514
1504
|
javascriptCore.scaffoldChoice(ciServices, ci, {projectRoot, vcs, visibility, projectType, projectName, nodeVersion, tests}),
|
|
1515
1505
|
commitConventionPlugin.scaffold({projectRoot, projectType, configs, pathWithinParent})
|
|
1516
1506
|
])),
|
|
1507
|
+
projectTypePluginResults,
|
|
1517
1508
|
projectTypeResults,
|
|
1518
1509
|
verificationResults,
|
|
1519
1510
|
codeStyleResults,
|