diff --git a/docs/api/datasource.md b/docs/api/datasource.md index 305dfd7b3..55597f473 100644 --- a/docs/api/datasource.md +++ b/docs/api/datasource.md @@ -34,30 +34,12 @@ dataSource.addRecord({ id: 'id3', name: 'value3' }); * `props` **DataSourceProps** Properties to initialize the data source. * `opts` **DataSourceOptions** Options to initialize the data source. -## id - -DataSource id. - -Type: [string][5] - -## records - -DataSource records. - -Type: (DataRecords | [Array][6]\ | [Array][6]\) - -## transformers - -DataSource validation and transformation factories. - -Type: DataSourceTransformers - ## defaults Returns the default properties for the data source. These include an empty array of records and an empty object of transformers. -Returns **[Object][7]** The default attributes for the data source. +Returns **[Object][5]** The default attributes for the data source. ## constructor @@ -101,16 +83,16 @@ If a transformer is provided for the `onRecordRead` event, it will be applied to ### Parameters -* `id` **([string][5] | [number][8])** The ID of the record to retrieve. +* `id` **([string][6] | [number][7])** The ID of the record to retrieve. -Returns **(DataRecord | [undefined][9])** The data record, or `undefined` if no record is found with the given ID. +Returns **(DataRecord | [undefined][8])** The data record, or `undefined` if no record is found with the given ID. ## getRecords Retrieves all records from the data source. Each record is processed with the `getRecord` method to apply any read transformers. -Returns **[Array][6]<(DataRecord | [undefined][9])>** An array of data records. +Returns **[Array][9]<(DataRecord | [undefined][8])>** An array of data records. ## removeRecord @@ -119,10 +101,10 @@ If a transformer is provided for the `onRecordDelete` event, it will be applied ### Parameters -* `id` **([string][5] | [number][8])** The ID of the record to remove. +* `id` **([string][6] | [number][7])** The ID of the record to remove. * `opts` **RemoveOptions?** Options to apply when removing the record. -Returns **(DataRecord | [undefined][9])** The removed data record, or `undefined` if no record is found with the given ID. +Returns **(DataRecord | [undefined][8])** The removed data record, or `undefined` if no record is found with the given ID. [1]: #addrecord @@ -132,12 +114,12 @@ Returns **(DataRecord | [undefined][9])** The removed data record, or `undefined [4]: #removerecord -[5]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String +[5]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object -[6]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array +[6]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String -[7]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object +[7]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number -[8]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number +[8]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined -[9]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined +[9]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array diff --git a/src/data_sources/index.ts b/src/data_sources/index.ts index 1522ca560..09fdb1145 100644 --- a/src/data_sources/index.ts +++ b/src/data_sources/index.ts @@ -38,9 +38,9 @@ import { ItemManagerModule, ModuleConfig } from '../abstract/Module'; import { AddOptions, RemoveOptions } from '../common'; import EditorModel from '../editor/model/Editor'; -import DataSource, { DataSourceProps } from './model/DataSource'; +import DataSource from './model/DataSource'; import DataSources from './model/DataSources'; -import { DataSourcesEvents } from './types'; +import { DataSourcesEvents, DataSourceProps } from './types'; import { Events } from 'backbone'; export default class DataSourceManager extends ItemManagerModule { diff --git a/src/data_sources/model/DataRecords.ts b/src/data_sources/model/DataRecords.ts index 1fabbe8ad..8d3fb0d63 100644 --- a/src/data_sources/model/DataRecords.ts +++ b/src/data_sources/model/DataRecords.ts @@ -1,4 +1,3 @@ -import { Model } from 'backbone'; import { AddOptions, Collection } from '../../common'; import { DataRecordProps } from '../types'; import DataRecord from './DataRecord'; diff --git a/src/data_sources/model/DataSource.ts b/src/data_sources/model/DataSource.ts index 2194bdf08..9dae2b91c 100644 --- a/src/data_sources/model/DataSource.ts +++ b/src/data_sources/model/DataSource.ts @@ -34,38 +34,13 @@ import { AddOptions, CombinedModelConstructorOptions, Model, RemoveOptions } from '../../common'; import EditorModel from '../../editor/model/Editor'; -import { DataRecordProps } from '../types'; +import { DataRecordProps, DataSourceProps, DataSourceTransformers } from '../types'; import DataRecord from './DataRecord'; import DataRecords from './DataRecords'; import DataSources from './DataSources'; interface DataSourceOptions extends CombinedModelConstructorOptions<{ em: EditorModel }, DataSource> {} -export interface DataSourceProps { - /** - * DataSource id. - */ - id: string; - - /** - * DataSource records. - */ - records?: DataRecords | DataRecord[] | DataRecordProps[]; - - /** - * DataSource validation and transformation factories. - */ - - transformers?: DataSourceTransformers; -} - -export interface DataSourceTransformers { - onRecordAdd?: (args: { record: DataRecordProps }) => DataRecordProps; - onRecordSet?: (args: { id: string | number; key: string; value: any }) => any; - onRecordDelete?: (args: { record: DataRecord }) => void; - onRecordRead?: (args: { record: DataRecord }) => DataRecord; -} - export default class DataSource extends Model { transformers: DataSourceTransformers; diff --git a/src/data_sources/model/DataSources.ts b/src/data_sources/model/DataSources.ts index 2037d857f..4f7478762 100644 --- a/src/data_sources/model/DataSources.ts +++ b/src/data_sources/model/DataSources.ts @@ -1,6 +1,7 @@ import { Collection } from '../../common'; import EditorModel from '../../editor/model/Editor'; -import DataSource, { DataSourceProps } from './DataSource'; +import { DataSourceProps } from '../types'; +import DataSource from './DataSource'; export default class DataSources extends Collection { em: EditorModel; diff --git a/src/data_sources/types.ts b/src/data_sources/types.ts index ca913fb09..037f055bc 100644 --- a/src/data_sources/types.ts +++ b/src/data_sources/types.ts @@ -1,4 +1,6 @@ import { ObjectAny } from '../common'; +import DataRecord from './model/DataRecord'; +import DataRecords from './model/DataRecords'; export interface DataRecordProps extends ObjectAny { /** @@ -12,6 +14,31 @@ export interface DataVariableListener { event: string; } +export interface DataSourceProps { + /** + * DataSource id. + */ + id: string; + + /** + * DataSource records. + */ + records?: DataRecords | DataRecord[] | DataRecordProps[]; + + /** + * DataSource validation and transformation factories. + */ + + transformers?: DataSourceTransformers; +} + +export interface DataSourceTransformers { + onRecordAdd?: (args: { record: DataRecordProps }) => DataRecordProps; + onRecordSet?: (args: { id: string | number; key: string; value: any }) => any; + onRecordDelete?: (args: { record: DataRecord }) => void; + onRecordRead?: (args: { record: DataRecord }) => DataRecord; +} + /**{START_EVENTS}*/ export enum DataSourcesEvents { /**