Skip to content

Commit ca0357c

Browse files
authored
Merge pull request #131 from editor-js/improve-normalize-data-util
imp(utils): improved normalize data util
2 parents bbc46d5 + 7ba9701 commit ca0357c

3 files changed

Lines changed: 26 additions & 6 deletions

File tree

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@editorjs/list",
3-
"version": "2.0.2",
3+
"version": "2.0.3",
44
"keywords": [
55
"codex editor",
66
"list",

src/types/ListParams.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,11 @@ export interface OldListData {
2929
items: string[];
3030
}
3131

32+
/**
33+
* Type that represents data of the List tool
34+
*/
35+
export type OldNestedListData = Omit<ListData, 'meta'>;
36+
3237
/**
3338
* Interface that represents old checklist data format
3439
*/

src/utils/normalizeData.ts

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,29 @@
1-
import type { OldListData, ListData, ListItem, OldChecklistData } from '../types/ListParams';
1+
import type { OldListData, ListData, ListItem, OldChecklistData, OldNestedListData } from '../types/ListParams';
22

33
/**
44
* Method that checks if data is result of the Old list tool save mtehod
5-
* @param data - data of the OldList, Checklist or Editorjs List tool
5+
* @param data - data of the OldList, Checklist, OldNestedList or Editorjs List tool
66
* @returns true if data related to the List tool, false otherwise
77
*/
8-
function instanceOfOldListData(data: ListData | OldListData | OldChecklistData): data is OldListData {
8+
function instanceOfOldListData(data: ListData | OldListData | OldChecklistData | OldNestedListData): data is OldListData {
99
return (typeof data.items[0] === 'string');
1010
}
1111

12+
/**
13+
* Method that checks if data is result of the Old nested list tool save method
14+
* @param data - data of the OldList, Checklist, OldNestedList or Editorjs List tool
15+
* @returns true if data is related to the Nested List tool, false otherwise
16+
*/
17+
function instanceOfOldNestedListData(data: ListData | OldListData | OldChecklistData | OldNestedListData): data is OldNestedListData {
18+
return !('meta' in data);
19+
}
20+
1221
/**
1322
* Method that checks if data is result of the Old checklist tool save method
14-
* @param data - data of the Checklist, OldList or Editorjs List tool
23+
* @param data - data of the Checklist, OldList, OldNestedList or Editorjs List tool
1524
* @returns true if data is related to the Checklist tool, false otherwise
1625
*/
17-
function instanceOfChecklistData(data: ListData | OldListData | OldChecklistData): data is OldChecklistData {
26+
function instanceOfChecklistData(data: ListData | OldListData | OldChecklistData | OldNestedListData): data is OldChecklistData {
1827
return (
1928
typeof data.items[0] !== 'string'
2029
&& 'text' in data.items[0]
@@ -62,6 +71,12 @@ export default function normalizeData(data: ListData | OldListData | OldChecklis
6271
meta: {},
6372
items: normalizedDataItems,
6473
};
74+
} else if (instanceOfOldNestedListData(data)) {
75+
return {
76+
style: data.style,
77+
meta: {},
78+
items: data.items,
79+
};
6580
} else {
6681
return data;
6782
}

0 commit comments

Comments
 (0)