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:
projectDiris 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