@form8ion/javascript 11.10.0 → 11.10.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 +66 -58
- package/lib/index.js.map +1 -1
- package/lib/index.mjs +67 -59
- package/lib/index.mjs.map +1 -1
- package/package.json +23 -23
package/lib/index.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { questionNames as questionNames$2, questions } from '@travi/language-scaffolder-prompts';
|
|
2
2
|
import deepmerge from 'deepmerge';
|
|
3
3
|
import { fileTypes, fileExists, validateOptions, writeConfigFile, applyEnhancers } from '@form8ion/core';
|
|
4
|
-
import { scaffoldChoice, projectTypes as projectTypes$1, packageManagers, dialects as dialects$1,
|
|
4
|
+
import { scaffoldChoice, projectTypes as projectTypes$1, packageManagers, mergeIntoExistingPackageJson, dialects as dialects$1, writePackageJson, DEV_DEPENDENCY_TYPE, PROD_DEPENDENCY_TYPE } from '@form8ion/javascript-core';
|
|
5
5
|
import joi from 'joi';
|
|
6
6
|
import { prompt as prompt$1, Separator } from '@form8ion/overridable-prompts';
|
|
7
7
|
import { scaffold, lift as lift$3 } from '@form8ion/codecov';
|
|
@@ -342,6 +342,10 @@ run \`${buildDocumentationCommand(packageManager)}\` to inject the usage example
|
|
|
342
342
|
};
|
|
343
343
|
}
|
|
344
344
|
|
|
345
|
+
function determinePackageAccessLevelFromProjectVisibility ({projectVisibility}) {
|
|
346
|
+
return 'Public' === projectVisibility ? 'public' : 'restricted';
|
|
347
|
+
}
|
|
348
|
+
|
|
345
349
|
function defineBadges (packageName, accessLevel) {
|
|
346
350
|
return {
|
|
347
351
|
consumer: {
|
|
@@ -357,8 +361,53 @@ function defineBadges (packageName, accessLevel) {
|
|
|
357
361
|
};
|
|
358
362
|
}
|
|
359
363
|
|
|
360
|
-
function
|
|
361
|
-
|
|
364
|
+
function enhanceSlsa ({provenance}) {
|
|
365
|
+
if (provenance) {
|
|
366
|
+
return {
|
|
367
|
+
badges: {
|
|
368
|
+
status: {
|
|
369
|
+
slsa: {
|
|
370
|
+
img: 'https://slsa.dev/images/gh-badge-level2.svg',
|
|
371
|
+
url: 'https://slsa.dev',
|
|
372
|
+
text: 'SLSA Level 2'
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
};
|
|
377
|
+
}
|
|
378
|
+
|
|
379
|
+
return {};
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
async function liftProvenance ({projectRoot, packageDetails}) {
|
|
383
|
+
const {publishConfig: {access}} = packageDetails;
|
|
384
|
+
|
|
385
|
+
if ('public' === access) {
|
|
386
|
+
await mergeIntoExistingPackageJson({projectRoot, config: {publishConfig: {provenance: true}}});
|
|
387
|
+
|
|
388
|
+
return enhanceSlsa({provenance: true});
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
return {};
|
|
392
|
+
}
|
|
393
|
+
|
|
394
|
+
async function liftPublishable ({projectRoot, packageDetails}) {
|
|
395
|
+
const {name: packageName, publishConfig: {access: pacakgeAccessLevel}} = packageDetails;
|
|
396
|
+
|
|
397
|
+
return deepmerge(
|
|
398
|
+
await liftProvenance({packageDetails, projectRoot}),
|
|
399
|
+
{
|
|
400
|
+
devDependencies: ['publint'],
|
|
401
|
+
scripts: {'lint:publish': 'publint --strict'},
|
|
402
|
+
badges: defineBadges(packageName, pacakgeAccessLevel)
|
|
403
|
+
}
|
|
404
|
+
);
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
async function scaffoldPublishable ({packageName, packageAccessLevel}) {
|
|
408
|
+
return {
|
|
409
|
+
badges: await defineBadges(packageName, packageAccessLevel)
|
|
410
|
+
};
|
|
362
411
|
}
|
|
363
412
|
|
|
364
413
|
async function chooseBundler ({bundlers, decisions}) {
|
|
@@ -472,7 +521,7 @@ async function scaffoldPackageType ({
|
|
|
472
521
|
info('Scaffolding Package Details');
|
|
473
522
|
|
|
474
523
|
const packageAccessLevel = determinePackageAccessLevelFromProjectVisibility({projectVisibility: visibility});
|
|
475
|
-
const [detailsForBuild] = await Promise.all([
|
|
524
|
+
const [detailsForBuild, publishableResults] = await Promise.all([
|
|
476
525
|
buildDetails({
|
|
477
526
|
projectRoot,
|
|
478
527
|
projectName,
|
|
@@ -483,6 +532,7 @@ async function scaffoldPackageType ({
|
|
|
483
532
|
provideExample,
|
|
484
533
|
decisions
|
|
485
534
|
}),
|
|
535
|
+
scaffoldPublishable({packageName, packageAccessLevel}),
|
|
486
536
|
mergeIntoExistingPackageJson({
|
|
487
537
|
projectRoot,
|
|
488
538
|
config: {
|
|
@@ -521,61 +571,18 @@ async function scaffoldPackageType ({
|
|
|
521
571
|
]);
|
|
522
572
|
|
|
523
573
|
return deepmerge.all([
|
|
574
|
+
publishableResults,
|
|
524
575
|
{
|
|
525
576
|
documentation: scaffoldPackageDocumentation({packageName, visibility, scope, packageManager, provideExample}),
|
|
526
577
|
nextSteps: [
|
|
527
578
|
{summary: 'Add the appropriate `save` flag to the installation instructions in the README'},
|
|
528
579
|
{summary: 'Publish pre-release versions to npm until package is stable enough to publish v1.0.0'}
|
|
529
|
-
]
|
|
530
|
-
badges: defineBadges(packageName, packageAccessLevel)
|
|
580
|
+
]
|
|
531
581
|
},
|
|
532
582
|
detailsForBuild
|
|
533
583
|
]);
|
|
534
584
|
}
|
|
535
585
|
|
|
536
|
-
function enhanceSlsa ({provenance}) {
|
|
537
|
-
if (provenance) {
|
|
538
|
-
return {
|
|
539
|
-
badges: {
|
|
540
|
-
status: {
|
|
541
|
-
slsa: {
|
|
542
|
-
img: 'https://slsa.dev/images/gh-badge-level2.svg',
|
|
543
|
-
url: 'https://slsa.dev',
|
|
544
|
-
text: 'SLSA Level 2'
|
|
545
|
-
}
|
|
546
|
-
}
|
|
547
|
-
}
|
|
548
|
-
};
|
|
549
|
-
}
|
|
550
|
-
|
|
551
|
-
return {};
|
|
552
|
-
}
|
|
553
|
-
|
|
554
|
-
async function liftProvenance ({projectRoot, packageDetails}) {
|
|
555
|
-
const {publishConfig: {access}} = packageDetails;
|
|
556
|
-
|
|
557
|
-
if ('public' === access) {
|
|
558
|
-
await mergeIntoExistingPackageJson({projectRoot, config: {publishConfig: {provenance: true}}});
|
|
559
|
-
|
|
560
|
-
return enhanceSlsa({provenance: true});
|
|
561
|
-
}
|
|
562
|
-
|
|
563
|
-
return {};
|
|
564
|
-
}
|
|
565
|
-
|
|
566
|
-
async function liftPublishable ({projectRoot, packageDetails}) {
|
|
567
|
-
const {name: packageName, publishConfig: {access: pacakgeAccessLevel}} = packageDetails;
|
|
568
|
-
|
|
569
|
-
return deepmerge(
|
|
570
|
-
await liftProvenance({packageDetails, projectRoot}),
|
|
571
|
-
{
|
|
572
|
-
devDependencies: ['publint'],
|
|
573
|
-
scripts: {'lint:publish': 'publint --strict'},
|
|
574
|
-
badges: defineBadges(packageName, pacakgeAccessLevel)
|
|
575
|
-
}
|
|
576
|
-
);
|
|
577
|
-
}
|
|
578
|
-
|
|
579
586
|
function liftPackage$1 ({projectRoot, packageDetails}) {
|
|
580
587
|
return liftPublishable({projectRoot, packageDetails});
|
|
581
588
|
}
|
|
@@ -625,8 +632,9 @@ const defaultBuildDirectory = 'bin';
|
|
|
625
632
|
|
|
626
633
|
async function scaffoldCliType ({packageName, visibility, projectRoot, dialect, publishRegistry}) {
|
|
627
634
|
const packageAccessLevel = determinePackageAccessLevelFromProjectVisibility({projectVisibility: visibility});
|
|
628
|
-
const [rollupResults] = await Promise.all([
|
|
635
|
+
const [rollupResults, publishableResults] = await Promise.all([
|
|
629
636
|
scaffold$3({projectRoot, dialect, projectType: projectTypes$1.CLI}),
|
|
637
|
+
scaffoldPublishable({packageName, packageAccessLevel}),
|
|
630
638
|
mergeIntoExistingPackageJson({
|
|
631
639
|
projectRoot,
|
|
632
640
|
config: {
|
|
@@ -640,7 +648,8 @@ async function scaffoldCliType ({packageName, visibility, projectRoot, dialect,
|
|
|
640
648
|
})
|
|
641
649
|
]);
|
|
642
650
|
|
|
643
|
-
return deepmerge(
|
|
651
|
+
return deepmerge.all([
|
|
652
|
+
publishableResults,
|
|
644
653
|
rollupResults,
|
|
645
654
|
{
|
|
646
655
|
scripts: {
|
|
@@ -653,10 +662,9 @@ async function scaffoldCliType ({packageName, visibility, projectRoot, dialect,
|
|
|
653
662
|
devDependencies: ['rimraf'],
|
|
654
663
|
vcsIgnore: {files: [], directories: [`/${defaultBuildDirectory}/`]},
|
|
655
664
|
buildDirectory: defaultBuildDirectory,
|
|
656
|
-
badges: defineBadges(packageName, packageAccessLevel),
|
|
657
665
|
nextSteps: []
|
|
658
666
|
}
|
|
659
|
-
);
|
|
667
|
+
]);
|
|
660
668
|
}
|
|
661
669
|
|
|
662
670
|
async function isCli ({packageDetails: {bin}}) {
|
|
@@ -711,6 +719,10 @@ async function scaffoldProjectType ({
|
|
|
711
719
|
}
|
|
712
720
|
}
|
|
713
721
|
|
|
722
|
+
async function tester$1 ({projectRoot, packageDetails}) {
|
|
723
|
+
return await isPackage({projectRoot, packageDetails}) || isCli({projectRoot, packageDetails});
|
|
724
|
+
}
|
|
725
|
+
|
|
714
726
|
async function lifter$1 ({projectRoot, packageDetails}) {
|
|
715
727
|
if (await isPackage({projectRoot, packageDetails})) return liftPackage$1({projectRoot, packageDetails});
|
|
716
728
|
if (await isCli({projectRoot, packageDetails})) return liftCli({projectRoot, packageDetails});
|
|
@@ -718,15 +730,11 @@ async function lifter$1 ({projectRoot, packageDetails}) {
|
|
|
718
730
|
return {};
|
|
719
731
|
}
|
|
720
732
|
|
|
721
|
-
async function tester$1 ({projectRoot, packageDetails}) {
|
|
722
|
-
return await isPackage({projectRoot, packageDetails}) || isCli({projectRoot, packageDetails});
|
|
723
|
-
}
|
|
724
|
-
|
|
725
733
|
var projectTypes = /*#__PURE__*/Object.freeze({
|
|
726
734
|
__proto__: null,
|
|
727
735
|
scaffold: scaffoldProjectType,
|
|
728
|
-
|
|
729
|
-
|
|
736
|
+
test: tester$1,
|
|
737
|
+
lift: lifter$1
|
|
730
738
|
});
|
|
731
739
|
|
|
732
740
|
function write ({projectRoot, config}) {
|