Browse Source

refactor: move DataSourceProps to types file

feature/data-sources
danstarns 2 years ago
parent
commit
5d6c479a99
  1. 40
      docs/api/datasource.md
  2. 4
      src/data_sources/index.ts
  3. 1
      src/data_sources/model/DataRecords.ts
  4. 27
      src/data_sources/model/DataSource.ts
  5. 3
      src/data_sources/model/DataSources.ts
  6. 27
      src/data_sources/types.ts

40
docs/api/datasource.md

@ -34,30 +34,12 @@ dataSource.addRecord({ id: 'id3', name: 'value3' });
* `props` **DataSourceProps** Properties to initialize the data source. * `props` **DataSourceProps** Properties to initialize the data source.
* `opts` **DataSourceOptions** Options 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]\<DataRecord> | [Array][6]\<DataRecordProps>)
## transformers
DataSource validation and transformation factories.
Type: DataSourceTransformers
## defaults ## defaults
Returns the default properties for the data source. Returns the default properties for the data source.
These include an empty array of records and an empty object of transformers. 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 ## constructor
@ -101,16 +83,16 @@ If a transformer is provided for the `onRecordRead` event, it will be applied to
### Parameters ### 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 ## getRecords
Retrieves all records from the data source. Retrieves all records from the data source.
Each record is processed with the `getRecord` method to apply any read transformers. 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 ## removeRecord
@ -119,10 +101,10 @@ If a transformer is provided for the `onRecordDelete` event, it will be applied
### Parameters ### 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. * `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 [1]: #addrecord
@ -132,12 +114,12 @@ Returns **(DataRecord | [undefined][9])** The removed data record, or `undefined
[4]: #removerecord [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

4
src/data_sources/index.ts

@ -38,9 +38,9 @@
import { ItemManagerModule, ModuleConfig } from '../abstract/Module'; import { ItemManagerModule, ModuleConfig } from '../abstract/Module';
import { AddOptions, RemoveOptions } from '../common'; import { AddOptions, RemoveOptions } from '../common';
import EditorModel from '../editor/model/Editor'; import EditorModel from '../editor/model/Editor';
import DataSource, { DataSourceProps } from './model/DataSource'; import DataSource from './model/DataSource';
import DataSources from './model/DataSources'; import DataSources from './model/DataSources';
import { DataSourcesEvents } from './types'; import { DataSourcesEvents, DataSourceProps } from './types';
import { Events } from 'backbone'; import { Events } from 'backbone';
export default class DataSourceManager extends ItemManagerModule<ModuleConfig, DataSources> { export default class DataSourceManager extends ItemManagerModule<ModuleConfig, DataSources> {

1
src/data_sources/model/DataRecords.ts

@ -1,4 +1,3 @@
import { Model } from 'backbone';
import { AddOptions, Collection } from '../../common'; import { AddOptions, Collection } from '../../common';
import { DataRecordProps } from '../types'; import { DataRecordProps } from '../types';
import DataRecord from './DataRecord'; import DataRecord from './DataRecord';

27
src/data_sources/model/DataSource.ts

@ -34,38 +34,13 @@
import { AddOptions, CombinedModelConstructorOptions, Model, RemoveOptions } from '../../common'; import { AddOptions, CombinedModelConstructorOptions, Model, RemoveOptions } from '../../common';
import EditorModel from '../../editor/model/Editor'; import EditorModel from '../../editor/model/Editor';
import { DataRecordProps } from '../types'; import { DataRecordProps, DataSourceProps, DataSourceTransformers } from '../types';
import DataRecord from './DataRecord'; import DataRecord from './DataRecord';
import DataRecords from './DataRecords'; import DataRecords from './DataRecords';
import DataSources from './DataSources'; import DataSources from './DataSources';
interface DataSourceOptions extends CombinedModelConstructorOptions<{ em: EditorModel }, DataSource> {} 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<DataSourceProps> { export default class DataSource extends Model<DataSourceProps> {
transformers: DataSourceTransformers; transformers: DataSourceTransformers;

3
src/data_sources/model/DataSources.ts

@ -1,6 +1,7 @@
import { Collection } from '../../common'; import { Collection } from '../../common';
import EditorModel from '../../editor/model/Editor'; 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<DataSource> { export default class DataSources extends Collection<DataSource> {
em: EditorModel; em: EditorModel;

27
src/data_sources/types.ts

@ -1,4 +1,6 @@
import { ObjectAny } from '../common'; import { ObjectAny } from '../common';
import DataRecord from './model/DataRecord';
import DataRecords from './model/DataRecords';
export interface DataRecordProps extends ObjectAny { export interface DataRecordProps extends ObjectAny {
/** /**
@ -12,6 +14,31 @@ export interface DataVariableListener {
event: string; 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}*/ /**{START_EVENTS}*/
export enum DataSourcesEvents { export enum DataSourcesEvents {
/** /**

Loading…
Cancel
Save