@form8ion/javascript 11.2.0 → 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 +150 -128
- package/lib/index.js.map +1 -1
- package/lib/index.mjs +150 -128
- package/lib/index.mjs.map +1 -1
- package/package.json +1 -1
package/lib/index.mjs
CHANGED
|
@@ -423,7 +423,6 @@ async function scaffoldPackageType ({
|
|
|
423
423
|
files: ['example.js', ...dialects$1.COMMON_JS === dialect ? ['index.js'] : ['lib/']],
|
|
424
424
|
publishConfig: {
|
|
425
425
|
access: 'Public' === visibility ? 'public' : 'restricted',
|
|
426
|
-
provenance: true,
|
|
427
426
|
...publishRegistry && {registry: publishRegistry}
|
|
428
427
|
},
|
|
429
428
|
sideEffects: false,
|
|
@@ -461,15 +460,13 @@ async function scaffoldPackageType ({
|
|
|
461
460
|
{summary: 'Add the appropriate `save` flag to the installation instructions in the README'},
|
|
462
461
|
{summary: 'Publish pre-release versions to npm until package is stable enough to publish v1.0.0'}
|
|
463
462
|
],
|
|
464
|
-
|
|
465
|
-
badges: defineBadges(packageName, visibility),
|
|
466
|
-
devDependencies: ['publint']
|
|
463
|
+
badges: defineBadges(packageName, visibility)
|
|
467
464
|
},
|
|
468
465
|
detailsForBuild
|
|
469
466
|
]);
|
|
470
467
|
}
|
|
471
468
|
|
|
472
|
-
async function
|
|
469
|
+
async function liftPublishable ({projectRoot}) {
|
|
473
470
|
await mergeIntoExistingPackageJson({projectRoot, config: {publishConfig: {provenance: true}}});
|
|
474
471
|
|
|
475
472
|
return {
|
|
@@ -478,15 +475,159 @@ async function lifter$1 ({projectRoot}) {
|
|
|
478
475
|
};
|
|
479
476
|
}
|
|
480
477
|
|
|
481
|
-
|
|
482
|
-
|
|
478
|
+
function liftPackage$1 ({projectRoot}) {
|
|
479
|
+
return liftPublishable({projectRoot});
|
|
480
|
+
}
|
|
483
481
|
|
|
484
|
-
|
|
482
|
+
async function isPackage ({projectRoot}) {
|
|
483
|
+
const {exports, publishConfig, bin} = JSON.parse(await promises$1.readFile(`${projectRoot}/package.json`, 'utf-8'));
|
|
484
|
+
|
|
485
|
+
return !!exports || (!!publishConfig && !bin);
|
|
486
|
+
}
|
|
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});
|
|
485
626
|
}
|
|
486
627
|
|
|
487
628
|
var projectTypes = /*#__PURE__*/Object.freeze({
|
|
488
629
|
__proto__: null,
|
|
489
|
-
scaffold:
|
|
630
|
+
scaffold: scaffoldProjectType,
|
|
490
631
|
lift: lifter$1,
|
|
491
632
|
test: tester$1
|
|
492
633
|
});
|
|
@@ -1223,125 +1364,6 @@ function buildPackageName (projectName, scope) {
|
|
|
1223
1364
|
throw new Error(`The package name ${name} is invalid:${EOL}\t* ${errors.join(`${EOL}\t* `)}`);
|
|
1224
1365
|
}
|
|
1225
1366
|
|
|
1226
|
-
const defaultBuildDirectory$1 = 'public';
|
|
1227
|
-
|
|
1228
|
-
async function scaffoldApplicationType ({projectRoot}) {
|
|
1229
|
-
info('Scaffolding Application Details');
|
|
1230
|
-
|
|
1231
|
-
await mergeIntoExistingPackageJson({projectRoot, config: {private: true}});
|
|
1232
|
-
|
|
1233
|
-
const buildDirectory = defaultBuildDirectory$1;
|
|
1234
|
-
|
|
1235
|
-
return {
|
|
1236
|
-
scripts: {
|
|
1237
|
-
clean: `rimraf ./${buildDirectory}`,
|
|
1238
|
-
start: `node ./${buildDirectory}/index.js`,
|
|
1239
|
-
prebuild: 'run-s clean'
|
|
1240
|
-
},
|
|
1241
|
-
dependencies: [],
|
|
1242
|
-
devDependencies: ['rimraf'],
|
|
1243
|
-
vcsIgnore: {files: ['.env'], directories: [`/${buildDirectory}/`]},
|
|
1244
|
-
buildDirectory,
|
|
1245
|
-
nextSteps: []
|
|
1246
|
-
};
|
|
1247
|
-
}
|
|
1248
|
-
|
|
1249
|
-
async function scaffoldMonorepoType ({projectRoot}) {
|
|
1250
|
-
info('Scaffolding Monorepo Details');
|
|
1251
|
-
|
|
1252
|
-
await mergeIntoExistingPackageJson({projectRoot, config: {private: true}});
|
|
1253
|
-
|
|
1254
|
-
return {
|
|
1255
|
-
nextSteps: [{
|
|
1256
|
-
summary: 'Add packages to your new monorepo',
|
|
1257
|
-
description: 'Leverage [@form8ion/add-package-to-monorepo](https://npm.im/@form8ion/add-package-to-monorepo)'
|
|
1258
|
-
+ ' to scaffold new packages into your new monorepo'
|
|
1259
|
-
}]
|
|
1260
|
-
};
|
|
1261
|
-
}
|
|
1262
|
-
|
|
1263
|
-
const defaultBuildDirectory = 'bin';
|
|
1264
|
-
|
|
1265
|
-
async function scaffoldCliType ({packageName, visibility, projectRoot, dialect, publishRegistry}) {
|
|
1266
|
-
const [rollupResults] = await Promise.all([
|
|
1267
|
-
scaffold$3({projectRoot, dialect, projectType: projectTypes$1.CLI}),
|
|
1268
|
-
mergeIntoExistingPackageJson({
|
|
1269
|
-
projectRoot,
|
|
1270
|
-
config: {
|
|
1271
|
-
bin: {},
|
|
1272
|
-
files: [`${defaultBuildDirectory}/`],
|
|
1273
|
-
publishConfig: {
|
|
1274
|
-
access: 'Public' === visibility ? 'public' : 'restricted',
|
|
1275
|
-
provenance: true,
|
|
1276
|
-
...publishRegistry && {registry: publishRegistry}
|
|
1277
|
-
}
|
|
1278
|
-
}
|
|
1279
|
-
})
|
|
1280
|
-
]);
|
|
1281
|
-
|
|
1282
|
-
return deepmerge(
|
|
1283
|
-
rollupResults,
|
|
1284
|
-
{
|
|
1285
|
-
scripts: {
|
|
1286
|
-
clean: `rimraf ./${defaultBuildDirectory}`,
|
|
1287
|
-
prebuild: 'run-s clean',
|
|
1288
|
-
build: 'npm-run-all --print-label --parallel build:*',
|
|
1289
|
-
prepack: 'run-s build'
|
|
1290
|
-
},
|
|
1291
|
-
dependencies: ['update-notifier'],
|
|
1292
|
-
devDependencies: ['rimraf'],
|
|
1293
|
-
vcsIgnore: {files: [], directories: [`/${defaultBuildDirectory}/`]},
|
|
1294
|
-
buildDirectory: defaultBuildDirectory,
|
|
1295
|
-
badges: defineBadges(packageName, visibility),
|
|
1296
|
-
nextSteps: []
|
|
1297
|
-
}
|
|
1298
|
-
);
|
|
1299
|
-
}
|
|
1300
|
-
|
|
1301
|
-
async function scaffoldProjectType ({
|
|
1302
|
-
projectType,
|
|
1303
|
-
projectRoot,
|
|
1304
|
-
projectName,
|
|
1305
|
-
packageName,
|
|
1306
|
-
packageManager,
|
|
1307
|
-
visibility,
|
|
1308
|
-
packageBundlers,
|
|
1309
|
-
scope,
|
|
1310
|
-
vcs,
|
|
1311
|
-
decisions,
|
|
1312
|
-
dialect,
|
|
1313
|
-
provideExample,
|
|
1314
|
-
publishRegistry
|
|
1315
|
-
}) {
|
|
1316
|
-
switch (projectType) {
|
|
1317
|
-
case projectTypes$1.PACKAGE:
|
|
1318
|
-
return scaffoldPackageType({
|
|
1319
|
-
projectRoot,
|
|
1320
|
-
projectName,
|
|
1321
|
-
packageName,
|
|
1322
|
-
packageManager,
|
|
1323
|
-
visibility,
|
|
1324
|
-
scope,
|
|
1325
|
-
packageBundlers,
|
|
1326
|
-
vcs,
|
|
1327
|
-
decisions,
|
|
1328
|
-
dialect,
|
|
1329
|
-
provideExample,
|
|
1330
|
-
publishRegistry
|
|
1331
|
-
});
|
|
1332
|
-
case projectTypes$1.APPLICATION:
|
|
1333
|
-
return scaffoldApplicationType({projectRoot});
|
|
1334
|
-
case projectTypes$1.CLI:
|
|
1335
|
-
return scaffoldCliType({packageName, visibility, projectRoot, dialect, publishRegistry});
|
|
1336
|
-
case projectTypes$1.MONOREPO:
|
|
1337
|
-
return scaffoldMonorepoType({projectRoot});
|
|
1338
|
-
case 'Other':
|
|
1339
|
-
return {};
|
|
1340
|
-
default:
|
|
1341
|
-
throw new Error(`The project-type of ${projectType} is invalid`);
|
|
1342
|
-
}
|
|
1343
|
-
}
|
|
1344
|
-
|
|
1345
1367
|
async function chooseProjectTypePlugin ({types, projectType, decisions}) {
|
|
1346
1368
|
if (!Object.keys(types).length) return 'Other';
|
|
1347
1369
|
|