@platecms/delta-cast-util-to-hast 0.4.1 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/package.json +4 -5
  2. package/src/{index.d.ts → index.ts} +1 -0
  3. package/src/lib/elements/blockquote.ts +13 -0
  4. package/src/lib/elements/bold.ts +13 -0
  5. package/src/lib/elements/code.ts +13 -0
  6. package/src/lib/elements/contentValue.ts +15 -0
  7. package/src/lib/elements/heading.ts +13 -0
  8. package/src/lib/elements/{index.d.ts → index.ts} +16 -1
  9. package/src/lib/elements/italic.ts +13 -0
  10. package/src/lib/elements/link.ts +20 -0
  11. package/src/lib/elements/lists.ts +22 -0
  12. package/src/lib/elements/paragraph.ts +13 -0
  13. package/src/lib/elements/strikehrough.ts +13 -0
  14. package/src/lib/elements/text.ts +9 -0
  15. package/src/lib/elements/underline.ts +13 -0
  16. package/src/lib/index.spec.ts +404 -0
  17. package/src/lib/index.ts +78 -0
  18. package/src/lib/transformers/index.ts +25 -0
  19. package/src/lib/utils/index.ts +19 -0
  20. package/src/index.js +0 -9
  21. package/src/index.js.map +0 -1
  22. package/src/lib/elements/blockquote.d.ts +0 -4
  23. package/src/lib/elements/blockquote.js +0 -13
  24. package/src/lib/elements/blockquote.js.map +0 -1
  25. package/src/lib/elements/bold.d.ts +0 -4
  26. package/src/lib/elements/bold.js +0 -13
  27. package/src/lib/elements/bold.js.map +0 -1
  28. package/src/lib/elements/code.d.ts +0 -4
  29. package/src/lib/elements/code.js +0 -13
  30. package/src/lib/elements/code.js.map +0 -1
  31. package/src/lib/elements/contentValue.d.ts +0 -4
  32. package/src/lib/elements/contentValue.js +0 -14
  33. package/src/lib/elements/contentValue.js.map +0 -1
  34. package/src/lib/elements/heading.d.ts +0 -4
  35. package/src/lib/elements/heading.js +0 -13
  36. package/src/lib/elements/heading.js.map +0 -1
  37. package/src/lib/elements/index.js +0 -29
  38. package/src/lib/elements/index.js.map +0 -1
  39. package/src/lib/elements/italic.d.ts +0 -4
  40. package/src/lib/elements/italic.js +0 -13
  41. package/src/lib/elements/italic.js.map +0 -1
  42. package/src/lib/elements/link.d.ts +0 -4
  43. package/src/lib/elements/link.js +0 -19
  44. package/src/lib/elements/link.js.map +0 -1
  45. package/src/lib/elements/lists.d.ts +0 -5
  46. package/src/lib/elements/lists.js +0 -22
  47. package/src/lib/elements/lists.js.map +0 -1
  48. package/src/lib/elements/paragraph.d.ts +0 -4
  49. package/src/lib/elements/paragraph.js +0 -13
  50. package/src/lib/elements/paragraph.js.map +0 -1
  51. package/src/lib/elements/strikehrough.d.ts +0 -4
  52. package/src/lib/elements/strikehrough.js +0 -13
  53. package/src/lib/elements/strikehrough.js.map +0 -1
  54. package/src/lib/elements/text.d.ts +0 -3
  55. package/src/lib/elements/text.js +0 -10
  56. package/src/lib/elements/text.js.map +0 -1
  57. package/src/lib/elements/underline.d.ts +0 -4
  58. package/src/lib/elements/underline.js +0 -13
  59. package/src/lib/elements/underline.js.map +0 -1
  60. package/src/lib/index.d.ts +0 -5
  61. package/src/lib/index.js +0 -57
  62. package/src/lib/index.js.map +0 -1
  63. package/src/lib/transformers/index.d.ts +0 -5
  64. package/src/lib/transformers/index.js +0 -22
  65. package/src/lib/transformers/index.js.map +0 -1
  66. package/src/lib/utils/index.d.ts +0 -3
  67. package/src/lib/utils/index.js +0 -18
  68. package/src/lib/utils/index.js.map +0 -1
