Skip to content

Commit 70d7e5c

Browse files
committed
refactor: ♻️ Added attribute support for array value
1 parent fc916db commit 70d7e5c

File tree

3 files changed

+24
-4
lines changed

3 files changed

+24
-4
lines changed

src/Models/metadata-model.ts

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,19 @@ export function attributeToString( attributes: Attributes):string {
5757
for (const key in attributes) {
5858
if (Object.prototype.hasOwnProperty.call(attributes, key)) {
5959
let element = attributes[key];
60-
if (typeof element === 'object') {
60+
if (element instanceof Array) {
61+
let elementString = ''
62+
let isFirst = true
63+
element.forEach((value) => {
64+
if (isFirst) {
65+
elementString += `${value}`
66+
isFirst = false
67+
}else {
68+
elementString += `, ${value}`
69+
}
70+
})
71+
element = elementString
72+
} else if (typeof element === 'object') {
6173
let elementString = ''
6274
for (const elementKey in element) {
6375
if (Object.prototype.hasOwnProperty.call(element, elementKey)) {

src/index.ts

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,14 @@
1-
export { Option, RenderContentType, RenderOption, RenderNode } from './options/index';
1+
2+
3+
export { Next, Option, RenderNode, RenderMark, RenderItem, RenderContentType, RenderOption } from './options/index';
24
export { EntryEmbedable, EmbeddedItem as EntryModel } from './Models/embedded-object';
3-
export { Metadata } from './Models/metadata-model';
5+
export { Metadata, Attributes, attributeToString } from './Models/metadata-model';
46
export { default as StyleType } from './embedded-types/style-type';
57
export { render, renderContent } from './render-embedded-objects';
8+
9+
export { default as NodeType } from './nodes/node-type'
10+
export { default as MarkType } from './nodes/mark-type'
11+
export { default as Node} from './nodes/node'
12+
export { default as Document } from './nodes/document'
13+
export { default as TextNode } from './nodes/text';
14+
export { jsonToHTML } from './json-to-html'

src/options/index.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ import { AnyNode } from '../json-to-html';
22
import { EntryEmbedable, EmbeddedItem } from '../Models/embedded-object';
33
import { Metadata } from '../Models/metadata-model';
44
import Node from '../nodes/node';
5-
import TextNode from '../nodes/text';
65

76
export type Next = (nodes: AnyNode[]) => string
87
export type RenderNode = (node: Node, next: Next) => string;

0 commit comments

Comments
 (0)