Skip to content

Extension SDK API reference

HostApi

ts
const hostApi = createHostConnection()

getElements

ts
getElements({
    select?: ElementSelect,
    filter?: ElementFilter
}): Promise<QueryPick<ElementData, ElementSelect>[]>

Filter by ElementFilter and select the returned properties with ElementSelect which defaults to DefaultSelect`

Return type matches ElementSelect

getElementById

ts
getElementById({
    id: string,
    select?: ElementSelect
}): Promise<QueryPick<ElementData, ElementSelect>>

Return type matches ElementSelect

getSpaces

ts
getSpaces({
    select?: SpaceSelect,
    filter?: SpaceFilter
}): Promise<QueryPick<SpaceData, SpaceSelect>[]>

Filter by SpaceFilter and select the returned properties with SpaceSelect which defaults to DefaultSelect

Return type matches SpaceSelect

getSpaceById

ts
getSpaceById({
    id: string,
    select?: SpaceSelect
}): Promise<QueryPick<SpaceData, SpaceSelect>>

Return type matches SpaceSelect

Types

DefaultSelect

ts
type DefaultSelect = { id: true; type: true }

BaseSelect

ts
interface BaseSelect {
  id?: boolean
  type?: boolean
  name?: boolean
  customId?: boolean
  customAttributes?: boolean | Record<string, boolean>
  dimensions?:
    | boolean
    | {
        width?: boolean
        length?: boolean
        height?: boolean
      }
  boundingBox?: boolean
  boundingBoxContour?: boolean
}

SpaceSelect

ts
export interface SpaceSelect extends BaseSelect {
  category?: boolean
  subCategory?: boolean
  isExternal?: boolean
  area?: boolean
  labelPoint?: boolean
  seatCapacity?: boolean
  polygons?: boolean
  elements?: ElementQuery
}

ElementSelect

ts
export interface ElementSelect extends BaseSelect {
  product?: ProductSelect | boolean
  isExternal?: boolean
  position?: boolean
  rotation?: boolean
}

BaseFilter

ts
interface BaseFilter {
  id?: StringComparator
  type?: StringComparator
  name?: StringComparator
  customId?: StringComparator
  customAttributes?: Record<string, StringComparator | NumberComparator | BooleanComparator>
  dimensions?: {
    width?: NumberComparator
    length?: NumberComparator
    height?: NumberComparator
  }
}

ElementFilter

ts
export interface ElementFilter extends BaseFilter {
  product?: ProductFilter
  isExternal?: BooleanComparator
}

SpaceFilter

ts
export interface SpaceFilter extends BaseFilter {
  category?: StringComparator
  subCategory?: StringComparator
  seatCapacity?: NumberComparator
  isExternal?: BooleanComparator
  area?: NumberComparator
}

SpaceQuery

ts
export type SpaceQuery = {
  select?: SpaceSelect
  where?: SpaceFilter
}