@snap/camera-kit
Version:
Camera Kit Web
67 lines (41 loc) • 2.46 kB
Markdown
[**CameraKit Web SDK v1.13.0**](../README.md)
***
[CameraKit Web SDK](../globals.md) / bootstrapCameraKit
# Function: bootstrapCameraKit()
> **bootstrapCameraKit**(`configuration`, `provide`?): `Promise`\<[`CameraKit`](../classes/CameraKit.md)\>
Bootstrap CameraKit. This will download the WebAssembly code which powers CameraKit's rendering engine, and return
an instance of [CameraKit](../classes/CameraKit.md).
CameraKit must be provided with some configuration (the application's API token), and there are some additional
configurations which are optional.
Descriptions of the available configurations can be found in the documentation for
[CameraKitBootstrapConfiguration](../interfaces/CameraKitBootstrapConfiguration.md)
---
There is also a second, more advanced way to modify CameraKit to provide greater flexibility to support less common
use cases.
This requires some knowledge of CameraKit's dependency injection system, and allows applications to provide their
own custom implementations of certain CameraKit components. This functionality will only be needed by applications
with very specific, more advanced requirements.
## Parameters
### configuration
[`CameraKitBootstrapConfiguration`](../interfaces/CameraKitBootstrapConfiguration.md)
Configure CameraKit with e.g. credentials, global resource endpoints, etc.
### provide?
(`c`) => [`PublicContainer`](../type-aliases/PublicContainer.md)
Optional function that can make modifications to CameraKit's root DI container.
## Returns
`Promise`\<[`CameraKit`](../classes/CameraKit.md)\>
A [CameraKit](../classes/CameraKit.md) instance, which is the entry point to CameraKit's API.
## Example
```ts
// The most common way to bootstrap:
const cameraKit = await bootstrapCameraKit({ apiToken: myApiToken })
// For special advanced use-cases, it is possible to provide custom implementations for certain CameraKit components.
const cameraKit = await bootstrapCameraKit(config, (container) => {
return container.provides(myCustomRemoteMediaAssetLoaderFactory)
})
```
## Throws
- [ConfigurationError](../type-aliases/ConfigurationError.md) when provided configuration object is invalid
- [PlatformNotSupportedError](../type-aliases/PlatformNotSupportedError.md) when current platform is not supported by CameraKit
- [BootstrapError](../type-aliases/BootstrapError.md) when a failure occurs while initializing CameraKit and downloading the render engine
WebAssembly binary.