@@ -22,6 +22,7 @@ import { typedCJSManifest } from './manifests/typed-cjs.js'
2222import { typedESMManifest } from './manifests/typed-esm.js'
2323import { typescriptManifest } from './manifests/typescript.js'
2424import { untypedCJSManifest } from './manifests/untyped-cjs.js'
25+ import { untypedESMManifest } from './manifests/untyped-esm.js'
2526import {
2627 sortManifest ,
2728 ensureFileHasContents ,
@@ -98,8 +99,9 @@ async function getConfig (projectDir) {
9899 * @param {any } manifest
99100 * @param {string } branchName
100101 * @param {string } repoUrl
102+ * @param {string } ciFile
101103 */
102- async function processMonorepo ( projectDir , manifest , branchName , repoUrl ) {
104+ async function processMonorepo ( projectDir , manifest , branchName , repoUrl , ciFile ) {
103105 const workspaces = manifest . workspaces
104106
105107 if ( ! workspaces || ! Array . isArray ( workspaces ) ) {
@@ -130,7 +132,7 @@ async function processMonorepo (projectDir, manifest, branchName, repoUrl) {
130132
131133 console . info ( 'Found monorepo project' , pkg . name )
132134
133- await processModule ( subProjectDir , pkg , branchName , repoUrl , homePage , manifest )
135+ await processModule ( subProjectDir , pkg , branchName , repoUrl , homePage , ciFile , manifest )
134136
135137 projectDirs . push ( subProjectDir )
136138 }
@@ -148,7 +150,7 @@ async function processMonorepo (projectDir, manifest, branchName, repoUrl) {
148150 } ) )
149151 await checkLicenseFiles ( projectDir )
150152 await checkBuildFiles ( projectDir , branchName , repoUrl )
151- await checkMonorepoReadme ( projectDir , repoUrl , branchName , projectDirs )
153+ await checkMonorepoReadme ( projectDir , repoUrl , branchName , projectDirs , ciFile )
152154 await checkMonorepoFiles ( projectDir )
153155}
154156
@@ -306,9 +308,10 @@ function addReferences (deps, references, refs) {
306308 * @param {any } manifest
307309 * @param {string } branchName
308310 * @param {string } repoUrl
311+ * @param {string } ciFile
309312 */
310- async function processProject ( projectDir , manifest , branchName , repoUrl ) {
311- await processModule ( projectDir , manifest , branchName , repoUrl )
313+ async function processProject ( projectDir , manifest , branchName , repoUrl , ciFile ) {
314+ await processModule ( projectDir , manifest , branchName , repoUrl , repoUrl , ciFile )
312315 await checkBuildFiles ( projectDir , branchName , repoUrl )
313316}
314317
@@ -326,9 +329,10 @@ function isAegirProject (manifest) {
326329 * @param {string } branchName
327330 * @param {string } repoUrl
328331 * @param {string } homePage
332+ * @param {string } ciFile
329333 * @param {any } [rootManifest]
330334 */
331- async function processModule ( projectDir , manifest , branchName , repoUrl , homePage = repoUrl , rootManifest ) {
335+ async function processModule ( projectDir , manifest , branchName , repoUrl , homePage = repoUrl , ciFile , rootManifest ) {
332336 if ( ! isAegirProject ( manifest ) && manifest . name !== 'aegir' ) {
333337 throw new Error ( `"${ projectDir } " is not an aegir project` )
334338 }
@@ -351,7 +355,10 @@ async function processModule (projectDir, manifest, branchName, repoUrl, homePag
351355 // 3. CJS, no types
352356 let typedCJS = cjs && hasMain && types
353357
354- // 3. CJS, no types
358+ // 4. ESM, no types
359+ let untypedESM = esm && hasMain
360+
361+ // 5. CJS, no types
355362 let untypedCJS = cjs && hasMain
356363
357364 let proposedManifest = { }
@@ -361,10 +368,10 @@ async function processModule (projectDir, manifest, branchName, repoUrl, homePag
361368 const { projectType } = await prompt . get ( {
362369 properties : {
363370 projectType : {
364- description : 'Project type: typescript | typedESM | typedCJS | untypedCJS' ,
371+ description : 'Project type: typescript | typedESM | typedCJS | untypedESM | untypedCJS' ,
365372 required : true ,
366373 conform : ( value ) => {
367- return [ 'typescript' , 'typedESM' , 'typedCJS' , 'untypedCJS' ] . includes ( value )
374+ return [ 'typescript' , 'typedESM' , 'typedCJS' , 'untypedESM' , ' untypedCJS'] . includes ( value )
368375 } ,
369376 default : 'typescript'
370377 }
@@ -377,6 +384,8 @@ async function processModule (projectDir, manifest, branchName, repoUrl, homePag
377384 typedESM = true
378385 } else if ( projectType === 'typedCJS' ) {
379386 typedCJS = true
387+ } else if ( projectType === 'untypedESM' ) {
388+ untypedESM = true
380389 } else if ( projectType === 'untypedCJS' ) {
381390 untypedCJS = true
382391 } else {
@@ -393,6 +402,9 @@ async function processModule (projectDir, manifest, branchName, repoUrl, homePag
393402 } else if ( typedCJS ) {
394403 console . info ( 'Typed CJS project detected' )
395404 proposedManifest = await typedCJSManifest ( manifest , branchName , repoUrl , homePage )
405+ } else if ( untypedESM ) {
406+ console . info ( 'Untyped ESM project detected' )
407+ proposedManifest = await untypedESMManifest ( manifest , branchName , repoUrl , homePage )
396408 } else if ( untypedCJS ) {
397409 console . info ( 'Untyped CJS project detected' )
398410 proposedManifest = await untypedCJSManifest ( manifest , branchName , repoUrl , homePage )
@@ -411,7 +423,7 @@ async function processModule (projectDir, manifest, branchName, repoUrl, homePag
411423 }
412424
413425 await checkLicenseFiles ( projectDir )
414- await checkReadme ( projectDir , repoUrl , branchName , rootManifest )
426+ await checkReadme ( projectDir , repoUrl , branchName , ciFile , rootManifest )
415427}
416428
417429export default new Listr ( [
@@ -424,11 +436,21 @@ export default new Listr([
424436 const manifest = fs . readJSONSync ( path . join ( projectDir , 'package.json' ) )
425437 const monorepo = manifest . workspaces != null
426438
439+ const ciFile = ( await prompt . get ( {
440+ properties : {
441+ ciFile : {
442+ description : 'ciFile' ,
443+ required : true ,
444+ default : 'js-test-and-release.yml'
445+ }
446+ }
447+ } ) ) . ciFile . toString ( )
448+
427449 if ( monorepo ) {
428450 console . info ( 'monorepo project detected' )
429- await processMonorepo ( projectDir , manifest , branchName , repoUrl )
451+ await processMonorepo ( projectDir , manifest , branchName , repoUrl , ciFile )
430452 } else {
431- await processProject ( projectDir , manifest , branchName , repoUrl )
453+ await processProject ( projectDir , manifest , branchName , repoUrl , ciFile )
432454 }
433455 }
434456 }
0 commit comments