dev-api: add developer portal, OpenAPI spec, and Flatenbadet case study
- New /developers/ page with API docs, SDKs, pricing, use cases - OpenAPI 3.0 spec for Orders, Missions, Photos, Analytics - Case study: Glasskiosken i Flatenbadet — complete ROI analysis - Updated /order/ with recurring missions and frequency dropdown
This commit is contained in:
+34
@@ -0,0 +1,34 @@
|
||||
import { truncate, inspectList, inspectProperty } from './helpers'
|
||||
|
||||
const errorKeys = [
|
||||
'stack',
|
||||
'line',
|
||||
'column',
|
||||
'name',
|
||||
'message',
|
||||
'fileName',
|
||||
'lineNumber',
|
||||
'columnNumber',
|
||||
'number',
|
||||
'description',
|
||||
]
|
||||
|
||||
export default function inspectObject(error, options) {
|
||||
const properties = Object.getOwnPropertyNames(error).filter(key => errorKeys.indexOf(key) === -1)
|
||||
const name = error.name
|
||||
options.truncate -= name.length
|
||||
let message = ''
|
||||
if (typeof error.message === 'string') {
|
||||
message = truncate(error.message, options.truncate)
|
||||
} else {
|
||||
properties.unshift('message')
|
||||
}
|
||||
message = message ? `: ${message}` : ''
|
||||
options.truncate -= message.length + 5
|
||||
const propertyContents = inspectList(
|
||||
properties.map(key => [key, error[key]]),
|
||||
options,
|
||||
inspectProperty
|
||||
)
|
||||
return `${name}${message}${propertyContents ? ` { ${propertyContents} }` : ''}`
|
||||
}
|
||||
Reference in New Issue
Block a user