@form8ion/javascript 11.2.1 → 11.3.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 +147 -122
- package/lib/index.js.map +1 -1
- package/lib/index.mjs +147 -122
- package/lib/index.mjs.map +1 -1
- package/package.json +1 -1
package/lib/index.mjs
CHANGED
|
@@ -466,7 +466,7 @@ async function scaffoldPackageType ({
|
|
|
466
466
|
]);
|
|
467
467
|
}
|
|
468
468
|
|
|
469
|
-
async function
|
|
469
|
+
async function liftPublishable ({projectRoot}) {
|
|
470
470
|
await mergeIntoExistingPackageJson({projectRoot, config: {publishConfig: {provenance: true}}});
|
|
471
471
|
|
|
472
472
|
return {
|
|
@@ -475,15 +475,159 @@ async function lifter$1 ({projectRoot}) {
|
|
|
475
475
|
};
|
|
476
476
|
}
|
|
477
477
|
|
|
478
|
-
|
|
478
|
+
function liftPackage$1 ({projectRoot}) {
|
|
479
|
+
return liftPublishable({projectRoot});
|
|
480
|
+
}
|
|
481
|
+
|
|
482
|
+
async function isPackage ({projectRoot}) {
|
|
479
483
|
const {exports, publishConfig, bin} = JSON.parse(await promises$1.readFile(`${projectRoot}/package.json`, 'utf-8'));
|
|
480
484
|
|
|
481
485
|
return !!exports || (!!publishConfig && !bin);
|
|
482
486
|
}
|
|
483
487
|
|
|
488
|
+
const defaultBuildDirectory$1 = 'public';
|
|
489
|
+
|
|
490
|
+
async function scaffoldApplicationType ({projectRoot}) {
|
|
491
|
+
info('Scaffolding Application Details');
|
|
492
|
+
|
|
493
|
+
await mergeIntoExistingPackageJson({projectRoot, config: {private: true}});
|
|
494
|
+
|
|
495
|
+
const buildDirectory = defaultBuildDirectory$1;
|
|
496
|
+
|
|
497
|
+
return {
|
|
498
|
+
scripts: {
|
|
499
|
+
clean: `rimraf ./${buildDirectory}`,
|
|
500
|
+
start: `node ./${buildDirectory}/index.js`,
|
|
501
|
+
prebuild: 'run-s clean'
|
|
502
|
+
},
|
|
503
|
+
dependencies: [],
|
|
504
|
+
devDependencies: ['rimraf'],
|
|
505
|
+
vcsIgnore: {files: ['.env'], directories: [`/${buildDirectory}/`]},
|
|
506
|
+
buildDirectory,
|
|
507
|
+
nextSteps: []
|
|
508
|
+
};
|
|
509
|
+
}
|
|
510
|
+
|
|
511
|
+
async function scaffoldMonorepoType ({projectRoot}) {
|
|
512
|
+
info('Scaffolding Monorepo Details');
|
|
513
|
+
|
|
514
|
+
await mergeIntoExistingPackageJson({projectRoot, config: {private: true}});
|
|
515
|
+
|
|
516
|
+
return {
|
|
517
|
+
nextSteps: [{
|
|
518
|
+
summary: 'Add packages to your new monorepo',
|
|
519
|
+
description: 'Leverage [@form8ion/add-package-to-monorepo](https://npm.im/@form8ion/add-package-to-monorepo)'
|
|
520
|
+
+ ' to scaffold new packages into your new monorepo'
|
|
521
|
+
}]
|
|
522
|
+
};
|
|
523
|
+
}
|
|
524
|
+
|
|
525
|
+
const defaultBuildDirectory = 'bin';
|
|
526
|
+
|
|
527
|
+
async function scaffoldCliType ({packageName, visibility, projectRoot, dialect, publishRegistry}) {
|
|
528
|
+
const [rollupResults] = await Promise.all([
|
|
529
|
+
scaffold$3({projectRoot, dialect, projectType: projectTypes$1.CLI}),
|
|
530
|
+
mergeIntoExistingPackageJson({
|
|
531
|
+
projectRoot,
|
|
532
|
+
config: {
|
|
533
|
+
bin: {},
|
|
534
|
+
files: [`${defaultBuildDirectory}/`],
|
|
535
|
+
publishConfig: {
|
|
536
|
+
access: 'Public' === visibility ? 'public' : 'restricted',
|
|
537
|
+
provenance: true,
|
|
538
|
+
...publishRegistry && {registry: publishRegistry}
|
|
539
|
+
}
|
|
540
|
+
}
|
|
541
|
+
})
|
|
542
|
+
]);
|
|
543
|
+
|
|
544
|
+
return deepmerge(
|
|
545
|
+
rollupResults,
|
|
546
|
+
{
|
|
547
|
+
scripts: {
|
|
548
|
+
clean: `rimraf ./${defaultBuildDirectory}`,
|
|
549
|
+
prebuild: 'run-s clean',
|
|
550
|
+
build: 'npm-run-all --print-label --parallel build:*',
|
|
551
|
+
prepack: 'run-s build'
|
|
552
|
+
},
|
|
553
|
+
dependencies: ['update-notifier'],
|
|
554
|
+
devDependencies: ['rimraf'],
|
|
555
|
+
vcsIgnore: {files: [], directories: [`/${defaultBuildDirectory}/`]},
|
|
556
|
+
buildDirectory: defaultBuildDirectory,
|
|
557
|
+
badges: defineBadges(packageName, visibility),
|
|
558
|
+
nextSteps: []
|
|
559
|
+
}
|
|
560
|
+
);
|
|
561
|
+
}
|
|
562
|
+
|
|
563
|
+
async function isCli ({projectRoot}) {
|
|
564
|
+
const {bin} = JSON.parse(await promises$1.readFile(`${projectRoot}/package.json`, 'utf-8'));
|
|
565
|
+
|
|
566
|
+
return !!bin;
|
|
567
|
+
}
|
|
568
|
+
|
|
569
|
+
function liftCli ({projectRoot}) {
|
|
570
|
+
return liftPublishable({projectRoot});
|
|
571
|
+
}
|
|
572
|
+
|
|
573
|
+
async function scaffoldProjectType ({
|
|
574
|
+
projectType,
|
|
575
|
+
projectRoot,
|
|
576
|
+
projectName,
|
|
577
|
+
packageName,
|
|
578
|
+
packageManager,
|
|
579
|
+
visibility,
|
|
580
|
+
packageBundlers,
|
|
581
|
+
scope,
|
|
582
|
+
vcs,
|
|
583
|
+
decisions,
|
|
584
|
+
dialect,
|
|
585
|
+
provideExample,
|
|
586
|
+
publishRegistry
|
|
587
|
+
}) {
|
|
588
|
+
switch (projectType) {
|
|
589
|
+
case projectTypes$1.PACKAGE:
|
|
590
|
+
return scaffoldPackageType({
|
|
591
|
+
projectRoot,
|
|
592
|
+
projectName,
|
|
593
|
+
packageName,
|
|
594
|
+
packageManager,
|
|
595
|
+
visibility,
|
|
596
|
+
scope,
|
|
597
|
+
packageBundlers,
|
|
598
|
+
vcs,
|
|
599
|
+
decisions,
|
|
600
|
+
dialect,
|
|
601
|
+
provideExample,
|
|
602
|
+
publishRegistry
|
|
603
|
+
});
|
|
604
|
+
case projectTypes$1.APPLICATION:
|
|
605
|
+
return scaffoldApplicationType({projectRoot});
|
|
606
|
+
case projectTypes$1.CLI:
|
|
607
|
+
return scaffoldCliType({packageName, visibility, projectRoot, dialect, publishRegistry});
|
|
608
|
+
case projectTypes$1.MONOREPO:
|
|
609
|
+
return scaffoldMonorepoType({projectRoot});
|
|
610
|
+
case 'Other':
|
|
611
|
+
return {};
|
|
612
|
+
default:
|
|
613
|
+
throw new Error(`The project-type of ${projectType} is invalid`);
|
|
614
|
+
}
|
|
615
|
+
}
|
|
616
|
+
|
|
617
|
+
async function lifter$1 ({projectRoot}) {
|
|
618
|
+
if (await isPackage({projectRoot})) return liftPackage$1({projectRoot});
|
|
619
|
+
if (await isCli({projectRoot})) return liftCli({projectRoot});
|
|
620
|
+
|
|
621
|
+
return {};
|
|
622
|
+
}
|
|
623
|
+
|
|
624
|
+
async function tester$1 ({projectRoot}) {
|
|
625
|
+
return await isPackage({projectRoot}) || isCli({projectRoot});
|
|
626
|
+
}
|
|
627
|
+
|
|
484
628
|
var projectTypes = /*#__PURE__*/Object.freeze({
|
|
485
629
|
__proto__: null,
|
|
486
|
-
scaffold:
|
|
630
|
+
scaffold: scaffoldProjectType,
|
|
487
631
|
lift: lifter$1,
|
|
488
632
|
test: tester$1
|
|
489
633
|
});
|
|
@@ -1220,125 +1364,6 @@ function buildPackageName (projectName, scope) {
|
|
|
1220
1364
|
throw new Error(`The package name ${name} is invalid:${EOL}\t* ${errors.join(`${EOL}\t* `)}`);
|
|
1221
1365
|
}
|
|
1222
1366
|
|
|
1223
|
-
const defaultBuildDirectory$1 = 'public';
|
|
1224
|
-
|
|
1225
|
-
async function scaffoldApplicationType ({projectRoot}) {
|
|
1226
|
-
info('Scaffolding Application Details');
|
|
1227
|
-
|
|
1228
|
-
await mergeIntoExistingPackageJson({projectRoot, config: {private: true}});
|
|
1229
|
-
|
|
1230
|
-
const buildDirectory = defaultBuildDirectory$1;
|
|
1231
|
-
|
|
1232
|
-
return {
|
|
1233
|
-
scripts: {
|
|
1234
|
-
clean: `rimraf ./${buildDirectory}`,
|
|
1235
|
-
start: `node ./${buildDirectory}/index.js`,
|
|
1236
|
-
prebuild: 'run-s clean'
|
|
1237
|
-
},
|
|
1238
|
-
dependencies: [],
|
|
1239
|
-
devDependencies: ['rimraf'],
|
|
1240
|
-
vcsIgnore: {files: ['.env'], directories: [`/${buildDirectory}/`]},
|
|
1241
|
-
buildDirectory,
|
|
1242
|
-
nextSteps: []
|
|
1243
|
-
};
|
|
1244
|
-
}
|
|
1245
|
-
|
|
1246
|
-
async function scaffoldMonorepoType ({projectRoot}) {
|
|
1247
|
-
info('Scaffolding Monorepo Details');
|
|
1248
|
-
|
|
1249
|
-
await mergeIntoExistingPackageJson({projectRoot, config: {private: true}});
|
|
1250
|
-
|
|
1251
|
-
return {
|
|
1252
|
-
nextSteps: [{
|
|
1253
|
-
summary: 'Add packages to your new monorepo',
|
|
1254
|
-
description: 'Leverage [@form8ion/add-package-to-monorepo](https://npm.im/@form8ion/add-package-to-monorepo)'
|
|
1255
|
-
+ ' to scaffold new packages into your new monorepo'
|
|
1256
|
-
}]
|
|
1257
|
-
};
|
|
1258
|
-
}
|
|
1259
|
-
|
|
1260
|
-
const defaultBuildDirectory = 'bin';
|
|
1261
|
-
|
|
1262
|
-
async function scaffoldCliType ({packageName, visibility, projectRoot, dialect, publishRegistry}) {
|
|
1263
|
-
const [rollupResults] = await Promise.all([
|
|
1264
|
-
scaffold$3({projectRoot, dialect, projectType: projectTypes$1.CLI}),
|
|
1265
|
-
mergeIntoExistingPackageJson({
|
|
1266
|
-
projectRoot,
|
|
1267
|
-
config: {
|
|
1268
|
-
bin: {},
|
|
1269
|
-
files: [`${defaultBuildDirectory}/`],
|
|
1270
|
-
publishConfig: {
|
|
1271
|
-
access: 'Public' === visibility ? 'public' : 'restricted',
|
|
1272
|
-
provenance: true,
|
|
1273
|
-
...publishRegistry && {registry: publishRegistry}
|
|
1274
|
-
}
|
|
1275
|
-
}
|
|
1276
|
-
})
|
|
1277
|
-
]);
|
|
1278
|
-
|
|
1279
|
-
return deepmerge(
|
|
1280
|
-
rollupResults,
|
|
1281
|
-
{
|
|
1282
|
-
scripts: {
|
|
1283
|
-
clean: `rimraf ./${defaultBuildDirectory}`,
|
|
1284
|
-
prebuild: 'run-s clean',
|
|
1285
|
-
build: 'npm-run-all --print-label --parallel build:*',
|
|
1286
|
-
prepack: 'run-s build'
|
|
1287
|
-
},
|
|
1288
|
-
dependencies: ['update-notifier'],
|
|
1289
|
-
devDependencies: ['rimraf'],
|
|
1290
|
-
vcsIgnore: {files: [], directories: [`/${defaultBuildDirectory}/`]},
|
|
1291
|
-
buildDirectory: defaultBuildDirectory,
|
|
1292
|
-
badges: defineBadges(packageName, visibility),
|
|
1293
|
-
nextSteps: []
|
|
1294
|
-
}
|
|
1295
|
-
);
|
|
1296
|
-
}
|
|
1297
|
-
|
|
1298
|
-
async function scaffoldProjectType ({
|
|
1299
|
-
projectType,
|
|
1300
|
-
projectRoot,
|
|
1301
|
-
projectName,
|
|
1302
|
-
packageName,
|
|
1303
|
-
packageManager,
|
|
1304
|
-
visibility,
|
|
1305
|
-
packageBundlers,
|
|
1306
|
-
scope,
|
|
1307
|
-
vcs,
|
|
1308
|
-
decisions,
|
|
1309
|
-
dialect,
|
|
1310
|
-
provideExample,
|
|
1311
|
-
publishRegistry
|
|
1312
|
-
}) {
|
|
1313
|
-
switch (projectType) {
|
|
1314
|
-
case projectTypes$1.PACKAGE:
|
|
1315
|
-
return scaffoldPackageType({
|
|
1316
|
-
projectRoot,
|
|
1317
|
-
projectName,
|
|
1318
|
-
packageName,
|
|
1319
|
-
packageManager,
|
|
1320
|
-
visibility,
|
|
1321
|
-
scope,
|
|
1322
|
-
packageBundlers,
|
|
1323
|
-
vcs,
|
|
1324
|
-
decisions,
|
|
1325
|
-
dialect,
|
|
1326
|
-
provideExample,
|
|
1327
|
-
publishRegistry
|
|
1328
|
-
});
|
|
1329
|
-
case projectTypes$1.APPLICATION:
|
|
1330
|
-
return scaffoldApplicationType({projectRoot});
|
|
1331
|
-
case projectTypes$1.CLI:
|
|
1332
|
-
return scaffoldCliType({packageName, visibility, projectRoot, dialect, publishRegistry});
|
|
1333
|
-
case projectTypes$1.MONOREPO:
|
|
1334
|
-
return scaffoldMonorepoType({projectRoot});
|
|
1335
|
-
case 'Other':
|
|
1336
|
-
return {};
|
|
1337
|
-
default:
|
|
1338
|
-
throw new Error(`The project-type of ${projectType} is invalid`);
|
|
1339
|
-
}
|
|
1340
|
-
}
|
|
1341
|
-
|
|
1342
1367
|
async function chooseProjectTypePlugin ({types, projectType, decisions}) {
|
|
1343
1368
|
if (!Object.keys(types).length) return 'Other';
|
|
1344
1369
|
|