@voiceflow/slate-serializer 1.3.0 → 1.4.1

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.
@@ -26,12 +26,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.serializeToText = void 0;
27
27
  const Slate = __importStar(require("slate"));
28
28
  const guards_1 = require("../guards.cjs");
29
- const concatenateText = (content = []) => content.reduce((acc, node) => acc + (Slate.Text.isText(node) ? node.text : concatenateText(node.children)), '');
30
- const encodeVariables = (value) => value.map((node) => {
29
+ const nodeToString = (node, options) => {
31
30
  if (!Slate.Element.isElement(node))
32
- return node;
33
- return (0, guards_1.isVariableElement)(node) ? { text: `{${node.name}}` } : Object.assign(Object.assign({}, node), { children: encodeVariables(node.children) });
34
- });
35
- const serializeToText = (content, options = { encodeVariables: true }) => concatenateText(options.encodeVariables ? encodeVariables(content) : content);
31
+ return Slate.Node.string(node);
32
+ if ((0, guards_1.isLinkElement)(node) && options.markdownLinks)
33
+ return `[${(0, exports.serializeToText)(node.children)}](${node.url})`;
34
+ if ((0, guards_1.isVariableElement)(node) && options.encodeVariables)
35
+ return `{${node.name}}`;
36
+ return nodesToString(node.children, options).join('');
37
+ };
38
+ const nodesToString = (nodes, options) => nodes.map((node) => nodeToString(node, options));
39
+ const serializeToText = (content, { encodeVariables = true, markdownLinks = false } = {}) => nodesToString(content, { encodeVariables, markdownLinks }).join('\n').trim();
36
40
  exports.serializeToText = serializeToText;
37
41
  //# sourceMappingURL=text.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"text.cjs","sourceRoot":"","sources":["../../../src/serializers/text.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,6CAA+B;AAE/B,sCAA8C;AAE9C,MAAM,eAAe,GAAG,CAAC,UAAmC,EAAE,EAAU,EAAE,CACxE,OAAO,CAAC,MAAM,CAAS,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAE1H,MAAM,eAAe,GAAG,CAAC,KAA8B,EAA2B,EAAE,CAClF,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;IACjB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAEhD,OAAO,IAAA,0BAAiB,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,iCAAM,IAAI,KAAE,QAAQ,EAAE,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAE,CAAC;AACtH,CAAC,CAAC,CAAC;AAME,MAAM,eAAe,GAAG,CAAC,OAAgC,EAAE,UAAiC,EAAE,eAAe,EAAE,IAAI,EAAE,EAAU,EAAE,CACtI,eAAe,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;AADnE,QAAA,eAAe,mBACoD"}
