Skip to main content


In this example, we will show you how to use the CreativeEditor SDK's CreativeEngine to control URI lookups and perform color conversions in the editor API.


This example uses the headless CreativeEngine. See the Setup article for a detailed guide. To get started right away, you can also access the block API within a running CE.SDK instance via cesdk.engine.block. Check out the APIs Overview to see that illustrated in more detail.

URI Resolver#

The CreativeEngine allows overriding how URI's are resolved at runtime using the following APIs. See the in-depth guide for more details.

setURIResolver(resolver: (URI: string, defaultURIResolver: (URI: string) => string) => string): void

Sets a custom URI resolver. This function can be called more than once. Subsequent calls will overwrite previous calls. To remove a previously set resolver, pass the value null. The given function must return an absolute path with a scheme.

  • resolver: Custom resolution function. The resolution function should not reference variables outside of its scope. It receives the default URI resolver as its second argument
getAbsoluteURI(relativePath: string): string

Resolves the given path. If a custom resolver has been set with setURIResolver, it invokes it with the given path. Else, it resolves it as relative to the basePath setting. This performs NO validation of whether a file exists at the specified location.

  • relativePath: A relative path string
  • Returns The resolved absolute uri or an error if an invalid path was given.
defaultURIResolver(relativePath: string): string

This is the default implementation for the URI resolver. It resolves the given path relative to the basePath setting.

  • relativePath: The relative path that should be resolved.
  • Returns The resolved absolute URI.

Color Conversions#

To ease implementing advanced color interfaces, you may rely on the engine to perform color conversions.

convertColorToColorSpace(color: Color, colorSpace: 'sRGB'): RGBAColor

Converts a color to the given color space.

  • color: The color to convert.
  • colorSpace: The color space to convert to.
  • Returns The converted color.
convertColorToColorSpace(color: Color, colorSpace: 'CMYK'): CMYKColor
convertColorToColorSpace(color: Color, colorSpace: ColorSpace): never