---
url: /api/platforms/canvas-theme-editor/src/interfaces/CdnProvider.md
---
[pantoken-root](../../../../index.md) / [platforms/canvas-theme-editor/src](../index.md) / CdnProvider

# Interface: CdnProvider

Alpha

A CDN that can serve npm package files. Providers never hardcode a package name — they only
know how to shape a URL from a [CdnFile](CdnFile.md).

## Properties

### id

> **id**: `string`

Alpha

Stable identifier, e.g. `"jsdelivr"`.

***

### label

> **label**: `string`

Alpha

Human-readable name, e.g. `"jsDelivr"`.

***

### supportsCombine

> **supportsCombine**: `boolean`

Alpha

Whether [CdnProvider.buildCombineUrl](#buildcombineurl) is implemented.

## Methods

### buildUrl()

> **buildUrl**(`file`, `options?`): `string`

Alpha

Builds the URL for a single file.

#### Parameters

##### file

[`CdnFile`](CdnFile.md)

##### options?

`CdnBuildOptions`

#### Returns

`string`

***

### buildCombineUrl()?

> `optional` **buildCombineUrl**(`files`, `options?`): `string`

Alpha

Builds one URL that serves multiple files concatenated together. Required iff `supportsCombine`.

#### Parameters

##### files

[`CdnFile`](CdnFile.md)\[]

##### options?

`CdnBuildOptions`

#### Returns

`string`
