Skip to main content

Interface: DataProvider<TDataSource, TData, TNormalizedDataSource>

Defined in: storage/base.ts:128

Base interface for data providers

Extended by

Type Parameters

TDataSource

TDataSource extends DataSource

The data source type this data provider opens

TData

TData extends Data

The Data type produced by this data provider

TNormalizedDataSource

TNormalizedDataSource extends TDataSource = TDataSource

The data source type produced by DataProvider.normalize and accepted by DataProvider.load

Properties

name

readonly name: string

Defined in: storage/base.ts:134

The name of the data provider


schema

readonly schema: JsonSchema

Defined in: storage/base.ts:137

The JSON schema for the data source


uischema

readonly uischema: UISchemaElement

Defined in: storage/base.ts:140

The JSON Forms UI schema for the data source

Methods

load()

load(normalizedDataSource, options?): Promise<TData>

Defined in: storage/base.ts:174

Opens a data source and returns the loaded data accessor

The data source has to have been normalized by DataProvider.normalize beforehand.

Parameters

normalizedDataSource

TNormalizedDataSource

The normalized data source to open

options?

DataProviderLoadOptions

See DataProviderLoadOptions

Returns

Promise<TData>

A promise that resolves to the loaded data accessor


normalize()

normalize(dataSource, projectUrl): TNormalizedDataSource

Defined in: storage/base.ts:159

Returns the data source with all of this data provider's defaults applied and all of its relative URLs resolved

Data sources that normalize to the same value are considered equal, and their data is loaded only once and shared between all referencing objects. Normalization has to be idempotent: normalizing an already normalized data source must return the same value again.

Relative URLs are resolved against the URL the project was loaded from, and against the document base URL for projects without one.

Parameters

dataSource

TDataSource

The data source to normalize

projectUrl

string | null

The absolute URL of the project, or null for projects that were not loaded from a URL

Returns

TNormalizedDataSource

The normalized data source