@form8ion/javascript 7.2.1 → 7.2.2
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 +97 -63
- package/lib/index.js.map +1 -1
- package/lib/index.mjs +112 -78
- package/lib/index.mjs.map +1 -1
- package/package.json +2 -2
package/lib/index.js
CHANGED
|
@@ -213,6 +213,90 @@ var enginesEnhancer = /*#__PURE__*/Object.freeze({
|
|
|
213
213
|
lift: lift$1
|
|
214
214
|
});
|
|
215
215
|
|
|
216
|
+
function write ({projectRoot, config}) {
|
|
217
|
+
return configFile.write({path: projectRoot, name: 'babel', format: core.fileTypes.JSON, config});
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
async function addIgnore ({projectRoot, ignore}) {
|
|
221
|
+
if (ignore) {
|
|
222
|
+
const existingConfig = JSON.parse(await fs.promises.readFile(`${projectRoot}/.babelrc.json`, 'utf-8'));
|
|
223
|
+
|
|
224
|
+
await write({projectRoot, config: {...existingConfig, ignore: [`./${ignore}/`]}});
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
async function scaffoldBabel ({projectRoot, preset}) {
|
|
229
|
+
if (!preset) {
|
|
230
|
+
throw new Error('No babel preset provided. Cannot configure babel transpilation');
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
await write({projectRoot, config: {presets: [preset.name]}});
|
|
234
|
+
|
|
235
|
+
return {
|
|
236
|
+
devDependencies: ['@babel/register', preset.packageName],
|
|
237
|
+
eslint: {}
|
|
238
|
+
};
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
async function lifter ({buildDirectory, projectRoot}) {
|
|
242
|
+
await addIgnore({ignore: buildDirectory, projectRoot});
|
|
243
|
+
|
|
244
|
+
return {};
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
function predicate ({projectRoot}) {
|
|
248
|
+
return core.fileExists(`${projectRoot}/.babelrc.json`);
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
async function scaffoldTypescript ({config, projectType, projectRoot, testFilenamePattern}) {
|
|
252
|
+
const eslintConfigs = ['typescript'];
|
|
253
|
+
const shareableTsConfigPackage = `${config.scope}/tsconfig`;
|
|
254
|
+
|
|
255
|
+
await core.writeConfigFile({
|
|
256
|
+
path: projectRoot,
|
|
257
|
+
name: 'tsconfig',
|
|
258
|
+
format: core.fileTypes.JSON,
|
|
259
|
+
config: {
|
|
260
|
+
$schema: 'https://json.schemastore.org/tsconfig',
|
|
261
|
+
extends: shareableTsConfigPackage,
|
|
262
|
+
compilerOptions: {
|
|
263
|
+
rootDir: 'src',
|
|
264
|
+
...javascriptCore.projectTypes.PACKAGE === projectType && {
|
|
265
|
+
outDir: 'lib',
|
|
266
|
+
declaration: true
|
|
267
|
+
}
|
|
268
|
+
},
|
|
269
|
+
include: ['src/**/*.ts'],
|
|
270
|
+
...testFilenamePattern && {exclude: [testFilenamePattern]}
|
|
271
|
+
}
|
|
272
|
+
});
|
|
273
|
+
|
|
274
|
+
return {
|
|
275
|
+
eslint: {configs: eslintConfigs},
|
|
276
|
+
eslintConfigs,
|
|
277
|
+
devDependencies: ['typescript', shareableTsConfigPackage],
|
|
278
|
+
vcsIgnore: {files: ['tsconfig.tsbuildinfo']}
|
|
279
|
+
};
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
function scaffoldDialect ({dialect, projectType, projectRoot, configs, testFilenamePattern}) {
|
|
283
|
+
switch (dialect) {
|
|
284
|
+
case javascriptCore.dialects.BABEL:
|
|
285
|
+
return scaffoldBabel({preset: configs.babelPreset, projectRoot});
|
|
286
|
+
case javascriptCore.dialects.TYPESCRIPT:
|
|
287
|
+
return scaffoldTypescript({config: configs.typescript, projectType, projectRoot, testFilenamePattern});
|
|
288
|
+
default:
|
|
289
|
+
return {};
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
var dialects = /*#__PURE__*/Object.freeze({
|
|
294
|
+
__proto__: null,
|
|
295
|
+
scaffold: scaffoldDialect,
|
|
296
|
+
test: predicate,
|
|
297
|
+
lift: lifter
|
|
298
|
+
});
|
|
299
|
+
|
|
216
300
|
function scaffoldScripts () {
|
|
217
301
|
return {};
|
|
218
302
|
}
|
|
@@ -360,15 +444,24 @@ async function resolvePackageManager ({projectRoot, packageManager}) {
|
|
|
360
444
|
async function lift ({projectRoot, vcs, results}) {
|
|
361
445
|
cliMessages.info('Lifting JavaScript-specific details');
|
|
362
446
|
|
|
363
|
-
const {
|
|
447
|
+
const {
|
|
448
|
+
scripts,
|
|
449
|
+
tags,
|
|
450
|
+
eslintConfigs,
|
|
451
|
+
eslint: eslint$1,
|
|
452
|
+
dependencies,
|
|
453
|
+
devDependencies,
|
|
454
|
+
packageManager: manager,
|
|
455
|
+
buildDirectory
|
|
456
|
+
} = results;
|
|
364
457
|
|
|
365
458
|
const packageManager = await resolvePackageManager({projectRoot, packageManager: manager});
|
|
366
459
|
|
|
367
460
|
const eslintResults = await eslint.lift({projectRoot, configs: [...eslintConfigs || [], ...eslint$1?.configs || []]});
|
|
368
461
|
const enhancerResults = await core.applyEnhancers({
|
|
369
462
|
results,
|
|
370
|
-
enhancers: [huskyPlugin__namespace, enginesEnhancer, coveragePlugin, commitConventionPlugin__namespace],
|
|
371
|
-
options: {packageManager, projectRoot, vcs}
|
|
463
|
+
enhancers: [huskyPlugin__namespace, enginesEnhancer, coveragePlugin, commitConventionPlugin__namespace, dialects],
|
|
464
|
+
options: {packageManager, projectRoot, vcs, buildDirectory}
|
|
372
465
|
});
|
|
373
466
|
|
|
374
467
|
await liftPackage(
|
|
@@ -656,64 +749,6 @@ async function prompt(
|
|
|
656
749
|
};
|
|
657
750
|
}
|
|
658
751
|
|
|
659
|
-
async function scaffoldBabel ({projectRoot, preset, buildDirectory}) {
|
|
660
|
-
if (!preset) {
|
|
661
|
-
throw new Error('No babel preset provided. Cannot configure babel transpilation');
|
|
662
|
-
}
|
|
663
|
-
|
|
664
|
-
await configFile.write({
|
|
665
|
-
path: projectRoot,
|
|
666
|
-
name: 'babel',
|
|
667
|
-
format: core.fileTypes.JSON,
|
|
668
|
-
config: {presets: [preset.name], ignore: [`./${buildDirectory}/`]}
|
|
669
|
-
});
|
|
670
|
-
|
|
671
|
-
return {
|
|
672
|
-
devDependencies: ['@babel/register', preset.packageName],
|
|
673
|
-
eslint: {}
|
|
674
|
-
};
|
|
675
|
-
}
|
|
676
|
-
|
|
677
|
-
async function scaffoldTypescript ({config, projectType, projectRoot, testFilenamePattern}) {
|
|
678
|
-
const eslintConfigs = ['typescript'];
|
|
679
|
-
const shareableTsConfigPackage = `${config.scope}/tsconfig`;
|
|
680
|
-
|
|
681
|
-
await fs.promises.writeFile(
|
|
682
|
-
`${projectRoot}/tsconfig.json`,
|
|
683
|
-
JSON.stringify({
|
|
684
|
-
$schema: 'https://json.schemastore.org/tsconfig',
|
|
685
|
-
extends: shareableTsConfigPackage,
|
|
686
|
-
compilerOptions: {
|
|
687
|
-
rootDir: 'src',
|
|
688
|
-
...javascriptCore.projectTypes.PACKAGE === projectType && {
|
|
689
|
-
outDir: 'lib',
|
|
690
|
-
declaration: true
|
|
691
|
-
}
|
|
692
|
-
},
|
|
693
|
-
include: ['src/**/*.ts'],
|
|
694
|
-
...testFilenamePattern && {exclude: [testFilenamePattern]}
|
|
695
|
-
})
|
|
696
|
-
);
|
|
697
|
-
|
|
698
|
-
return {
|
|
699
|
-
eslint: {configs: eslintConfigs},
|
|
700
|
-
eslintConfigs,
|
|
701
|
-
devDependencies: ['typescript', shareableTsConfigPackage],
|
|
702
|
-
vcsIgnore: {files: ['tsconfig.tsbuildinfo']}
|
|
703
|
-
};
|
|
704
|
-
}
|
|
705
|
-
|
|
706
|
-
function scaffoldDialect ({dialect, projectType, projectRoot, configs, buildDirectory, testFilenamePattern}) {
|
|
707
|
-
switch (dialect) {
|
|
708
|
-
case javascriptCore.dialects.BABEL:
|
|
709
|
-
return scaffoldBabel({preset: configs.babelPreset, projectRoot, buildDirectory});
|
|
710
|
-
case javascriptCore.dialects.TYPESCRIPT:
|
|
711
|
-
return scaffoldTypescript({config: configs.typescript, projectType, projectRoot, testFilenamePattern});
|
|
712
|
-
default:
|
|
713
|
-
return {};
|
|
714
|
-
}
|
|
715
|
-
}
|
|
716
|
-
|
|
717
752
|
function projectWillNotBeConsumed(projectType) {
|
|
718
753
|
return javascriptCore.projectTypes.APPLICATION === projectType || javascriptCore.projectTypes.CLI === projectType;
|
|
719
754
|
}
|
|
@@ -1466,7 +1501,6 @@ async function scaffolder (options) {
|
|
|
1466
1501
|
configs,
|
|
1467
1502
|
projectRoot,
|
|
1468
1503
|
projectType,
|
|
1469
|
-
buildDirectory: projectTypeResults.buildDirectory,
|
|
1470
1504
|
testFilenamePattern: verificationResults.testFilenamePattern
|
|
1471
1505
|
}),
|
|
1472
1506
|
scaffoldCodeStyle({
|
|
@@ -1506,8 +1540,8 @@ async function scaffolder (options) {
|
|
|
1506
1540
|
javascriptCore.scaffoldChoice(ciServices, ci, {projectRoot, vcs, visibility, projectType, projectName, nodeVersion, tests}),
|
|
1507
1541
|
commitConventionPlugin.scaffold({projectRoot, projectType, configs, pathWithinParent})
|
|
1508
1542
|
])),
|
|
1509
|
-
projectTypePluginResults,
|
|
1510
1543
|
projectTypeResults,
|
|
1544
|
+
projectTypePluginResults,
|
|
1511
1545
|
verificationResults,
|
|
1512
1546
|
codeStyleResults,
|
|
1513
1547
|
npmResults,
|