Skip to content

Commit

Permalink
refactor: endpoint.options() is now endpoint.merge()
Browse files Browse the repository at this point in the history
BREAKING CHANGE: endpoint.options() has been renamed to endpoint.merge()
  • Loading branch information
gr2m committed Oct 31, 2018
1 parent 7c8e439 commit 6ff1054
Show file tree
Hide file tree
Showing 8 changed files with 16 additions and 22 deletions.
7 changes: 3 additions & 4 deletions lib/endpoint-with-defaults.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
module.exports = endpointWithDefaults

const defaultOptions = require('./default-options')
const toRequestOptions = require('./to-request-options')
const merge = require('./merge')
const parse = require('./parse')

function endpointWithDefaults (defaults, route, options) {
const endpointOptions = defaultOptions(defaults, route, options)
return toRequestOptions(endpointOptions)
return parse(merge(defaults, route, options))
}
2 changes: 1 addition & 1 deletion lib/default-options.js → lib/merge.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ module.exports = defaultOptions
const merge = require('deepmerge')
const isPlainObject = require('is-plain-object')

const lowercaseKeys = require('./lowercase-keys')
const lowercaseKeys = require('./util/lowercase-keys')

function defaultOptions (defaults, route, options) {
if (typeof route === 'string') {
Expand Down
6 changes: 3 additions & 3 deletions lib/to-request-options.js → lib/parse.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
module.exports = toRequestOptions

const urlTemplate = require('url-template')
const addQueryParameters = require('./add-query-parameters')
const extractUrlVariableNames = require('./extract-url-variable-names')
const omit = require('./omit')
const addQueryParameters = require('./util/add-query-parameters')
const extractUrlVariableNames = require('./util/extract-url-variable-names')
const omit = require('./util/omit')

function toRequestOptions (options) {
// https://fetch.spec.whatwg.org/#methods
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
23 changes: 9 additions & 14 deletions with-defaults.js
Original file line number Diff line number Diff line change
@@ -1,20 +1,15 @@
module.exports = withDefaults

const merge = require('deepmerge')
const isPlainObject = require('is-plain-object')

const endpointWithDefaults = require('./lib/endpoint-with-defaults')
const lowercaseKeys = require('./lib/lowercase-keys')
const optionsWithDefaults = require('./lib/default-options')
const toRequestOptions = require('./lib/to-request-options')
const merge = require('./lib/merge')
const parse = require('./lib/parse')

function withDefaults (oldDefaults, newDefaults) {
newDefaults.headers = lowercaseKeys(newDefaults.headers)
const DEFAULTS = merge.all([oldDefaults, newDefaults].filter(Boolean), { isMergeableObject: isPlainObject })
const endpoint = endpointWithDefaults.bind(null, DEFAULTS)
endpoint.DEFAULTS = DEFAULTS
endpoint.defaults = withDefaults.bind(null, DEFAULTS)
endpoint.options = optionsWithDefaults.bind(null, DEFAULTS)
endpoint.parse = toRequestOptions
return endpoint
const DEFAULTS = merge(oldDefaults, newDefaults)
return Object.assign(endpointWithDefaults.bind(null, DEFAULTS), {
DEFAULTS,
defaults: withDefaults.bind(null, DEFAULTS),
merge: merge.bind(null, DEFAULTS),
parse
})
}

0 comments on commit 6ff1054

Please sign in to comment.