/ lib / deembed.js
deembed.js
 1  import {
 2    EmbeddedNode,
 3    EmbeddedObject,
 4    EmbeddedTag,
 5    EmbeddedMatcher,
 6    EmbeddedRegex,
 7  } from '@bablr/agast-helpers/symbols';
 8  
 9  export const getEmbeddedObject = (expr) => {
10    if (!expr) return expr;
11    if (expr.type !== EmbeddedObject) throw new Error();
12    return expr.value;
13  };
14  
15  export const getEmbeddedNode = (expr) => {
16    if (!expr) return expr;
17    if (expr.type !== EmbeddedNode) throw new Error();
18    return expr.value;
19  };
20  
21  export const getEmbeddedMatcher = (expr) => {
22    if (!expr) return expr;
23    if (expr.type !== EmbeddedMatcher) throw new Error();
24    return expr.value;
25  };
26  
27  export const getEmbeddedRegex = (expr) => {
28    if (!expr) return expr;
29    if (expr.type !== EmbeddedRegex) throw new Error();
30    return expr.value;
31  };
32  
33  export const getEmbeddedTag = (expr) => {
34    if (expr.type !== EmbeddedTag) throw new Error();
35    const tag = expr.value;
36    return tag;
37  };