From 83a4698c1c33883d426bb339cf873a509c7684dd Mon Sep 17 00:00:00 2001 From: Romain Menke <11521496+romainmenke@users.noreply.github.com> Date: Tue, 6 Jun 2023 00:34:58 +0200 Subject: [PATCH] Fix Segmentation fault errors for Cosmiconfig 8.2 (#6902) Co-authored-by: Masafumi Koba <473530+ybiquitous@users.noreply.github.com> --- .changeset/blue-lions-guess.md | 5 +++++ lib/createStylelint.js | 8 +++++++- lib/getConfigForFile.js | 7 ++++++- 3 files changed, 18 insertions(+), 2 deletions(-) create mode 100644 .changeset/blue-lions-guess.md diff --git a/.changeset/blue-lions-guess.md b/.changeset/blue-lions-guess.md new file mode 100644 index 0000000000..27d06bdea7 --- /dev/null +++ b/.changeset/blue-lions-guess.md @@ -0,0 +1,5 @@ +--- +"stylelint": patch +--- + +Fixed: Segmentation fault errors for Cosmiconfig 8.2 diff --git a/lib/createStylelint.js b/lib/createStylelint.js index ceaeee18cf..3165cc433f 100644 --- a/lib/createStylelint.js +++ b/lib/createStylelint.js @@ -1,6 +1,6 @@ 'use strict'; -const { cosmiconfig } = require('cosmiconfig'); +const { cosmiconfig, defaultLoadersSync } = require('cosmiconfig'); const augmentConfig = require('./augmentConfig'); const FileCache = require('./utils/FileCache'); @@ -19,6 +19,12 @@ module.exports = function createStylelint(options = {}) { _extendExplorer: cosmiconfig('', { transform: augmentConfig.augmentConfigExtended(cwd), + loaders: { + '.cjs': (cjsPath, cjsContent) => + Promise.resolve(defaultLoadersSync['.cjs'](cjsPath, cjsContent)), + '.js': (jsPath, cjsContent) => + Promise.resolve(defaultLoadersSync['.js'](jsPath, cjsContent)), + }, stopDir: STOP_DIR, }), diff --git a/lib/getConfigForFile.js b/lib/getConfigForFile.js index 1d843df103..c5780ed26f 100644 --- a/lib/getConfigForFile.js +++ b/lib/getConfigForFile.js @@ -3,7 +3,7 @@ const configurationError = require('./utils/configurationError'); const path = require('path'); const { augmentConfigFull } = require('./augmentConfig'); -const { cosmiconfig } = require('cosmiconfig'); +const { cosmiconfig, defaultLoadersSync } = require('cosmiconfig'); const IS_TEST = process.env.NODE_ENV === 'test'; const STOP_DIR = IS_TEST ? process.cwd() : undefined; @@ -49,6 +49,11 @@ module.exports = async function getConfigForFile( const configExplorer = cosmiconfig('stylelint', { transform: (cosmiconfigResult) => augmentConfigFull(stylelint, filePath, cosmiconfigResult), + loaders: { + '.cjs': (cjsPath, cjsContent) => + Promise.resolve(defaultLoadersSync['.cjs'](cjsPath, cjsContent)), + '.js': (jsPath, cjsContent) => Promise.resolve(defaultLoadersSync['.js'](jsPath, cjsContent)), + }, stopDir: STOP_DIR, });