Skip to content
Open
Show file tree
Hide file tree
Changes from 7 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# Master

# 2.0.5 - 4 March, 2021
### Improvements
- Added support for relative URLs and variables in servers #59

# 2.0.4 - 26 Nov, 2020
### Improvements
- Nullable is now fully supported
Expand Down
7 changes: 6 additions & 1 deletion src/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,12 @@ function buildValidations(referenced, dereferenced, receivedOptions) {
const schemas = {};

const basePaths = dereferenced.servers && dereferenced.servers.length
Comment thread
udamir marked this conversation as resolved.
Outdated
? dereferenced.servers.map(({ url }) => new URL(url).pathname)
? dereferenced.servers.map(({ url, variables = {} }) => {
Object.keys(variables).forEach((key) => {
Comment thread
udamir marked this conversation as resolved.
url = url.replace(new RegExp(`{${key}}`), variables[key].default || '');
Comment thread
udamir marked this conversation as resolved.
Outdated
});
return url.slice(0, 1) === '/' ? url : new URL(url).pathname;
Comment thread
udamir marked this conversation as resolved.
Outdated
})
: [dereferenced.basePath || '/'];

Object.keys(dereferenced.paths).forEach(currentPath => {
Expand Down
13 changes: 13 additions & 0 deletions test/openapi3/general/pets-general.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,19 @@ paths:
servers:
- url: http://petstore.swagger.io
- url: http://petstore.swagger.io/staging/
- url: /staging
- url: '{protocol}://petstore.swagger.io/{env}'
variables:
protocol:
enum:
- http
- https
default: http
env:
enum:
- staging
- ''
default: ''
Comment thread
udamir marked this conversation as resolved.
Outdated
components:
schemas:
Error:
Expand Down