json-schema-ref-parser
json-schema-ref-parser copied to clipboard
Absolute and some relative paths broken in 10.0.1
Version 9.1.0 = OK Version 10.0.1 = BROKEN
This is broken on Windows only.
In our code, we call this module like this:
-
$RefParser.dereference(path.resolve('swagger/index.yaml'), ...
This worked in version 9.1.0. In version 10.0.1, it returns the error:
-
ResolverError: Error opening file "__path_to_root__\\node_modules\\@apidevtools\\json-schema-ref-parser\\__path_to_root__\\swagger\\index.yaml"
In file node_modules\@apidevtools\json-schema-ref-parser\cjs\util\projectDir.cjs
:
-
projectDir
is returned as__path_to_root__\\node_modules\\@apidevtools\\json-schema-ref-parser
So to get our code to work, we have to do one of two things:
- Change
$RefParser.dereference(path.resolve('swagger/index.yaml'), ...
to$RefParser.dereference('../../../swagger/index.yaml', ...
- In the file
node_modules\@apidevtools\json-schema-ref-parser\cjs\util\projectDir.cjs
, changeconst projectDir = nodePath.resolve(__dirname, "..", "..");
toconst projectDir = nodePath.resolve(__dirname, "..", "..", "..", "..", "..");
I can confirm. v9.1.1
and 10.0.1
are affected on Windows; I just temporarily will stay on v9.0.9
. Just want to say thanks to Phil
for past efforts!
I still experience the issue on windows for version @11.0.4
We also experience this issue still on windows.
This is still not fixed and makes the library unusable on windows
Same on macOS here!
I believe this is fixed by setting projectDir
to cwd
instead of referencing the file location itself - not sure why it was like that in the first place. Should be fixed in v11.2.3