← Public packages
@kody/doordash-driver
Request DoorDash Drive (Dasher) deliveries with JWT auth from Developer Portal access keys.
src/index.ts
72 lines · 1.6 KB · TypeScript/**
* @kody/doordash-driver — DoorDash Drive helpers (JWT auth, quotes, deliveries).
*
* ```ts
* import doordash from 'kody:@kody/doordash-driver'
* await doordash({ action: 'smoke-test' })
* ```
*/
import acceptQuote from './accept-quote.ts'
import adapt from './adapt.ts'
import createDelivery from './create-delivery.ts'
import createQuote from './create-quote.ts'
import getDelivery from './get-delivery.ts'
import { parseAction } from './core.ts'
import settings from './settings.ts'
import smokeTest from './smoke-test.ts'
const ACTIONS = [
'smoke-test',
'create-delivery',
'get-delivery',
'create-quote',
'accept-quote',
'settings',
'adapt',
] as const
export type DoorDashAction = (typeof ACTIONS)[number]
export default async function doordash(input: Record<string, unknown> = {}) {
const action = parseAction(input.action, ACTIONS, 'smoke-test', 'doordash')
switch (action) {
case 'smoke-test':
return smokeTest(input as any)
case 'create-delivery':
return createDelivery(input as any)
case 'get-delivery':
return getDelivery(input as any)
case 'create-quote':
return createQuote(input as any)
case 'accept-quote':
return acceptQuote(input as any)
case 'settings':
return settings(input as any)
case 'adapt':
return adapt()
default:
return parseAction(action, ACTIONS, 'smoke-test', 'doordash')
}
}
export {
acceptQuote,
adapt,
createDelivery,
createQuote,
getDelivery,
settings,
smokeTest,
}
export {
API_BASE_URL,
API_HOST,
DoorDashApiError,
createDriveJwt,
doorDashRequest,
resolveDriveBearerToken,
setupUrls,
signingSecretSetupUrl,
} from './core.ts'