1 | "use strict";
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 | exports.default = buildExpressionTemplate;
|
7 |
|
8 | var _template = _interopRequireDefault(require("@babel/template"));
|
9 |
|
10 | var _invariant = _interopRequireDefault(require("../invariant.js"));
|
11 |
|
12 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
13 |
|
14 |
|
15 |
|
16 |
|
17 |
|
18 |
|
19 |
|
20 |
|
21 |
|
22 | const placeholders = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".split("");
|
23 | const placeholderWhitelist = new Set(["global", ...placeholders]);
|
24 |
|
25 | function buildExpressionTemplate(code) {
|
26 | let template;
|
27 | return preludeGenerator => obj => {
|
28 | if (template === undefined) template = (0, _template.default)(code, {
|
29 | placeholderPattern: false,
|
30 | placeholderWhitelist
|
31 | });
|
32 | if (preludeGenerator !== undefined && code.includes("global")) obj = Object.assign({
|
33 | global: preludeGenerator.memoizeReference("global")
|
34 | }, obj);
|
35 | let result = template(obj).expression;
|
36 | (0, _invariant.default)(result !== undefined, "Code does not represent an expression: " + code);
|
37 | return result;
|
38 | };
|
39 | }
|
40 |
|
\ | No newline at end of file |