From dc1f216ff309f817e7cfae6a513d16d53e43b99b Mon Sep 17 00:00:00 2001 From: Jan Koritak Date: Sat, 15 Apr 2023 22:49:08 +0200 Subject: [PATCH 1/4] fix: support special characters in __dirname --- code/lib/core-server/src/utils/StoryIndexGenerator.ts | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/code/lib/core-server/src/utils/StoryIndexGenerator.ts b/code/lib/core-server/src/utils/StoryIndexGenerator.ts index d80c705ca752..c125973654a0 100644 --- a/code/lib/core-server/src/utils/StoryIndexGenerator.ts +++ b/code/lib/core-server/src/utils/StoryIndexGenerator.ts @@ -118,10 +118,8 @@ export class StoryIndexGenerator { this.specifiers.map(async (specifier) => { const pathToSubIndex = {} as SpecifierStoriesCache; - const fullGlob = slash( - path.join(this.options.workingDir, specifier.directory, specifier.files) - ); - const files = await glob(fullGlob); + const fullGlob = slash(path.join(specifier.directory, specifier.files)); + const files = await glob(fullGlob, { cwd: this.options.workingDir }); if (files.length === 0) { once.warn( From e73ea2d42e4cb02868674e4406382cd761e0333b Mon Sep 17 00:00:00 2001 From: Jan Koritak Date: Sat, 15 Apr 2023 22:51:01 +0200 Subject: [PATCH 2/4] chore: add an explanatory comment --- code/lib/core-server/src/utils/StoryIndexGenerator.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/code/lib/core-server/src/utils/StoryIndexGenerator.ts b/code/lib/core-server/src/utils/StoryIndexGenerator.ts index c125973654a0..b9cfe3258ce2 100644 --- a/code/lib/core-server/src/utils/StoryIndexGenerator.ts +++ b/code/lib/core-server/src/utils/StoryIndexGenerator.ts @@ -119,6 +119,7 @@ export class StoryIndexGenerator { const pathToSubIndex = {} as SpecifierStoriesCache; const fullGlob = slash(path.join(specifier.directory, specifier.files)); + // Do not treat the working dir as a glob. const files = await glob(fullGlob, { cwd: this.options.workingDir }); if (files.length === 0) { From fada343fe7057b45fe6b02c5c312ffc397028f24 Mon Sep 17 00:00:00 2001 From: Jan Koritak Date: Sun, 16 Apr 2023 10:05:03 +0200 Subject: [PATCH 3/4] refactor: escape blog via fast-glob/escapePath --- .../core-server/src/utils/StoryIndexGenerator.ts | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/code/lib/core-server/src/utils/StoryIndexGenerator.ts b/code/lib/core-server/src/utils/StoryIndexGenerator.ts index b9cfe3258ce2..09fc307b2605 100644 --- a/code/lib/core-server/src/utils/StoryIndexGenerator.ts +++ b/code/lib/core-server/src/utils/StoryIndexGenerator.ts @@ -2,6 +2,7 @@ import path from 'path'; import chalk from 'chalk'; import fs from 'fs-extra'; import glob from 'globby'; +import fastGlob from 'fast-glob'; import slash from 'slash'; import type { @@ -118,9 +119,15 @@ export class StoryIndexGenerator { this.specifiers.map(async (specifier) => { const pathToSubIndex = {} as SpecifierStoriesCache; - const fullGlob = slash(path.join(specifier.directory, specifier.files)); - // Do not treat the working dir as a glob. - const files = await glob(fullGlob, { cwd: this.options.workingDir }); + const fullGlob = slash( + path.join( + // Do not treat the working dir as a glob. + fastGlob.escapePath(this.options.workingDir), + specifier.directory, + specifier.files + ) + ); + const files = await glob(fullGlob); if (files.length === 0) { once.warn( From f665bc01726e06b1abd7624ebca5ab4e74d85fe5 Mon Sep 17 00:00:00 2001 From: Jan Koritak Date: Sun, 16 Apr 2023 10:22:02 +0200 Subject: [PATCH 4/4] fix: use absolute path for cwd --- .../core-server/src/utils/StoryIndexGenerator.ts | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/code/lib/core-server/src/utils/StoryIndexGenerator.ts b/code/lib/core-server/src/utils/StoryIndexGenerator.ts index 09fc307b2605..09ac9c22e5a8 100644 --- a/code/lib/core-server/src/utils/StoryIndexGenerator.ts +++ b/code/lib/core-server/src/utils/StoryIndexGenerator.ts @@ -2,7 +2,6 @@ import path from 'path'; import chalk from 'chalk'; import fs from 'fs-extra'; import glob from 'globby'; -import fastGlob from 'fast-glob'; import slash from 'slash'; import type { @@ -119,15 +118,12 @@ export class StoryIndexGenerator { this.specifiers.map(async (specifier) => { const pathToSubIndex = {} as SpecifierStoriesCache; - const fullGlob = slash( - path.join( - // Do not treat the working dir as a glob. - fastGlob.escapePath(this.options.workingDir), - specifier.directory, - specifier.files - ) + const fullGlob = slash(path.join(specifier.directory, specifier.files)); + const files = await glob( + fullGlob, + // Do not treat workingDir path as a glob pattern + { absolute: true, cwd: this.options.workingDir } ); - const files = await glob(fullGlob); if (files.length === 0) { once.warn(