diff --git a/format/location.js b/format/location.js index 121cd13f..aa7d19d1 100644 --- a/format/location.js +++ b/format/location.js @@ -1,14 +1,15 @@ 'use strict' -const formatLocation = (profile, l) => { +const formatLocation = (profile, l, name = 'location') => { if ('string' === typeof l) return profile.formatStation(l) if ('object' === typeof l && !Array.isArray(l)) { if (l.type === 'station') return profile.formatStation(l.id) if ('string' === typeof l.id) return profile.formatPoi(l) if ('string' === typeof l.address) return profile.formatAddress(l) - throw new Error('invalid location type: ' + l.type) + if (!l.type) throw new Error(`missing ${name}.type`) + throw new Error(`invalid ${name}type: ${l.type}`) } - throw new Error('valid station, address or poi required.') + throw new Error(name + ': valid station, address or poi required.') } module.exports = formatLocation diff --git a/index.js b/index.js index 7d0482b7..7ea60620 100644 --- a/index.js +++ b/index.js @@ -57,8 +57,8 @@ const createClient = (profile, request = _request) => { } const journeys = (from, to, opt = {}) => { - from = profile.formatLocation(profile, from) - to = profile.formatLocation(profile, to) + from = profile.formatLocation(profile, from, 'from') + to = profile.formatLocation(profile, to, 'to') if (('earlierThan' in opt) && ('laterThan' in opt)) { throw new Error('opt.laterThan and opt.laterThan are mutually exclusive.') @@ -94,7 +94,7 @@ const createClient = (profile, request = _request) => { bike: false, // only bike-friendly journeys tickets: false, // return tickets? }, opt) - if (opt.via) opt.via = profile.formatLocation(profile, opt.via) + if (opt.via) opt.via = profile.formatLocation(profile, opt.via, 'opt.via') opt.when = opt.when || new Date() const filters = [