Skip to content

Commit 9804d53

Browse files
committed
Refactor
1 parent bb4ca79 commit 9804d53

2 files changed

Lines changed: 36 additions & 36 deletions

File tree

src/mdast-util-to-docx.ts

Lines changed: 21 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -347,26 +347,27 @@ const buildParagraph: NodeBuilder<"paragraph"> = ({ children }, ctx) => {
347347
}
348348

349349
if (list) {
350-
if (list.type === "task") {
350+
const { level, meta } = list;
351+
if (meta.type === "task") {
351352
nodes.unshift(
352353
new CheckBox({
353-
checked: list.checked,
354+
checked: meta.checked,
354355
checkedState: { value: "2611" },
355356
uncheckedState: { value: "2610" },
356357
}),
357358
);
358359
options.numbering = {
359360
reference: TASK_LIST_REF,
360-
level: list.level,
361+
level,
361362
};
362-
} else if (list.type === "ordered") {
363+
} else if (meta.type === "ordered") {
363364
options.numbering = {
364-
reference: list.reference,
365-
level: list.level,
365+
reference: meta.reference,
366+
level,
366367
};
367368
} else {
368369
options.bullet = {
369-
level: list.level,
370+
level,
370371
};
371372
}
372373
}
@@ -417,25 +418,26 @@ const buildBlockquote: NodeBuilder<"blockquote"> = ({ children }, ctx) => {
417418

418419
const buildList: NodeBuilder<"list"> = ({ children, ordered }, ctx) => {
419420
const parentList = ctx.list;
420-
const level = !parentList ? 0 : parentList.level + 1;
421421

422-
let list: ListContext;
422+
let meta: ListContext["meta"];
423423
if (ordered) {
424-
list = {
424+
meta = {
425425
type: "ordered",
426-
level,
427426
reference:
428-
parentList && parentList.type === "ordered"
429-
? parentList.reference
427+
parentList && parentList.meta.type === "ordered"
428+
? parentList.meta.reference
430429
: ctx.orderedListId(),
431430
};
432431
} else {
433-
list = { type: "bullet", level };
432+
meta = { type: "bullet" };
434433
}
435434

436435
return ctx.render(children, {
437436
...ctx,
438-
list,
437+
list: {
438+
level: !parentList ? 0 : parentList.level + 1,
439+
meta,
440+
},
439441
});
440442
};
441443

@@ -445,9 +447,11 @@ const buildListItem: NodeBuilder<"listItem"> = ({ children, checked }, ctx) => {
445447
// listItem must be the child of list
446448
if (checked != null) {
447449
list = {
448-
type: "task",
449450
level: list.level,
450-
checked,
451+
meta: {
452+
type: "task",
453+
checked,
454+
},
451455
};
452456
}
453457
}

src/types.ts

Lines changed: 15 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -25,26 +25,22 @@ type DecorationContext = Readonly<{
2525
link?: boolean;
2626
}>;
2727

28-
type CommonListInfo = { level: number };
29-
type BulletList = Readonly<
30-
CommonListInfo & {
31-
type: "bullet";
32-
}
33-
>;
34-
type OrderedList = Readonly<
35-
CommonListInfo & {
36-
type: "ordered";
37-
reference: string;
38-
}
39-
>;
40-
type TaskList = Readonly<
41-
CommonListInfo & {
42-
type: "task";
43-
checked: boolean;
44-
}
45-
>;
28+
type BulletList = Readonly<{
29+
type: "bullet";
30+
}>;
31+
type OrderedList = Readonly<{
32+
type: "ordered";
33+
reference: string;
34+
}>;
35+
type TaskList = Readonly<{
36+
type: "task";
37+
checked: boolean;
38+
}>;
4639

47-
export type ListContext = BulletList | OrderedList | TaskList;
40+
export type ListContext = Readonly<{
41+
level: number;
42+
meta: BulletList | OrderedList | TaskList;
43+
}>;
4844

4945
export type FootnoteRegistry = {
5046
ref: (id: string) => number;

0 commit comments

Comments
 (0)