Skip to content

Commit 215cd51

Browse files
committed
Attempt to detect existing config files matching the expected basename plus one of the supported file extensions
1 parent e9382ac commit 215cd51

File tree

1 file changed

+16
-4
lines changed

1 file changed

+16
-4
lines changed

src/set-pages-config.js

+16-4
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,22 @@
1+
const fs = require('fs')
12
const core = require('@actions/core')
23
const { ConfigParser } = require('./config-parser')
34
const removeTrailingSlash = require('./remove-trailing-slash')
45
const { convertErrorToAnnotationProperties } = require('./error-utils')
56

67
const SUPPORTED_FILE_EXTENSIONS = ['.js', '.cjs', '.mjs']
78

9+
function detectOrDefaultConfigFile(fileBaseName, defaultExt = '.js') {
10+
for (const ext of SUPPORTED_FILE_EXTENSIONS) {
11+
const potentialConfigFile = `./${fileBaseName}${ext}`
12+
if (fs.existsSync(potentialConfigFile)) {
13+
return potentialConfigFile
14+
}
15+
}
16+
// If none of them exist yet, default to returning the filename with the defaultExt extension
17+
return `./${fileBaseName}${defaultExt}`
18+
}
19+
820
// Return the settings to be passed to a {ConfigParser} for a given static site generator,
921
// optional configuration file path, and a Pages siteUrl value to inject
1022
function getConfigParserSettings({ staticSiteGenerator, generatorConfigFile, siteUrl }) {
@@ -13,7 +25,7 @@ function getConfigParserSettings({ staticSiteGenerator, generatorConfigFile, sit
1325
switch (staticSiteGenerator) {
1426
case 'nuxt':
1527
return {
16-
configurationFile: generatorConfigFile || './nuxt.config.js',
28+
configurationFile: generatorConfigFile || detectOrDefaultConfigFile('nuxt.config'),
1729
blankConfigurationFile: `${__dirname}/blank-configurations/nuxt.js`,
1830
properties: {
1931
// Configure a base path on the router
@@ -29,7 +41,7 @@ function getConfigParserSettings({ staticSiteGenerator, generatorConfigFile, sit
2941
path = removeTrailingSlash(path)
3042

3143
return {
32-
configurationFile: generatorConfigFile || './next.config.js',
44+
configurationFile: generatorConfigFile || detectOrDefaultConfigFile('next.config'),
3345
blankConfigurationFile: `${__dirname}/blank-configurations/next.js`,
3446
properties: {
3547
// Static export
@@ -47,7 +59,7 @@ function getConfigParserSettings({ staticSiteGenerator, generatorConfigFile, sit
4759
}
4860
case 'gatsby':
4961
return {
50-
configurationFile: generatorConfigFile || './gatsby-config.js',
62+
configurationFile: generatorConfigFile || detectOrDefaultConfigFile('gatsby-config'),
5163
blankConfigurationFile: `${__dirname}/blank-configurations/gatsby.js`,
5264
properties: {
5365
// Configure a path prefix
@@ -61,7 +73,7 @@ function getConfigParserSettings({ staticSiteGenerator, generatorConfigFile, sit
6173
path = removeTrailingSlash(path)
6274

6375
return {
64-
configurationFile: generatorConfigFile || './svelte.config.js',
76+
configurationFile: generatorConfigFile || detectOrDefaultConfigFile('svelte.config'),
6577
blankConfigurationFile: `${__dirname}/blank-configurations/sveltekit.js`,
6678
properties: {
6779
// Configure a base path

0 commit comments

Comments
 (0)