@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.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,74 +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
|
-
const chosenType = await chooseApplicationType({types: monorepoTypes, projectType: projectTypes.MONOREPO, decisions});
|
|
1064
|
-
const results = await scaffoldChoice(monorepoTypes, chosenType, {projectRoot, packageManager});
|
|
1065
|
-
|
|
1066
1020
|
await mergeIntoExistingPackageJson({projectRoot, config: {private: true}});
|
|
1067
1021
|
|
|
1068
|
-
return
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
},
|
|
1077
|
-
results
|
|
1078
|
-
);
|
|
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
|
+
};
|
|
1079
1030
|
}
|
|
1080
1031
|
|
|
1081
1032
|
const defaultBuildDirectory = 'bin';
|
|
@@ -1123,12 +1074,8 @@ async function scaffoldProjectType ({
|
|
|
1123
1074
|
packageName,
|
|
1124
1075
|
packageManager,
|
|
1125
1076
|
visibility,
|
|
1126
|
-
applicationTypes,
|
|
1127
|
-
packageTypes,
|
|
1128
1077
|
packageBundlers,
|
|
1129
|
-
monorepoTypes,
|
|
1130
1078
|
scope,
|
|
1131
|
-
tests,
|
|
1132
1079
|
vcs,
|
|
1133
1080
|
decisions,
|
|
1134
1081
|
dialect,
|
|
@@ -1143,28 +1090,18 @@ async function scaffoldProjectType ({
|
|
|
1143
1090
|
packageManager,
|
|
1144
1091
|
visibility,
|
|
1145
1092
|
scope,
|
|
1146
|
-
packageTypes,
|
|
1147
1093
|
packageBundlers,
|
|
1148
|
-
tests,
|
|
1149
1094
|
vcs,
|
|
1150
1095
|
decisions,
|
|
1151
1096
|
dialect,
|
|
1152
1097
|
publishRegistry
|
|
1153
1098
|
});
|
|
1154
1099
|
case projectTypes.APPLICATION:
|
|
1155
|
-
return scaffoldApplicationType({
|
|
1156
|
-
projectRoot,
|
|
1157
|
-
projectName,
|
|
1158
|
-
packageName,
|
|
1159
|
-
packageManager,
|
|
1160
|
-
applicationTypes,
|
|
1161
|
-
tests,
|
|
1162
|
-
decisions
|
|
1163
|
-
});
|
|
1100
|
+
return scaffoldApplicationType({projectRoot});
|
|
1164
1101
|
case projectTypes.CLI:
|
|
1165
1102
|
return scaffoldCliType({packageName, visibility, projectRoot, dialect, publishRegistry});
|
|
1166
1103
|
case projectTypes.MONOREPO:
|
|
1167
|
-
return scaffoldMonorepoType({
|
|
1104
|
+
return scaffoldMonorepoType({projectRoot});
|
|
1168
1105
|
case 'Other':
|
|
1169
1106
|
return {
|
|
1170
1107
|
eslintConfigs: []
|
|
@@ -1174,6 +1111,44 @@ async function scaffoldProjectType ({
|
|
|
1174
1111
|
}
|
|
1175
1112
|
}
|
|
1176
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
|
+
dialect,
|
|
1135
|
+
tests,
|
|
1136
|
+
decisions,
|
|
1137
|
+
plugins
|
|
1138
|
+
}) {
|
|
1139
|
+
const pluginsForProjectType = plugins[projectType];
|
|
1140
|
+
|
|
1141
|
+
if (!pluginsForProjectType) return {};
|
|
1142
|
+
|
|
1143
|
+
const chosenType = await chooseProjectTypePlugin({types: pluginsForProjectType, decisions, projectType});
|
|
1144
|
+
|
|
1145
|
+
return scaffoldChoice(
|
|
1146
|
+
pluginsForProjectType,
|
|
1147
|
+
chosenType,
|
|
1148
|
+
{projectRoot, projectName, packageName, packageManager, scope, tests, dialect}
|
|
1149
|
+
);
|
|
1150
|
+
}
|
|
1151
|
+
|
|
1177
1152
|
async function scaffoldTesting ({
|
|
1178
1153
|
projectRoot,
|
|
1179
1154
|
visibility,
|
|
@@ -1447,7 +1422,7 @@ async function scaffolder (options) {
|
|
|
1447
1422
|
pathWithinParent
|
|
1448
1423
|
})
|
|
1449
1424
|
]);
|
|
1450
|
-
const [nodeVersion, npmResults, dialectResults, codeStyleResults] = await Promise.all([
|
|
1425
|
+
const [nodeVersion, npmResults, dialectResults, codeStyleResults, projectTypePluginResults] = await Promise.all([
|
|
1451
1426
|
scaffoldNodeVersion({projectRoot, nodeVersionCategory}),
|
|
1452
1427
|
scaffoldNpmConfig({projectType, projectRoot, registries}),
|
|
1453
1428
|
scaffoldDialect({
|
|
@@ -1467,6 +1442,22 @@ async function scaffolder (options) {
|
|
|
1467
1442
|
configureLinting,
|
|
1468
1443
|
buildDirectory: projectTypeResults.buildDirectory,
|
|
1469
1444
|
eslint: verificationResults.eslint
|
|
1445
|
+
}),
|
|
1446
|
+
scaffoldProjectTypePlugin({
|
|
1447
|
+
projectRoot,
|
|
1448
|
+
projectType,
|
|
1449
|
+
projectName,
|
|
1450
|
+
packageName,
|
|
1451
|
+
packageManager,
|
|
1452
|
+
scope,
|
|
1453
|
+
dialect,
|
|
1454
|
+
tests,
|
|
1455
|
+
decisions,
|
|
1456
|
+
plugins: {
|
|
1457
|
+
[projectTypes.PACKAGE]: packageTypes,
|
|
1458
|
+
[projectTypes.APPLICATION]: applicationTypes,
|
|
1459
|
+
[projectTypes.MONOREPO]: monorepoTypes
|
|
1460
|
+
}
|
|
1470
1461
|
})
|
|
1471
1462
|
]);
|
|
1472
1463
|
const mergedContributions = deepmerge.all([
|
|
@@ -1479,6 +1470,7 @@ async function scaffolder (options) {
|
|
|
1479
1470
|
scaffoldChoice(ciServices, ci, {projectRoot, vcs, visibility, projectType, projectName, nodeVersion, tests}),
|
|
1480
1471
|
scaffold$5({projectRoot, projectType, configs, pathWithinParent})
|
|
1481
1472
|
])),
|
|
1473
|
+
projectTypePluginResults,
|
|
1482
1474
|
projectTypeResults,
|
|
1483
1475
|
verificationResults,
|
|
1484
1476
|
codeStyleResults,
|