@@ -0,0 +1,78 @@
1
+ import { Root as CastRoot, Content } from "@platecms/delta-cast";
2
+ import { Element as HastElement, Root as HastRoot } from "hast";
3
+ import { zwitch } from "zwitch";
4
+ import {
5
+ blockquote,
6
+ bold,
7
+ code,
8
+ contentValue,
9
+ heading,
10
+ italic,
11
+ link,
12
+ list,
13
+ listItem,
14
+ paragraph,
15
+ strikehrough,
16
+ text,
17
+ underline,
18
+ } from "./elements";
19
+ import { NodeTransformers, flattenTextOnlyContentValueNode } from "./transformers";
20
+
21
+ function defaultHandler(node: Content): HastElement {
22
+ return {
23
+ type: "element",
24
+ tagName: "span",
25
+ properties: {},
26
+ children: [
27
+ {
28
+ type: "text",
29
+ value: `Unknown node type (${node.type})`,
30
+ },
31
+ ],
32
+ };
33
+ }
34
+
35
+ const one = zwitch("type", {
36
+ handlers: {
37
+ heading,
38
+ list,
39
+ listItem,
40
+ blockquote,
41
+ code,
42
+ paragraph,
43
+ contentValue,
44
+ bold,
45
+ italic,
46
+ underline,
47
+ strikehrough,
48
+ text,
49
+ externalLink: link,
50
+ internalLink: link,
51
+ },
52
+ // Every value supplied to the one function is at least a Content node with a type property
53
+ unknown: (value: unknown, _s: object = {}, _t: object = {}) => defaultHandler(value as Content),
54
+ });
55
+
56
+ export function all(nodes: Content[], state: object = {}, transform: NodeTransformers = {}): HastElement[] {
57
+ let index = -1;
58
+ const results = [];
59
+
60
+ while (++index < nodes.length) {
61
+ const result = one(nodes[index], state, transform);
62
+ results.push(result);
63
+ }
64
+
65
+ return results;
66
+ }
67
+
68
+ export function toHast(
69
+ value: CastRoot,
70
+ transform: NodeTransformers = {
71
+ contentValue: flattenTextOnlyContentValueNode,
72
+ },
73
+ ): HastRoot {
74
+ return {
75
+ type: "root",
76
+ children: all(value.children, {}, transform),
77
+ };
78
+ }
@@ -0,0 +1,25 @@
1
+ import { InterpolatedContentValue } from "@platecms/delta-cast";
2
+ import { hasChildren, isBlockContent } from "../utils";
3
+
4
+ export interface NodeTransformers {
5
+ contentValue?: (node: InterpolatedContentValue) => InterpolatedContentValue;
6
+ }
7
+
8
+ export function flattenTextOnlyContentValueNode(node: InterpolatedContentValue): InterpolatedContentValue {
9
+ if (node.value && node.value.children.length === 1 && hasChildren(node.value.children[0])) {
10
+ return {
11
+ prn: node.prn,
12
+ type: "contentValue",
13
+ value: {
14
+ ...node.value,
15
+ children: isBlockContent(node.value.children[0]) ? node.value.children[0].children : [],
16
+ },
17
+ };
18
+ }
19
+
20
+ return {
21
+ prn: node.prn,
22
+ type: "contentValue",
23
+ value: node.value,
24
+ };
25
+ }
@@ -0,0 +1,19 @@
1
+ import { BlockContent, Content } from "@platecms/delta-cast";
2
+
3
+ export function hasChildren(node?: Content): boolean {
4
+ if (!node) {
5
+ return false;
6
+ }
7
+
8
+ return "children" in node;
9
+ }
10
+
11
+ export function isBlockContent(node?: Content): node is BlockContent {
12
+ return (
13
+ node?.type === "paragraph" ||
14
+ node?.type === "heading" ||
15
+ node?.type === "list" ||
16
+ node?.type === "blockquote" ||
17
+ node?.type === "code"
18
+ );
19
+ }
package/src/index.js DELETED
@@ -1,9 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.toHast = void 0;
4
- const tslib_1 = require("tslib");
5
- var lib_1 = require("./lib");
6
- Object.defineProperty(exports, "toHast", { enumerable: true, get: function () { return lib_1.toHast; } });
7
- tslib_1.__exportStar(require("./lib/utils"), exports);
8
- tslib_1.__exportStar(require("./lib/transformers"), exports);
9
- //# sourceMappingURL=index.js.map
package/src/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/cast-util-to-hast/src/index.ts"],"names":[],"mappings":";;;;AAAA,6BAA+B;AAAtB,6FAAA,MAAM,OAAA;AAEf,sDAA4B;AAC5B,6DAAmC"}
@@ -1,4 +0,0 @@
1
- import { Blockquote } from "@platecms/delta-cast";
2
- import { Element as HastElement } from "hast";
3
- import { NodeTransformers } from "../transformers";
4
- export declare function blockquote(node: Blockquote, state?: object, transform?: NodeTransformers): HastElement;
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.blockquote = blockquote;
4
- const __1 = require("..");
5
- function blockquote(node, state = {}, transform = {}) {
6
- return {
7
- type: "element",
8
- tagName: "blockquote",
9
- properties: {},
10
- children: (0, __1.all)(node.children, state, transform),
11
- };
12
- }
13
- //# sourceMappingURL=blockquote.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"blockquote.js","sourceRoot":"","sources":["../../../../../../../packages/cast-util-to-hast/src/lib/elements/blockquote.ts"],"names":[],"mappings":";;AAKA,gCAOC;AAVD,0BAAyB;AAGzB,SAAgB,UAAU,CAAC,IAAgB,EAAE,QAAgB,EAAE,EAAE,YAA8B,EAAE;IAC/F,OAAO;QACL,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,YAAY;QACrB,UAAU,EAAE,EAAE;QACd,QAAQ,EAAE,IAAA,OAAG,EAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC;KAC/C,CAAC;AACJ,CAAC"}
@@ -1,4 +0,0 @@
1
- import { Bold } from "@platecms/delta-cast";
2
- import { Element as HastElement } from "hast";
3
- import { NodeTransformers } from "../transformers";
4
- export declare function bold(node: Bold, state?: object, transform?: NodeTransformers): HastElement;
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.bold = bold;
4
- const __1 = require("..");
5
- function bold(node, state = {}, transform = {}) {
6
- return {
7
- type: "element",
8
- tagName: "strong",
9
- properties: {},
10
- children: (0, __1.all)(node.children, state, transform),
11
- };
12
- }
13
- //# sourceMappingURL=bold.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bold.js","sourceRoot":"","sources":["../../../../../../../packages/cast-util-to-hast/src/lib/elements/bold.ts"],"names":[],"mappings":";;AAKA,oBAOC;AAVD,0BAAyB;AAGzB,SAAgB,IAAI,CAAC,IAAU,EAAE,QAAgB,EAAE,EAAE,YAA8B,EAAE;IACnF,OAAO;QACL,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,QAAQ;QACjB,UAAU,EAAE,EAAE;QACd,QAAQ,EAAE,IAAA,OAAG,EAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC;KAC/C,CAAC;AACJ,CAAC"}
@@ -1,4 +0,0 @@
1
- import { NodeTransformers } from "../transformers";
2
- import { Code } from "@platecms/delta-cast";
3
- import { Element as HastElement } from "hast";
4
- export declare function code(node: Code, state?: object, transform?: NodeTransformers): HastElement;
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.code = code;
4
- const __1 = require("..");
5
- function code(node, state = {}, transform = {}) {
6
- return {
7
- type: "element",
8
- tagName: "code",
9
- properties: { lang: node.lang },
10
- children: (0, __1.all)(node.children, state, transform),
11
- };
12
- }
13
- //# sourceMappingURL=code.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"code.js","sourceRoot":"","sources":["../../../../../../../packages/cast-util-to-hast/src/lib/elements/code.ts"],"names":[],"mappings":";;AAKA,oBAOC;AAZD,0BAAyB;AAKzB,SAAgB,IAAI,CAAC,IAAU,EAAE,QAAgB,EAAE,EAAE,YAA8B,EAAE;IACnF,OAAO;QACL,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,MAAM;QACf,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;QAC/B,QAAQ,EAAE,IAAA,OAAG,EAAE,IAAoC,CAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC;KAChF,CAAC;AACJ,CAAC"}
@@ -1,4 +0,0 @@
1
- import { InterpolatedContentValue } from "@platecms/delta-cast";
2
- import { Element as HastElement } from "hast";
3
- import { NodeTransformers } from "../transformers";
4
- export declare function contentValue(node: InterpolatedContentValue, state: object, transform: NodeTransformers): HastElement;
@@ -1,14 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.contentValue = contentValue;
4
- const __1 = require("..");
5
- function contentValue(node, state, transform) {
6
- const transformedNode = transform.contentValue ? transform.contentValue(node) : node;
7
- return {
8
- type: "element",
9
- tagName: "span",
10
- properties: {},
11
- children: transformedNode.value ? (0, __1.all)(transformedNode.value.children, state, transform) : [],
12
- };
13
- }
14
- //# sourceMappingURL=contentValue.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"contentValue.js","sourceRoot":"","sources":["../../../../../../../packages/cast-util-to-hast/src/lib/elements/contentValue.ts"],"names":[],"mappings":";;AAKA,oCASC;AAZD,0BAAyB;AAGzB,SAAgB,YAAY,CAAC,IAA8B,EAAE,KAAa,EAAE,SAA2B;IACrG,MAAM,eAAe,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAErF,OAAO;QACL,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,MAAM;QACf,UAAU,EAAE,EAAE;QACd,QAAQ,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,IAAA,OAAG,EAAC,eAAe,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;KAC7F,CAAC;AACJ,CAAC"}
@@ -1,4 +0,0 @@
1
- import { Heading } from "@platecms/delta-cast";
2
- import { NodeTransformers } from "../transformers";
3
- import { Element as HastElement } from "hast";
4
- export declare function heading(node: Heading, state?: object, transform?: NodeTransformers): HastElement;
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.heading = heading;
4
- const __1 = require("..");
5
- function heading(node, state = {}, transform = {}) {
6
- return {
7
- type: "element",
8
- tagName: `h${node.level}`,
9
- properties: {},
10
- children: (0, __1.all)(node.children, state, transform),
11
- };
12
- }
13
- //# sourceMappingURL=heading.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"heading.js","sourceRoot":"","sources":["../../../../../../../packages/cast-util-to-hast/src/lib/elements/heading.ts"],"names":[],"mappings":";;AAKA,0BAOC;AAXD,0BAAyB;AAIzB,SAAgB,OAAO,CAAC,IAAa,EAAE,QAAgB,EAAE,EAAE,YAA8B,EAAE;IACzF,OAAO;QACL,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE;QACzB,UAAU,EAAE,EAAE;QACd,QAAQ,EAAE,IAAA,OAAG,EAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC;KAC/C,CAAC;AACJ,CAAC"}
@@ -1,29 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.blockquote = exports.text = exports.strikehrough = exports.underline = exports.italic = exports.bold = exports.paragraph = exports.contentValue = exports.code = exports.listItem = exports.list = exports.link = exports.heading = void 0;
4
- const heading_1 = require("./heading");
5
- Object.defineProperty(exports, "heading", { enumerable: true, get: function () { return heading_1.heading; } });
6
- const lists_1 = require("./lists");
7
- Object.defineProperty(exports, "list", { enumerable: true, get: function () { return lists_1.list; } });
8
- Object.defineProperty(exports, "listItem", { enumerable: true, get: function () { return lists_1.listItem; } });
9
- const code_1 = require("./code");
10
- Object.defineProperty(exports, "code", { enumerable: true, get: function () { return code_1.code; } });
11
- const contentValue_1 = require("./contentValue");
12
- Object.defineProperty(exports, "contentValue", { enumerable: true, get: function () { return contentValue_1.contentValue; } });
13
- const paragraph_1 = require("./paragraph");
14
- Object.defineProperty(exports, "paragraph", { enumerable: true, get: function () { return paragraph_1.paragraph; } });
15
- const bold_1 = require("./bold");
16
- Object.defineProperty(exports, "bold", { enumerable: true, get: function () { return bold_1.bold; } });
17
- const italic_1 = require("./italic");
18
- Object.defineProperty(exports, "italic", { enumerable: true, get: function () { return italic_1.italic; } });
19
- const underline_1 = require("./underline");
20
- Object.defineProperty(exports, "underline", { enumerable: true, get: function () { return underline_1.underline; } });
21
- const strikehrough_1 = require("./strikehrough");
22
- Object.defineProperty(exports, "strikehrough", { enumerable: true, get: function () { return strikehrough_1.strikehrough; } });
23
- const text_1 = require("./text");
24
- Object.defineProperty(exports, "text", { enumerable: true, get: function () { return text_1.text; } });
25
- const blockquote_1 = require("./blockquote");
26
- Object.defineProperty(exports, "blockquote", { enumerable: true, get: function () { return blockquote_1.blockquote; } });
27
- const link_1 = require("./link");
28
- Object.defineProperty(exports, "link", { enumerable: true, get: function () { return link_1.link; } });
29
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/cast-util-to-hast/src/lib/elements/index.ts"],"names":[],"mappings":";;;AAAA,uCAAoC;AAclC,wFAdO,iBAAO,OAcP;AAbT,mCAAyC;AAevC,qFAfO,YAAI,OAeP;AACJ,yFAhBa,gBAAQ,OAgBb;AAfV,iCAA8B;AAgB5B,qFAhBO,WAAI,OAgBP;AAfN,iDAA8C;AAgB5C,6FAhBO,2BAAY,OAgBP;AAfd,2CAAwC;AAgBtC,0FAhBO,qBAAS,OAgBP;AAfX,iCAA8B;AAgB5B,qFAhBO,WAAI,OAgBP;AAfN,qCAAkC;AAgBhC,uFAhBO,eAAM,OAgBP;AAfR,2CAAwC;AAgBtC,0FAhBO,qBAAS,OAgBP;AAfX,iDAA8C;AAgB5C,6FAhBO,2BAAY,OAgBP;AAfd,iCAA8B;AAgB5B,qFAhBO,WAAI,OAgBP;AAfN,6CAA0C;AAgBxC,2FAhBO,uBAAU,OAgBP;AAfZ,iCAA8B;AAI5B,qFAJO,WAAI,OAIP"}
@@ -1,4 +0,0 @@
1
- import { Italic } from "@platecms/delta-cast";
2
- import { Element as HastElement } from "hast";
3
- import { NodeTransformers } from "../transformers";
4
- export declare function italic(node: Italic, state?: object, transform?: NodeTransformers): HastElement;
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.italic = italic;
4
- const __1 = require("..");
5
- function italic(node, state = {}, transform = {}) {
6
- return {
7
- type: "element",
8
- tagName: "em",
9
- properties: {},
10
- children: (0, __1.all)(node.children, state, transform),
11
- };
12
- }
13
- //# sourceMappingURL=italic.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"italic.js","sourceRoot":"","sources":["../../../../../../../packages/cast-util-to-hast/src/lib/elements/italic.ts"],"names":[],"mappings":";;AAKA,wBAOC;AAVD,0BAAyB;AAGzB,SAAgB,MAAM,CAAC,IAAY,EAAE,QAAgB,EAAE,EAAE,YAA8B,EAAE;IACvF,OAAO;QACL,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,IAAI;QACb,UAAU,EAAE,EAAE;QACd,QAAQ,EAAE,IAAA,OAAG,EAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC;KAC/C,CAAC;AACJ,CAAC"}
@@ -1,4 +0,0 @@
1
- import { ExternalLink, InternalLink } from "@platecms/delta-cast";
2
- import { Element as HastElement } from "hast";
3
- import { NodeTransformers } from "../transformers";
4
- export declare function link(node: ExternalLink | InternalLink, state: object, transform: NodeTransformers): HastElement;
@@ -1,19 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.link = link;
4
- const __1 = require("..");
5
- function link(node, state, transform) {
6
- if (node.url === undefined) {
7
- throw new Error("Cannot construct a link with an undefined URL.");
8
- }
9
- return {
10
- type: "element",
11
- tagName: "a",
12
- properties: {
13
- href: node.url,
14
- target: node.target,
15
- },
16
- children: (0, __1.all)(node.children, state, transform),
17
- };
18
- }
19
- //# sourceMappingURL=link.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"link.js","sourceRoot":"","sources":["../../../../../../../packages/cast-util-to-hast/src/lib/elements/link.ts"],"names":[],"mappings":";;AAKA,oBAcC;AAjBD,0BAAyB;AAGzB,SAAgB,IAAI,CAAC,IAAiC,EAAE,KAAa,EAAE,SAA2B;IAChG,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACpE,CAAC;IAED,OAAO;QACL,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,GAAG;QACZ,UAAU,EAAE;YACV,IAAI,EAAE,IAAI,CAAC,GAAG;YACd,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB;QACD,QAAQ,EAAE,IAAA,OAAG,EAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC;KAC/C,CAAC;AACJ,CAAC"}
@@ -1,5 +0,0 @@
1
- import { List, ListItem } from "@platecms/delta-cast";
2
- import { Element as HastElement } from "hast";
3
- import { NodeTransformers } from "../transformers";
4
- export declare function list(node: List, state?: object, transform?: NodeTransformers): HastElement;
5
- export declare function listItem(node: ListItem, state?: object, transform?: NodeTransformers): HastElement;
@@ -1,22 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.list = list;
4
- exports.listItem = listItem;
5
- const __1 = require("..");
6
- function list(node, state = {}, transform = {}) {
7
- return {
8
- type: "element",
9
- tagName: node.ordered ? "ol" : "ul",
10
- properties: {},
11
- children: (0, __1.all)(node.children, state, transform),
12
- };
13
- }
14
- function listItem(node, state = {}, transform = {}) {
15
- return {
16
- type: "element",
17
- tagName: "li",
18
- properties: {},
19
- children: (0, __1.all)(node.children, state, transform),
20
- };
21
- }
22
- //# sourceMappingURL=lists.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"lists.js","sourceRoot":"","sources":["../../../../../../../packages/cast-util-to-hast/src/lib/elements/lists.ts"],"names":[],"mappings":";;AAKA,oBAOC;AAED,4BAOC;AAnBD,0BAAyB;AAGzB,SAAgB,IAAI,CAAC,IAAU,EAAE,QAAgB,EAAE,EAAE,YAA8B,EAAE;IACnF,OAAO;QACL,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;QACnC,UAAU,EAAE,EAAE;QACd,QAAQ,EAAE,IAAA,OAAG,EAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC;KAC/C,CAAC;AACJ,CAAC;AAED,SAAgB,QAAQ,CAAC,IAAc,EAAE,QAAgB,EAAE,EAAE,YAA8B,EAAE;IAC3F,OAAO;QACL,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,IAAI;QACb,UAAU,EAAE,EAAE;QACd,QAAQ,EAAE,IAAA,OAAG,EAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC;KAC/C,CAAC;AACJ,CAAC"}
@@ -1,4 +0,0 @@
1
- import { Paragraph } from "@platecms/delta-cast";
2
- import { Element as HastElement } from "hast";
3
- import { NodeTransformers } from "../transformers";
4
- export declare function paragraph(node: Paragraph, state?: object, transform?: NodeTransformers): HastElement;
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.paragraph = paragraph;
4
- const __1 = require("..");
5
- function paragraph(node, state = {}, transform = {}) {
6
- return {
7
- type: "element",
8
- tagName: "p",
9
- properties: {},
10
- children: (0, __1.all)(node.children, state, transform),
11
- };
12
- }
13
- //# sourceMappingURL=paragraph.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"paragraph.js","sourceRoot":"","sources":["../../../../../../../packages/cast-util-to-hast/src/lib/elements/paragraph.ts"],"names":[],"mappings":";;AAKA,8BAOC;AAVD,0BAAyB;AAGzB,SAAgB,SAAS,CAAC,IAAe,EAAE,QAAgB,EAAE,EAAE,YAA8B,EAAE;IAC7F,OAAO;QACL,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,GAAG;QACZ,UAAU,EAAE,EAAE;QACd,QAAQ,EAAE,IAAA,OAAG,EAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC;KAC/C,CAAC;AACJ,CAAC"}
@@ -1,4 +0,0 @@
1
- import { Strikethrough } from "@platecms/delta-cast";
2
- import { Element as HastElement } from "hast";
3
- import { NodeTransformers } from "../transformers";
4
- export declare function strikehrough(node: Strikethrough, state?: object, transform?: NodeTransformers): HastElement;
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.strikehrough = strikehrough;
4
- const __1 = require("..");
5
- function strikehrough(node, state = {}, transform = {}) {
6
- return {
7
- type: "element",
8
- tagName: "s",
9
- properties: {},
10
- children: (0, __1.all)(node.children, state, transform),
11
- };
12
- }
13
- //# sourceMappingURL=strikehrough.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"strikehrough.js","sourceRoot":"","sources":["../../../../../../../packages/cast-util-to-hast/src/lib/elements/strikehrough.ts"],"names":[],"mappings":";;AAKA,oCAOC;AAVD,0BAAyB;AAGzB,SAAgB,YAAY,CAAC,IAAmB,EAAE,QAAgB,EAAE,EAAE,YAA8B,EAAE;IACpG,OAAO;QACL,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,GAAG;QACZ,UAAU,EAAE,EAAE;QACd,QAAQ,EAAE,IAAA,OAAG,EAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC;KAC/C,CAAC;AACJ,CAAC"}
@@ -1,3 +0,0 @@
1
- import { Text } from "@platecms/delta-cast";
2
- import { Text as HastText } from "hast";
3
- export declare function text(node: Text): HastText;
@@ -1,10 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.text = text;
4
- function text(node) {
5
- return {
6
- type: "text",
7
- value: node.value,
8
- };
9
- }
10
- //# sourceMappingURL=text.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"text.js","sourceRoot":"","sources":["../../../../../../../packages/cast-util-to-hast/src/lib/elements/text.ts"],"names":[],"mappings":";;AAGA,oBAKC;AALD,SAAgB,IAAI,CAAC,IAAU;IAC7B,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,IAAI,CAAC,KAAK;KAClB,CAAC;AACJ,CAAC"}
@@ -1,4 +0,0 @@
1
- import { Underline } from "@platecms/delta-cast";
2
- import { Element as HastElement } from "hast";
3
- import { NodeTransformers } from "../transformers";
4
- export declare function underline(node: Underline, state?: object, transform?: NodeTransformers): HastElement;
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.underline = underline;
4
- const __1 = require("..");
5
- function underline(node, state = {}, transform = {}) {
6
- return {
7
- type: "element",
8
- tagName: "u",
9
- properties: {},
10
- children: (0, __1.all)(node.children, state, transform),
11
- };
12
- }
13
- //# sourceMappingURL=underline.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"underline.js","sourceRoot":"","sources":["../../../../../../../packages/cast-util-to-hast/src/lib/elements/underline.ts"],"names":[],"mappings":";;AAKA,8BAOC;AAVD,0BAAyB;AAGzB,SAAgB,SAAS,CAAC,IAAe,EAAE,QAAgB,EAAE,EAAE,YAA8B,EAAE;IAC7F,OAAO;QACL,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,GAAG;QACZ,UAAU,EAAE,EAAE;QACd,QAAQ,EAAE,IAAA,OAAG,EAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC;KAC/C,CAAC;AACJ,CAAC"}
@@ -1,5 +0,0 @@
1
- import { Root as CastRoot, Content } from "@platecms/delta-cast";
2
- import { Element as HastElement, Root as HastRoot } from "hast";
3
- import { NodeTransformers } from "./transformers";
4
- export declare function all(nodes: Content[], state?: object, transform?: NodeTransformers): HastElement[];
5
- export declare function toHast(value: CastRoot, transform?: NodeTransformers): HastRoot;
package/src/lib/index.js DELETED
@@ -1,57 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.all = all;
4
- exports.toHast = toHast;
5
- const zwitch_1 = require("zwitch");
6
- const elements_1 = require("./elements");
7
- const transformers_1 = require("./transformers");
8
- function defaultHandler(node) {
9
- return {
10
- type: "element",
11
- tagName: "span",
12
- properties: {},
13
- children: [
14
- {
15
- type: "text",
16
- value: `Unknown node type (${node.type})`,
17
- },
18
- ],
19
- };
20
- }
21
- const one = (0, zwitch_1.zwitch)("type", {
22
- handlers: {
23
- heading: elements_1.heading,
24
- list: elements_1.list,
25
- listItem: elements_1.listItem,
26
- blockquote: elements_1.blockquote,
27
- code: elements_1.code,
28
- paragraph: elements_1.paragraph,
29
- contentValue: elements_1.contentValue,
30
- bold: elements_1.bold,
31
- italic: elements_1.italic,
32
- underline: elements_1.underline,
33
- strikehrough: elements_1.strikehrough,
34
- text: elements_1.text,
35
- externalLink: elements_1.link,
36
- internalLink: elements_1.link,
37
- },
38
- unknown: (value, _s = {}, _t = {}) => defaultHandler(value),
39
- });
40
- function all(nodes, state = {}, transform = {}) {
41
- let index = -1;
42
- const results = [];
43
- while (++index < nodes.length) {
44
- const result = one(nodes[index], state, transform);
45
- results.push(result);
46
- }
47
- return results;
48
- }
49
- function toHast(value, transform = {
50
- contentValue: transformers_1.flattenTextOnlyContentValueNode,
51
- }) {
52
- return {
53
- type: "root",
54
- children: all(value.children, {}, transform),
55
- };
56
- }
57
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/cast-util-to-hast/src/lib/index.ts"],"names":[],"mappings":";;AAuDA,kBAUC;AAED,wBAUC;AA3ED,mCAAgC;AAChC,yCAcoB;AACpB,iDAAmF;AAEnF,SAAS,cAAc,CAAC,IAAa;IACnC,OAAO;QACL,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,MAAM;QACf,UAAU,EAAE,EAAE;QACd,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,sBAAsB,IAAI,CAAC,IAAI,GAAG;aAC1C;SACF;KACF,CAAC;AACJ,CAAC;AAED,MAAM,GAAG,GAAG,IAAA,eAAM,EAAC,MAAM,EAAE;IACzB,QAAQ,EAAE;QACR,OAAO,EAAP,kBAAO;QACP,IAAI,EAAJ,eAAI;QACJ,QAAQ,EAAR,mBAAQ;QACR,UAAU,EAAV,qBAAU;QACV,IAAI,EAAJ,eAAI;QACJ,SAAS,EAAT,oBAAS;QACT,YAAY,EAAZ,uBAAY;QACZ,IAAI,EAAJ,eAAI;QACJ,MAAM,EAAN,iBAAM;QACN,SAAS,EAAT,oBAAS;QACT,YAAY,EAAZ,uBAAY;QACZ,IAAI,EAAJ,eAAI;QACJ,YAAY,EAAE,eAAI;QAClB,YAAY,EAAE,eAAI;KACnB;IAED,OAAO,EAAE,CAAC,KAAc,EAAE,KAAa,EAAE,EAAE,KAAa,EAAE,EAAE,EAAE,CAAC,cAAc,CAAC,KAAgB,CAAC;CAChG,CAAC,CAAC;AAEH,SAAgB,GAAG,CAAC,KAAgB,EAAE,QAAgB,EAAE,EAAE,YAA8B,EAAE;IACxF,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC;IACf,MAAM,OAAO,GAAG,EAAE,CAAC;IAEnB,OAAO,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;QACnD,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAgB,MAAM,CACpB,KAAe,EACf,YAA8B;IAC5B,YAAY,EAAE,8CAA+B;CAC9C;IAED,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,EAAE,SAAS,CAAC;KAC7C,CAAC;AACJ,CAAC"}
@@ -1,5 +0,0 @@
1
- import { InterpolatedContentValue } from "@platecms/delta-cast";
2
- export interface NodeTransformers {
3
- contentValue?: (node: InterpolatedContentValue) => InterpolatedContentValue;
4
- }
5
- export declare function flattenTextOnlyContentValueNode(node: InterpolatedContentValue): InterpolatedContentValue;
@@ -1,22 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.flattenTextOnlyContentValueNode = flattenTextOnlyContentValueNode;
4
- const utils_1 = require("../utils");
5
- function flattenTextOnlyContentValueNode(node) {
6
- if (node.value && node.value.children.length === 1 && (0, utils_1.hasChildren)(node.value.children[0])) {
7
- return {
8
- prn: node.prn,
9
- type: "contentValue",
10
- value: {
11
- ...node.value,
12
- children: (0, utils_1.isBlockContent)(node.value.children[0]) ? node.value.children[0].children : [],
13
- },
14
- };
15
- }
16
- return {
17
- prn: node.prn,
18
- type: "contentValue",
19
- value: node.value,
20
- };
21
- }
22
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/cast-util-to-hast/src/lib/transformers/index.ts"],"names":[],"mappings":";;AAOA,0EAiBC;AAvBD,oCAAuD;AAMvD,SAAgB,+BAA+B,CAAC,IAA8B;IAC5E,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,IAAA,mBAAW,EAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1F,OAAO;YACL,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,IAAI,EAAE,cAAc;YACpB,KAAK,EAAE;gBACL,GAAG,IAAI,CAAC,KAAK;gBACb,QAAQ,EAAE,IAAA,sBAAc,EAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;aACxF;SACF,CAAC;IACJ,CAAC;IAED,OAAO;QACL,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,IAAI,EAAE,cAAc;QACpB,KAAK,EAAE,IAAI,CAAC,KAAK;KAClB,CAAC;AACJ,CAAC"}
@@ -1,3 +0,0 @@
1
- import { BlockContent, Content } from "@platecms/delta-cast";
2
- export declare function hasChildren(node?: Content): boolean;
3
- export declare function isBlockContent(node?: Content): node is BlockContent;
@@ -1,18 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.hasChildren = hasChildren;
4
- exports.isBlockContent = isBlockContent;
5
- function hasChildren(node) {
6
- if (!node) {
7
- return false;
8
- }
9
- return "children" in node;
10
- }
11
- function isBlockContent(node) {
12
- return (node?.type === "paragraph" ||
13
- node?.type === "heading" ||
14
- node?.type === "list" ||
15
- node?.type === "blockquote" ||
16
- node?.type === "code");
17
- }
18
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/cast-util-to-hast/src/lib/utils/index.ts"],"names":[],"mappings":";;AAEA,kCAMC;AAED,wCAQC;AAhBD,SAAgB,WAAW,CAAC,IAAc;IACxC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,UAAU,IAAI,IAAI,CAAC;AAC5B,CAAC;AAED,SAAgB,cAAc,CAAC,IAAc;IAC3C,OAAO,CACL,IAAI,EAAE,IAAI,KAAK,WAAW;QAC1B,IAAI,EAAE,IAAI,KAAK,SAAS;QACxB,IAAI,EAAE,IAAI,KAAK,MAAM;QACrB,IAAI,EAAE,IAAI,KAAK,YAAY;QAC3B,IAAI,EAAE,IAAI,KAAK,MAAM,CACtB,CAAC;AACJ,CAAC"}