Browse Source

Refactor types

pull/6295/head
mohamedsalem401 1 year ago
parent
commit
c514e65526
  1. 23
      packages/core/src/data_sources/model/DataSource.ts

23
packages/core/src/data_sources/model/DataSource.ts

@ -40,7 +40,10 @@ import DataSources from './DataSources';
interface DataSourceOptions extends CombinedModelConstructorOptions<{ em: EditorModel }, DataSource> {}
type Record<DS extends DataSourceType> = SingleRecordType<DS['records']>;
export default class DataSource<DS extends DataSourceType = DataSourceType> extends Model<DS> {
export default class DataSource<
DS extends DataSourceType = DataSourceType,
DR extends Record<DS> = Record<DS>,
> extends Model<DS> {
transformers: DataSourceTransformers;
/**
@ -67,11 +70,13 @@ export default class DataSource<DS extends DataSourceType = DataSourceType> exte
* @name constructor
*/
constructor(props: DataSourceProps<DS>, opts: DataSourceOptions) {
const pr = {
...props,
records: [],
} as unknown as DS;
super(pr, opts);
super(
{
...props,
records: [],
} as unknown as DS,
opts,
);
const { records, transformers } = props;
this.transformers = transformers || {};
@ -123,7 +128,7 @@ export default class DataSource<DS extends DataSourceType = DataSourceType> exte
* @returns {DataRecord} The added data record.
* @name addRecord
*/
addRecord(record: Record<DS>, opts?: AddOptions) {
addRecord(record: DR, opts?: AddOptions) {
return this.records.add(record, opts);
}
@ -135,7 +140,7 @@ export default class DataSource<DS extends DataSourceType = DataSourceType> exte
* @name getRecord
*/
getRecord(id: string | number) {
return this.records.get(id) as Record<DS> | undefined;
return this.records.get(id) as DR | undefined;
}
/**
@ -173,7 +178,7 @@ export default class DataSource<DS extends DataSourceType = DataSourceType> exte
* @returns {Array<DataRecord>} An array of the added data records.
* @name setRecords
*/
setRecords(records: Record<DS>[]) {
setRecords(records: DR[]) {
this.records.reset([], { silent: true });
records.forEach((record) => {

Loading…
Cancel
Save