1
+ {"version":3,"file":"text.cjs","sourceRoot":"","sources":["../../../src/serializers/text.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,6CAA+B;AAE/B,sCAA6D;AAE7D,MAAM,YAAY,GAAG,CAAC,IAAyB,EAAE,OAA8B,EAAU,EAAE;IACzF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAEnE,IAAI,IAAA,sBAAa,EAAC,IAAI,CAAC,IAAI,OAAO,CAAC,aAAa;QAAE,OAAO,IAAI,IAAA,uBAAe,EAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,GAAG,GAAG,CAAC;IAC5G,IAAI,IAAA,0BAAiB,EAAC,IAAI,CAAC,IAAI,OAAO,CAAC,eAAe;QAAE,OAAO,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC;IAEhF,OAAO,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACxD,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,KAA4B,EAAE,OAA8B,EAAY,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;AAO5I,MAAM,eAAe,GAAG,CAC7B,OAAgC,EAChC,EAAE,eAAe,GAAG,IAAI,EAAE,aAAa,GAAG,KAAK,KAA4B,EAAE,EACrE,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE,eAAe,EAAE,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;AAH7E,QAAA,eAAe,mBAG8D"}
@@ -1,5 +1,6 @@
1
1
  import { BaseText } from '@voiceflow/base-types';
2
2
  export interface TextSerializerOptions {
3
- encodeVariables: boolean;
3
+ markdownLinks?: boolean;
4
+ encodeVariables?: boolean;
4
5
  }
5
- export declare const serializeToText: (content: BaseText.SlateTextValue, options?: TextSerializerOptions) => string;
6
+ export declare const serializeToText: (content: BaseText.SlateTextValue, { encodeVariables, markdownLinks }?: TextSerializerOptions) => string;
@@ -1,5 +1,6 @@
1
1
  import { BaseText } from '@voiceflow/base-types';
2
2
  export interface TextSerializerOptions {
3
- encodeVariables: boolean;
3
+ markdownLinks?: boolean;
4
+ encodeVariables?: boolean;
4
5
  }
5
- export declare const serializeToText: (content: BaseText.SlateTextValue, options?: TextSerializerOptions) => string;
6
+ export declare const serializeToText: (content: BaseText.SlateTextValue, { encodeVariables, markdownLinks }?: TextSerializerOptions) => string;
@@ -1,10 +1,14 @@
1
1
  import * as Slate from 'slate';
2
- import { isVariableElement } from '../guards.mjs';
3
- const concatenateText = (content = []) => content.reduce((acc, node) => acc + (Slate.Text.isText(node) ? node.text : concatenateText(node.children)), '');
4
- const encodeVariables = (value) => value.map((node) => {
2
+ import { isLinkElement, isVariableElement } from '../guards.mjs';
3
+ const nodeToString = (node, options) => {
5
4
  if (!Slate.Element.isElement(node))
6
- return node;
7
- return isVariableElement(node) ? { text: `{${node.name}}` } : Object.assign(Object.assign({}, node), { children: encodeVariables(node.children) });
8
- });
9
- export const serializeToText = (content, options = { encodeVariables: true }) => concatenateText(options.encodeVariables ? encodeVariables(content) : content);
5
+ return Slate.Node.string(node);
6
+ if (isLinkElement(node) && options.markdownLinks)
7
+ return `[${serializeToText(node.children)}](${node.url})`;
8
+ if (isVariableElement(node) && options.encodeVariables)
9
+ return `{${node.name}}`;
10
+ return nodesToString(node.children, options).join('');
11
+ };
12
+ const nodesToString = (nodes, options) => nodes.map((node) => nodeToString(node, options));
13
+ export const serializeToText = (content, { encodeVariables = true, markdownLinks = false } = {}) => nodesToString(content, { encodeVariables, markdownLinks }).join('\n').trim();
10
14
  //# sourceMappingURL=text.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"text.mjs","sourceRoot":"","sources":["../../../src/serializers/text.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9C,MAAM,eAAe,GAAG,CAAC,UAAmC,EAAE,EAAU,EAAE,CACxE,OAAO,CAAC,MAAM,CAAS,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAE1H,MAAM,eAAe,GAAG,CAAC,KAA8B,EAA2B,EAAE,CAClF,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;IACjB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAEhD,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,iCAAM,IAAI,KAAE,QAAQ,EAAE,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAE,CAAC;AACtH,CAAC,CAAC,CAAC;AAML,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,OAAgC,EAAE,UAAiC,EAAE,eAAe,EAAE,IAAI,EAAE,EAAU,EAAE,CACtI,eAAe,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC"}
1
+ {"version":3,"file":"text.mjs","sourceRoot":"","sources":["../../../src/serializers/text.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE7D,MAAM,YAAY,GAAG,CAAC,IAAyB,EAAE,OAA8B,EAAU,EAAE;IACzF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAEnE,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,aAAa;QAAE,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,GAAG,GAAG,CAAC;IAC5G,IAAI,iBAAiB,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,eAAe;QAAE,OAAO,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC;IAEhF,OAAO,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACxD,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,KAA4B,EAAE,OAA8B,EAAY,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;AAOnJ,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,OAAgC,EAChC,EAAE,eAAe,GAAG,IAAI,EAAE,aAAa,GAAG,KAAK,KAA4B,EAAE,EACrE,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE,eAAe,EAAE,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@voiceflow/slate-serializer",
3
3
  "type": "module",
4
4
  "description": "Utilities for serializing slate data",
5
- "version": "1.3.0",
5
+ "version": "1.4.1",
6
6
  "author": "Ben Teichman",
7
7
  "bugs": {
8
8
  "url": "https://github.com/voiceflow/slate-serializer/issues"