@embroider/macros 1.21.0 → 1.21.2
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.
- package/README.md +24 -0
- package/package.json +2 -4
- package/src/babel/app-ember-satisfies.d.ts +0 -5
- package/src/babel/app-ember-satisfies.js +0 -38
- package/src/babel/app-ember-satisfies.js.map +0 -1
- package/src/babel/dependency-satisfies.d.ts +0 -5
- package/src/babel/dependency-satisfies.js +0 -38
- package/src/babel/dependency-satisfies.js.map +0 -1
- package/src/babel/each.d.ts +0 -14
- package/src/babel/each.js +0 -55
- package/src/babel/each.js.map +0 -1
- package/src/babel/error.d.ts +0 -3
- package/src/babel/error.js +0 -21
- package/src/babel/error.js.map +0 -1
- package/src/babel/evaluate-json.d.ts +0 -36
- package/src/babel/evaluate-json.js +0 -429
- package/src/babel/evaluate-json.js.map +0 -1
- package/src/babel/fail-build.d.ts +0 -5
- package/src/babel/fail-build.js +0 -36
- package/src/babel/fail-build.js.map +0 -1
- package/src/babel/get-config.d.ts +0 -9
- package/src/babel/get-config.js +0 -107
- package/src/babel/get-config.js.map +0 -1
- package/src/babel/import-sync-pattern.d.ts +0 -22
- package/src/babel/import-sync-pattern.js +0 -151
- package/src/babel/import-sync-pattern.js.map +0 -1
- package/src/babel/macro-condition.d.ts +0 -12
- package/src/babel/macro-condition.js +0 -76
- package/src/babel/macro-condition.js.map +0 -1
- package/src/babel/macros-babel-plugin.d.ts +0 -3
- package/src/babel/macros-babel-plugin.js +0 -312
- package/src/babel/macros-babel-plugin.js.map +0 -1
- package/src/babel/module-exists.d.ts +0 -5
- package/src/babel/module-exists.js +0 -30
- package/src/babel/module-exists.js.map +0 -1
- package/src/babel/state.d.ts +0 -34
- package/src/babel/state.js +0 -64
- package/src/babel/state.js.map +0 -1
- package/src/babel.d.ts +0 -47
- package/src/babel.js +0 -36
- package/src/babel.js.map +0 -1
- package/src/ember-addon-main.d.ts +0 -9
- package/src/ember-addon-main.js +0 -112
- package/src/ember-addon-main.js.map +0 -1
- package/src/glimmer/app-ember-satisfies.d.ts +0 -3
- package/src/glimmer/app-ember-satisfies.js +0 -32
- package/src/glimmer/app-ember-satisfies.js.map +0 -1
- package/src/glimmer/ast-transform.d.ts +0 -133
- package/src/glimmer/ast-transform.js +0 -240
- package/src/glimmer/ast-transform.js.map +0 -1
- package/src/glimmer/dependency-satisfies.d.ts +0 -3
- package/src/glimmer/dependency-satisfies.js +0 -37
- package/src/glimmer/dependency-satisfies.js.map +0 -1
- package/src/glimmer/evaluate.d.ts +0 -7
- package/src/glimmer/evaluate.js +0 -16
- package/src/glimmer/evaluate.js.map +0 -1
- package/src/glimmer/fail-build.d.ts +0 -2
- package/src/glimmer/fail-build.js +0 -22
- package/src/glimmer/fail-build.js.map +0 -1
- package/src/glimmer/get-config.d.ts +0 -5
- package/src/glimmer/get-config.js +0 -38
- package/src/glimmer/get-config.js.map +0 -1
- package/src/glimmer/literal.d.ts +0 -2
- package/src/glimmer/literal.js +0 -28
- package/src/glimmer/literal.js.map +0 -1
- package/src/glimmer/macro-condition.d.ts +0 -7
- package/src/glimmer/macro-condition.js +0 -119
- package/src/glimmer/macro-condition.js.map +0 -1
- package/src/glimmer/macro-maybe-attrs.d.ts +0 -2
- package/src/glimmer/macro-maybe-attrs.js +0 -31
- package/src/glimmer/macro-maybe-attrs.js.map +0 -1
- package/src/index.d.ts +0 -59
- package/src/index.js +0 -80
- package/src/index.js.map +0 -1
- package/src/macros-config.d.ts +0 -52
- package/src/macros-config.js +0 -394
- package/src/macros-config.js.map +0 -1
- package/src/node.d.ts +0 -5
- package/src/node.js +0 -21
- package/src/node.js.map +0 -1
|
@@ -1,240 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.buildPlugin = buildPlugin;
|
|
7
|
-
exports.makeFirstTransform = makeFirstTransform;
|
|
8
|
-
exports.makeSecondTransform = makeSecondTransform;
|
|
9
|
-
const literal_1 = __importDefault(require("./literal"));
|
|
10
|
-
const get_config_1 = __importDefault(require("./get-config"));
|
|
11
|
-
const app_ember_satisfies_1 = __importDefault(require("./app-ember-satisfies"));
|
|
12
|
-
const dependency_satisfies_1 = __importDefault(require("./dependency-satisfies"));
|
|
13
|
-
const macro_maybe_attrs_1 = require("./macro-maybe-attrs");
|
|
14
|
-
const macro_condition_1 = require("./macro-condition");
|
|
15
|
-
const fail_build_1 = require("./fail-build");
|
|
16
|
-
const shared_internals_1 = require("@embroider/shared-internals");
|
|
17
|
-
function buildPlugin(params) {
|
|
18
|
-
return {
|
|
19
|
-
name: params.name,
|
|
20
|
-
plugin: params.methodName === 'makeFirstTransform'
|
|
21
|
-
? makeFirstTransform(params.firstTransformParams)
|
|
22
|
-
: makeSecondTransform(),
|
|
23
|
-
baseDir: () => params.baseDir,
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
function makeFirstTransform(opts) {
|
|
27
|
-
function embroiderFirstMacrosTransform(env) {
|
|
28
|
-
if (!opts.packageRoot && !env.filename) {
|
|
29
|
-
throw new Error(`bug in @embroider/macros. Running without packageRoot but don't have filename.`);
|
|
30
|
-
}
|
|
31
|
-
let packageCache = shared_internals_1.RewrittenPackageCache.shared('embroider', opts.appRoot);
|
|
32
|
-
let scopeStack = [];
|
|
33
|
-
// packageRoot is set when we run inside classic ember-cli. Otherwise we're in
|
|
34
|
-
// Embroider, where we can use absolute filenames.
|
|
35
|
-
const moduleName = opts.packageRoot ? env.meta.moduleName : env.filename;
|
|
36
|
-
return {
|
|
37
|
-
name: '@embroider/macros/first',
|
|
38
|
-
visitor: {
|
|
39
|
-
...scopeVisitors(env, scopeStack),
|
|
40
|
-
SubExpression(node, walker) {
|
|
41
|
-
if (node.path.type !== 'PathExpression') {
|
|
42
|
-
return;
|
|
43
|
-
}
|
|
44
|
-
if (inScope(scopeStack, headOf(node.path))) {
|
|
45
|
-
return;
|
|
46
|
-
}
|
|
47
|
-
if (node.path.original === 'macroGetOwnConfig') {
|
|
48
|
-
return (0, literal_1.default)((0, get_config_1.default)(node, opts.configs, opts.packageRoot, moduleName, true, packageCache), env.syntax.builders);
|
|
49
|
-
}
|
|
50
|
-
if (node.path.original === 'macroGetConfig') {
|
|
51
|
-
return (0, literal_1.default)((0, get_config_1.default)(node, opts.configs, opts.packageRoot, moduleName, false, packageCache), env.syntax.builders);
|
|
52
|
-
}
|
|
53
|
-
if (node.path.original === 'macroDependencySatisfies') {
|
|
54
|
-
const staticValue = (0, literal_1.default)((0, dependency_satisfies_1.default)(node, opts.packageRoot, moduleName, packageCache), env.syntax.builders);
|
|
55
|
-
// If this is a macro expression by itself, then turn it into a macroCondition for the second pass to prune.
|
|
56
|
-
// Otherwise assume it's being composed with another macro and evaluate it as a literal
|
|
57
|
-
if (walker.parent.node.path.original === 'if') {
|
|
58
|
-
return env.syntax.builders.sexpr('macroCondition', [staticValue]);
|
|
59
|
-
}
|
|
60
|
-
return staticValue;
|
|
61
|
-
}
|
|
62
|
-
if (node.path.original === 'macroAppEmberSatisfies') {
|
|
63
|
-
const staticValue = (0, literal_1.default)((0, app_ember_satisfies_1.default)(node, packageCache), env.syntax.builders);
|
|
64
|
-
// If this is a macro expression by itself, then turn it into a macroCondition for the second pass to prune.
|
|
65
|
-
// Otherwise assume it's being composed with another macro and evaluate it as a literal
|
|
66
|
-
if (walker.parent.node.path.original === 'if') {
|
|
67
|
-
return env.syntax.builders.sexpr('macroCondition', [staticValue]);
|
|
68
|
-
}
|
|
69
|
-
return staticValue;
|
|
70
|
-
}
|
|
71
|
-
},
|
|
72
|
-
MustacheStatement(node) {
|
|
73
|
-
if (node.path.type !== 'PathExpression') {
|
|
74
|
-
return;
|
|
75
|
-
}
|
|
76
|
-
if (inScope(scopeStack, headOf(node.path))) {
|
|
77
|
-
return;
|
|
78
|
-
}
|
|
79
|
-
if (node.path.original === 'macroGetOwnConfig') {
|
|
80
|
-
return env.syntax.builders.mustache((0, literal_1.default)((0, get_config_1.default)(node, opts.configs, opts.packageRoot, moduleName, true, packageCache), env.syntax.builders));
|
|
81
|
-
}
|
|
82
|
-
if (node.path.original === 'macroGetConfig') {
|
|
83
|
-
return env.syntax.builders.mustache((0, literal_1.default)((0, get_config_1.default)(node, opts.configs, opts.packageRoot, moduleName, false, packageCache), env.syntax.builders));
|
|
84
|
-
}
|
|
85
|
-
if (node.path.original === 'macroDependencySatisfies') {
|
|
86
|
-
return env.syntax.builders.mustache((0, literal_1.default)((0, dependency_satisfies_1.default)(node, opts.packageRoot, moduleName, packageCache), env.syntax.builders));
|
|
87
|
-
}
|
|
88
|
-
if (node.path.original === 'macroAppEmberSatisfies') {
|
|
89
|
-
return env.syntax.builders.mustache((0, literal_1.default)((0, app_ember_satisfies_1.default)(node, packageCache), env.syntax.builders));
|
|
90
|
-
}
|
|
91
|
-
},
|
|
92
|
-
},
|
|
93
|
-
};
|
|
94
|
-
}
|
|
95
|
-
embroiderFirstMacrosTransform.embroiderMacrosASTMarker = true;
|
|
96
|
-
embroiderFirstMacrosTransform.parallelBabel = {
|
|
97
|
-
requireFile: __filename,
|
|
98
|
-
buildUsing: 'makeFirstTransform',
|
|
99
|
-
get params() {
|
|
100
|
-
return opts;
|
|
101
|
-
},
|
|
102
|
-
};
|
|
103
|
-
return embroiderFirstMacrosTransform;
|
|
104
|
-
}
|
|
105
|
-
function makeSecondTransform() {
|
|
106
|
-
function embroiderSecondMacrosTransform(env) {
|
|
107
|
-
let scopeStack = [];
|
|
108
|
-
return {
|
|
109
|
-
name: '@embroider/macros/second',
|
|
110
|
-
visitor: {
|
|
111
|
-
...scopeVisitors(env, scopeStack),
|
|
112
|
-
BlockStatement(node) {
|
|
113
|
-
if (node.path.type !== 'PathExpression') {
|
|
114
|
-
return;
|
|
115
|
-
}
|
|
116
|
-
if (inScope(scopeStack, headOf(node.path))) {
|
|
117
|
-
return;
|
|
118
|
-
}
|
|
119
|
-
if (node.path.original === 'if') {
|
|
120
|
-
return (0, macro_condition_1.macroIfBlock)(node);
|
|
121
|
-
}
|
|
122
|
-
if (node.path.original === 'unless') {
|
|
123
|
-
return (0, macro_condition_1.macroUnlessBlock)(node);
|
|
124
|
-
}
|
|
125
|
-
},
|
|
126
|
-
SubExpression(node) {
|
|
127
|
-
if (node.path.type !== 'PathExpression') {
|
|
128
|
-
return;
|
|
129
|
-
}
|
|
130
|
-
if (inScope(scopeStack, headOf(node.path))) {
|
|
131
|
-
return;
|
|
132
|
-
}
|
|
133
|
-
if (node.path.original === 'if') {
|
|
134
|
-
return (0, macro_condition_1.macroIfExpression)(node, env.syntax.builders);
|
|
135
|
-
}
|
|
136
|
-
if (node.path.original === 'unless') {
|
|
137
|
-
return (0, macro_condition_1.macroUnlessExpression)(node, env.syntax.builders);
|
|
138
|
-
}
|
|
139
|
-
if (node.path.original === 'macroFailBuild') {
|
|
140
|
-
(0, fail_build_1.failBuild)(node);
|
|
141
|
-
}
|
|
142
|
-
},
|
|
143
|
-
ElementNode(node) {
|
|
144
|
-
node.modifiers = node.modifiers.filter((modifier) => {
|
|
145
|
-
if (modifier.path.type === 'SubExpression' &&
|
|
146
|
-
modifier.path.path.type === 'PathExpression' &&
|
|
147
|
-
modifier.path.path.original === 'if') {
|
|
148
|
-
modifier.path = (0, macro_condition_1.macroIfExpression)(modifier.path, env.syntax.builders);
|
|
149
|
-
if (modifier.path.type === 'UndefinedLiteral') {
|
|
150
|
-
return false;
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
if (modifier.path.type === 'SubExpression' &&
|
|
154
|
-
modifier.path.path.type === 'PathExpression' &&
|
|
155
|
-
modifier.path.path.original === 'unless') {
|
|
156
|
-
modifier.path = (0, macro_condition_1.macroUnlessExpression)(modifier.path, env.syntax.builders);
|
|
157
|
-
if (modifier.path.type === 'UndefinedLiteral') {
|
|
158
|
-
return false;
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
if (modifier.path.type !== 'PathExpression') {
|
|
162
|
-
return true;
|
|
163
|
-
}
|
|
164
|
-
if (inScope(scopeStack, headOf(node.path))) {
|
|
165
|
-
return true;
|
|
166
|
-
}
|
|
167
|
-
if (modifier.path.original === 'macroMaybeAttrs') {
|
|
168
|
-
(0, macro_maybe_attrs_1.maybeAttrs)(node, modifier, env.syntax.builders);
|
|
169
|
-
}
|
|
170
|
-
else {
|
|
171
|
-
return true;
|
|
172
|
-
}
|
|
173
|
-
});
|
|
174
|
-
},
|
|
175
|
-
MustacheStatement(node) {
|
|
176
|
-
if (node.path.type !== 'PathExpression') {
|
|
177
|
-
return;
|
|
178
|
-
}
|
|
179
|
-
if (inScope(scopeStack, headOf(node.path))) {
|
|
180
|
-
return;
|
|
181
|
-
}
|
|
182
|
-
if (node.path.original === 'if') {
|
|
183
|
-
return (0, macro_condition_1.macroIfMustache)(node, env.syntax.builders);
|
|
184
|
-
}
|
|
185
|
-
if (node.path.original === 'unless') {
|
|
186
|
-
return (0, macro_condition_1.macroUnlessMustache)(node, env.syntax.builders);
|
|
187
|
-
}
|
|
188
|
-
if (node.path.original === 'macroFailBuild') {
|
|
189
|
-
(0, fail_build_1.failBuild)(node);
|
|
190
|
-
}
|
|
191
|
-
},
|
|
192
|
-
},
|
|
193
|
-
};
|
|
194
|
-
}
|
|
195
|
-
embroiderSecondMacrosTransform.embroiderMacrosASTMarker = true;
|
|
196
|
-
embroiderSecondMacrosTransform.parallelBabel = {
|
|
197
|
-
requireFile: __filename,
|
|
198
|
-
buildUsing: 'makeSecondTransform',
|
|
199
|
-
params: undefined,
|
|
200
|
-
};
|
|
201
|
-
return embroiderSecondMacrosTransform;
|
|
202
|
-
}
|
|
203
|
-
function inScope(scopeStack, name) {
|
|
204
|
-
for (let scope of scopeStack) {
|
|
205
|
-
if (scope.includes(name)) {
|
|
206
|
-
return true;
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
return false;
|
|
210
|
-
}
|
|
211
|
-
function headOf(path) {
|
|
212
|
-
if (!path)
|
|
213
|
-
return;
|
|
214
|
-
return 'head' in path ? path.head.name : path.parts[0];
|
|
215
|
-
}
|
|
216
|
-
function scopeVisitors(env, scopeStack) {
|
|
217
|
-
function enter(node) {
|
|
218
|
-
if (node.blockParams.length > 0) {
|
|
219
|
-
scopeStack.push(node.blockParams);
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
function exit(node) {
|
|
223
|
-
if (node.blockParams.length > 0) {
|
|
224
|
-
scopeStack.pop();
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
let hasTemplate = 'template' in env.syntax.builders;
|
|
228
|
-
if (hasTemplate) {
|
|
229
|
-
return {
|
|
230
|
-
Template: { enter, exit },
|
|
231
|
-
Block: { enter, exit },
|
|
232
|
-
};
|
|
233
|
-
}
|
|
234
|
-
else {
|
|
235
|
-
return {
|
|
236
|
-
Program: { enter, exit },
|
|
237
|
-
};
|
|
238
|
-
}
|
|
239
|
-
}
|
|
240
|
-
//# sourceMappingURL=ast-transform.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ast-transform.js","sourceRoot":"","sources":["ast-transform.ts"],"names":[],"mappings":"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","sourcesContent":["import literal from './literal';\nimport getConfig from './get-config';\nimport appEmberSatisfies from './app-ember-satisfies';\nimport dependencySatisfies from './dependency-satisfies';\nimport { maybeAttrs } from './macro-maybe-attrs';\nimport {\n macroIfBlock,\n macroIfExpression,\n macroIfMustache,\n macroUnlessBlock,\n macroUnlessExpression,\n macroUnlessMustache,\n} from './macro-condition';\nimport { failBuild } from './fail-build';\nimport { RewrittenPackageCache } from '@embroider/shared-internals';\n\nexport interface BuildPluginParams {\n // Glimmer requires this on ast transforms.\n name: string;\n\n // this is the location of @embroider/macros itself. Glimmer requires this on\n // ast transforms.\n baseDir: string;\n\n methodName: string;\n\n firstTransformParams: FirstTransformParams;\n}\n\nexport interface FirstTransformParams {\n // this is the location of the particular package (app or addon) that is\n // depending on @embroider/macros *if* we're in a classic build. Under\n // embroider the build is global and there's no single packageRoot.\n packageRoot: string | undefined;\n\n // this is the path to the topmost package\n appRoot: string;\n\n // this holds all the actual user configs that were sent into the macros\n configs: { [packageRoot: string]: object };\n}\n\nexport function buildPlugin(params: BuildPluginParams) {\n return {\n name: params.name,\n plugin:\n params.methodName === 'makeFirstTransform'\n ? makeFirstTransform(params.firstTransformParams)\n : makeSecondTransform(),\n baseDir: () => params.baseDir,\n };\n}\n\nexport function makeFirstTransform(opts: FirstTransformParams) {\n function embroiderFirstMacrosTransform(env: {\n syntax: { builders: any };\n meta: { moduleName: string };\n filename: string;\n }) {\n if (!opts.packageRoot && !env.filename) {\n throw new Error(`bug in @embroider/macros. Running without packageRoot but don't have filename.`);\n }\n\n let packageCache = RewrittenPackageCache.shared('embroider', opts.appRoot);\n\n let scopeStack: string[][] = [];\n\n // packageRoot is set when we run inside classic ember-cli. Otherwise we're in\n // Embroider, where we can use absolute filenames.\n const moduleName = opts.packageRoot ? env.meta.moduleName : env.filename;\n\n return {\n name: '@embroider/macros/first',\n\n visitor: {\n ...scopeVisitors(env, scopeStack),\n SubExpression(node: any, walker: { parent: { node: any } }) {\n if (node.path.type !== 'PathExpression') {\n return;\n }\n\n if (inScope(scopeStack, headOf(node.path))) {\n return;\n }\n\n if (node.path.original === 'macroGetOwnConfig') {\n return literal(\n getConfig(node, opts.configs, opts.packageRoot, moduleName, true, packageCache),\n env.syntax.builders\n );\n }\n if (node.path.original === 'macroGetConfig') {\n return literal(\n getConfig(node, opts.configs, opts.packageRoot, moduleName, false, packageCache),\n env.syntax.builders\n );\n }\n if (node.path.original === 'macroDependencySatisfies') {\n const staticValue = literal(\n dependencySatisfies(node, opts.packageRoot, moduleName, packageCache),\n env.syntax.builders\n );\n // If this is a macro expression by itself, then turn it into a macroCondition for the second pass to prune.\n // Otherwise assume it's being composed with another macro and evaluate it as a literal\n if (walker.parent.node.path.original === 'if') {\n return env.syntax.builders.sexpr('macroCondition', [staticValue]);\n }\n return staticValue;\n }\n if (node.path.original === 'macroAppEmberSatisfies') {\n const staticValue = literal(appEmberSatisfies(node, packageCache), env.syntax.builders);\n // If this is a macro expression by itself, then turn it into a macroCondition for the second pass to prune.\n // Otherwise assume it's being composed with another macro and evaluate it as a literal\n if (walker.parent.node.path.original === 'if') {\n return env.syntax.builders.sexpr('macroCondition', [staticValue]);\n }\n return staticValue;\n }\n },\n MustacheStatement(node: any) {\n if (node.path.type !== 'PathExpression') {\n return;\n }\n\n if (inScope(scopeStack, headOf(node.path))) {\n return;\n }\n if (node.path.original === 'macroGetOwnConfig') {\n return env.syntax.builders.mustache(\n literal(\n getConfig(node, opts.configs, opts.packageRoot, moduleName, true, packageCache),\n env.syntax.builders\n )\n );\n }\n if (node.path.original === 'macroGetConfig') {\n return env.syntax.builders.mustache(\n literal(\n getConfig(node, opts.configs, opts.packageRoot, moduleName, false, packageCache),\n env.syntax.builders\n )\n );\n }\n if (node.path.original === 'macroDependencySatisfies') {\n return env.syntax.builders.mustache(\n literal(dependencySatisfies(node, opts.packageRoot, moduleName, packageCache), env.syntax.builders)\n );\n }\n if (node.path.original === 'macroAppEmberSatisfies') {\n return env.syntax.builders.mustache(literal(appEmberSatisfies(node, packageCache), env.syntax.builders));\n }\n },\n },\n };\n }\n (embroiderFirstMacrosTransform as any).embroiderMacrosASTMarker = true;\n (embroiderFirstMacrosTransform as any).parallelBabel = {\n requireFile: __filename,\n buildUsing: 'makeFirstTransform',\n get params(): FirstTransformParams {\n return opts;\n },\n };\n return embroiderFirstMacrosTransform;\n}\n\nexport function makeSecondTransform() {\n function embroiderSecondMacrosTransform(env: { syntax: { builders: any } }) {\n let scopeStack: string[][] = [];\n return {\n name: '@embroider/macros/second',\n\n visitor: {\n ...scopeVisitors(env, scopeStack),\n BlockStatement(node: any) {\n if (node.path.type !== 'PathExpression') {\n return;\n }\n\n if (inScope(scopeStack, headOf(node.path))) {\n return;\n }\n if (node.path.original === 'if') {\n return macroIfBlock(node);\n }\n if (node.path.original === 'unless') {\n return macroUnlessBlock(node);\n }\n },\n SubExpression(node: any) {\n if (node.path.type !== 'PathExpression') {\n return;\n }\n\n if (inScope(scopeStack, headOf(node.path))) {\n return;\n }\n if (node.path.original === 'if') {\n return macroIfExpression(node, env.syntax.builders);\n }\n if (node.path.original === 'unless') {\n return macroUnlessExpression(node, env.syntax.builders);\n }\n if (node.path.original === 'macroFailBuild') {\n failBuild(node);\n }\n },\n ElementNode(node: any) {\n node.modifiers = node.modifiers.filter((modifier: any) => {\n if (\n modifier.path.type === 'SubExpression' &&\n modifier.path.path.type === 'PathExpression' &&\n modifier.path.path.original === 'if'\n ) {\n modifier.path = macroIfExpression(modifier.path, env.syntax.builders);\n if (modifier.path.type === 'UndefinedLiteral') {\n return false;\n }\n }\n if (\n modifier.path.type === 'SubExpression' &&\n modifier.path.path.type === 'PathExpression' &&\n modifier.path.path.original === 'unless'\n ) {\n modifier.path = macroUnlessExpression(modifier.path, env.syntax.builders);\n if (modifier.path.type === 'UndefinedLiteral') {\n return false;\n }\n }\n if (modifier.path.type !== 'PathExpression') {\n return true;\n }\n\n if (inScope(scopeStack, headOf(node.path))) {\n return true;\n }\n if (modifier.path.original === 'macroMaybeAttrs') {\n maybeAttrs(node, modifier, env.syntax.builders);\n } else {\n return true;\n }\n });\n },\n MustacheStatement(node: any) {\n if (node.path.type !== 'PathExpression') {\n return;\n }\n\n if (inScope(scopeStack, headOf(node.path))) {\n return;\n }\n if (node.path.original === 'if') {\n return macroIfMustache(node, env.syntax.builders);\n }\n if (node.path.original === 'unless') {\n return macroUnlessMustache(node, env.syntax.builders);\n }\n if (node.path.original === 'macroFailBuild') {\n failBuild(node);\n }\n },\n },\n };\n }\n (embroiderSecondMacrosTransform as any).embroiderMacrosASTMarker = true;\n (embroiderSecondMacrosTransform as any).parallelBabel = {\n requireFile: __filename,\n buildUsing: 'makeSecondTransform',\n params: undefined,\n };\n return embroiderSecondMacrosTransform;\n}\n\nfunction inScope(scopeStack: string[][], name: string) {\n for (let scope of scopeStack) {\n if (scope.includes(name)) {\n return true;\n }\n }\n return false;\n}\n\nfunction headOf(path: any) {\n if (!path) return;\n\n return 'head' in path ? path.head.name : path.parts[0];\n}\n\nfunction scopeVisitors(env: any, scopeStack: string[][]) {\n function enter(node: any) {\n if (node.blockParams.length > 0) {\n scopeStack.push(node.blockParams);\n }\n }\n function exit(node: any) {\n if (node.blockParams.length > 0) {\n scopeStack.pop();\n }\n }\n\n let hasTemplate = 'template' in env.syntax.builders;\n if (hasTemplate) {\n return {\n Template: { enter, exit },\n Block: { enter, exit },\n };\n } else {\n return {\n Program: { enter, exit },\n };\n }\n}\n"]}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import type { RewrittenPackageCache } from '@embroider/shared-internals';
|
|
2
|
-
export default function dependencySatisfies(node: any, baseDir: string | undefined, moduleName: string, packageCache: RewrittenPackageCache): boolean;
|
|
3
|
-
//# sourceMappingURL=dependency-satisfies.d.ts.map
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.default = dependencySatisfies;
|
|
4
|
-
const semver_1 = require("semver");
|
|
5
|
-
function dependencySatisfies(node,
|
|
6
|
-
// when we're running in traditional ember-cli, baseDir is configured and we
|
|
7
|
-
// do all lookups relative to that (single) package. But when we're running in
|
|
8
|
-
// embroider stage3 we process all packages simultaneously, so baseDir is left
|
|
9
|
-
// unconfigured and moduleName will be the full path to the source file.
|
|
10
|
-
baseDir, moduleName, packageCache) {
|
|
11
|
-
if (node.params.length !== 2) {
|
|
12
|
-
throw new Error(`macroDependencySatisfies requires two arguments, you passed ${node.params.length}`);
|
|
13
|
-
}
|
|
14
|
-
if (!node.params.every((p) => p.type === 'StringLiteral')) {
|
|
15
|
-
throw new Error(`all arguments to macroDependencySatisfies must be string literals`);
|
|
16
|
-
}
|
|
17
|
-
let packageName = node.params[0].value;
|
|
18
|
-
let range = node.params[1].value;
|
|
19
|
-
let us = packageCache.ownerOfFile(baseDir || moduleName);
|
|
20
|
-
if (!(us === null || us === void 0 ? void 0 : us.hasDependency(packageName))) {
|
|
21
|
-
return false;
|
|
22
|
-
}
|
|
23
|
-
let pkg;
|
|
24
|
-
try {
|
|
25
|
-
pkg = packageCache.resolve(packageName, us);
|
|
26
|
-
}
|
|
27
|
-
catch (err) {
|
|
28
|
-
// it's not an error if we can't resolve it, we just don't satisfy it.
|
|
29
|
-
}
|
|
30
|
-
if (pkg) {
|
|
31
|
-
return (0, semver_1.satisfies)(pkg.version, range, {
|
|
32
|
-
includePrerelease: true,
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
return false;
|
|
36
|
-
}
|
|
37
|
-
//# sourceMappingURL=dependency-satisfies.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dependency-satisfies.js","sourceRoot":"","sources":["dependency-satisfies.ts"],"names":[],"mappings":";;AAGA,sCAuCC;AA1CD,mCAAmC;AAGnC,SAAwB,mBAAmB,CACzC,IAAS;AACT,4EAA4E;AAC5E,8EAA8E;AAC9E,8EAA8E;AAC9E,wEAAwE;AACxE,OAA2B,EAC3B,UAAkB,EAClB,YAAmC;IAEnC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,+DAA+D,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IACvG,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,eAAe,CAAC,EAAE,CAAC;QAC/D,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;IACvF,CAAC;IAED,IAAI,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACvC,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAEjC,IAAI,EAAE,GAAG,YAAY,CAAC,WAAW,CAAC,OAAO,IAAI,UAAU,CAAC,CAAC;IACzD,IAAI,CAAC,CAAA,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,aAAa,CAAC,WAAW,CAAC,CAAA,EAAE,CAAC;QACpC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,GAAG,CAAC;IACR,IAAI,CAAC;QACH,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IAC9C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,sEAAsE;IACxE,CAAC;IAED,IAAI,GAAG,EAAE,CAAC;QACR,OAAO,IAAA,kBAAS,EAAC,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE;YACnC,iBAAiB,EAAE,IAAI;SACxB,CAAC,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC","sourcesContent":["import { satisfies } from 'semver';\nimport type { RewrittenPackageCache } from '@embroider/shared-internals';\n\nexport default function dependencySatisfies(\n node: any,\n // when we're running in traditional ember-cli, baseDir is configured and we\n // do all lookups relative to that (single) package. But when we're running in\n // embroider stage3 we process all packages simultaneously, so baseDir is left\n // unconfigured and moduleName will be the full path to the source file.\n baseDir: string | undefined,\n moduleName: string,\n packageCache: RewrittenPackageCache\n) {\n if (node.params.length !== 2) {\n throw new Error(`macroDependencySatisfies requires two arguments, you passed ${node.params.length}`);\n }\n\n if (!node.params.every((p: any) => p.type === 'StringLiteral')) {\n throw new Error(`all arguments to macroDependencySatisfies must be string literals`);\n }\n\n let packageName = node.params[0].value;\n let range = node.params[1].value;\n\n let us = packageCache.ownerOfFile(baseDir || moduleName);\n if (!us?.hasDependency(packageName)) {\n return false;\n }\n\n let pkg;\n try {\n pkg = packageCache.resolve(packageName, us);\n } catch (err) {\n // it's not an error if we can't resolve it, we just don't satisfy it.\n }\n\n if (pkg) {\n return satisfies(pkg.version, range, {\n includePrerelease: true,\n });\n }\n return false;\n}\n"]}
|
package/src/glimmer/evaluate.js
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.default = evaluate;
|
|
4
|
-
function evaluate(node) {
|
|
5
|
-
switch (node.type) {
|
|
6
|
-
case 'StringLiteral':
|
|
7
|
-
case 'NumberLiteral':
|
|
8
|
-
case 'BooleanLiteral':
|
|
9
|
-
case 'NullLiteral':
|
|
10
|
-
case 'UndefinedLiteral':
|
|
11
|
-
return { confident: true, value: node.value };
|
|
12
|
-
default:
|
|
13
|
-
return { confident: false };
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
//# sourceMappingURL=evaluate.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"evaluate.js","sourceRoot":"","sources":["evaluate.ts"],"names":[],"mappings":";;AAAA,2BAWC;AAXD,SAAwB,QAAQ,CAAC,IAAS;IACxC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,eAAe,CAAC;QACrB,KAAK,eAAe,CAAC;QACrB,KAAK,gBAAgB,CAAC;QACtB,KAAK,aAAa,CAAC;QACnB,KAAK,kBAAkB;YACrB,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;QAChD;YACE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IAChC,CAAC;AACH,CAAC","sourcesContent":["export default function evaluate(node: any): { confident: true; value: any } | { confident: false } {\n switch (node.type) {\n case 'StringLiteral':\n case 'NumberLiteral':\n case 'BooleanLiteral':\n case 'NullLiteral':\n case 'UndefinedLiteral':\n return { confident: true, value: node.value };\n default:\n return { confident: false };\n }\n}\n"]}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.failBuild = failBuild;
|
|
7
|
-
const util_1 = require("util");
|
|
8
|
-
const evaluate_1 = __importDefault(require("./evaluate"));
|
|
9
|
-
function failBuild(node) {
|
|
10
|
-
if (node.params.length < 1) {
|
|
11
|
-
throw new Error(`macroFailBuild requires at least one argument`);
|
|
12
|
-
}
|
|
13
|
-
let values = node.params.map(evaluate_1.default);
|
|
14
|
-
for (let i = 0; i < values.length; i++) {
|
|
15
|
-
if (!values[i].confident) {
|
|
16
|
-
throw new Error(`argument ${i} to macroFailBuild is not statically analyzable`);
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
let [message, ...rest] = values;
|
|
20
|
-
throw new Error((0, util_1.format)(`failBuild: ${message.value}`, ...rest.map((r) => r.value)));
|
|
21
|
-
}
|
|
22
|
-
//# sourceMappingURL=fail-build.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fail-build.js","sourceRoot":"","sources":["fail-build.ts"],"names":[],"mappings":";;;;;AAGA,8BAaC;AAhBD,+BAA8B;AAC9B,0DAAkC;AAElC,SAAgB,SAAS,CAAC,IAAS;IACjC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACnE,CAAC;IAED,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,kBAAQ,CAAC,CAAC;IACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,iDAAiD,CAAC,CAAC;QAClF,CAAC;IACH,CAAC;IACD,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC;IAChC,MAAM,IAAI,KAAK,CAAC,IAAA,aAAM,EAAC,cAAc,OAAO,CAAC,KAAK,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC3F,CAAC","sourcesContent":["import { format } from 'util';\nimport evaluate from './evaluate';\n\nexport function failBuild(node: any) {\n if (node.params.length < 1) {\n throw new Error(`macroFailBuild requires at least one argument`);\n }\n\n let values = node.params.map(evaluate);\n for (let i = 0; i < values.length; i++) {\n if (!values[i].confident) {\n throw new Error(`argument ${i} to macroFailBuild is not statically analyzable`);\n }\n }\n let [message, ...rest] = values;\n throw new Error(format(`failBuild: ${message.value}`, ...rest.map((r: any) => r.value)));\n}\n"]}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import type { RewrittenPackageCache } from '@embroider/shared-internals';
|
|
2
|
-
export default function getConfig(node: any, userConfigs: {
|
|
3
|
-
[packageRoot: string]: unknown;
|
|
4
|
-
}, baseDir: string | undefined, moduleName: string, own: boolean, packageCache: RewrittenPackageCache): any;
|
|
5
|
-
//# sourceMappingURL=get-config.d.ts.map
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.default = getConfig;
|
|
4
|
-
function getConfig(node, userConfigs,
|
|
5
|
-
// when we're running in traditional ember-cli, baseDir is configured and we
|
|
6
|
-
// do all lookups relative to that (single) package. But when we're running in
|
|
7
|
-
// embroider stage3 we process all packages simultaneously, so baseDir is left
|
|
8
|
-
// unconfigured and moduleName will be the full path to the source file.
|
|
9
|
-
baseDir, moduleName, own, packageCache) {
|
|
10
|
-
let targetConfig;
|
|
11
|
-
let params = node.params.slice();
|
|
12
|
-
if (!params.every((p) => p.type === 'StringLiteral')) {
|
|
13
|
-
throw new Error(`all arguments to ${own ? 'macroGetOwnConfig' : 'macroGetConfig'} must be string literals`);
|
|
14
|
-
}
|
|
15
|
-
let us = packageCache.ownerOfFile(baseDir || moduleName);
|
|
16
|
-
if (!us) {
|
|
17
|
-
return undefined;
|
|
18
|
-
}
|
|
19
|
-
if (own) {
|
|
20
|
-
us = packageCache.original(us);
|
|
21
|
-
targetConfig = userConfigs[us.root];
|
|
22
|
-
}
|
|
23
|
-
else {
|
|
24
|
-
let packageName = params.shift();
|
|
25
|
-
if (!packageName) {
|
|
26
|
-
throw new Error(`macroGetConfig requires at least one argument`);
|
|
27
|
-
}
|
|
28
|
-
let targetPkg = packageCache.resolve(packageName.value, us);
|
|
29
|
-
targetPkg = packageCache.original(targetPkg);
|
|
30
|
-
targetConfig = userConfigs[targetPkg.root];
|
|
31
|
-
}
|
|
32
|
-
while (typeof targetConfig === 'object' && targetConfig && params.length > 0) {
|
|
33
|
-
let key = params.shift();
|
|
34
|
-
targetConfig = targetConfig[key.value];
|
|
35
|
-
}
|
|
36
|
-
return targetConfig;
|
|
37
|
-
}
|
|
38
|
-
//# sourceMappingURL=get-config.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"get-config.js","sourceRoot":"","sources":["get-config.ts"],"names":[],"mappings":";;AAEA,4BAwCC;AAxCD,SAAwB,SAAS,CAC/B,IAAS,EACT,WAA+C;AAC/C,4EAA4E;AAC5E,8EAA8E;AAC9E,8EAA8E;AAC9E,wEAAwE;AACxE,OAA2B,EAC3B,UAAkB,EAClB,GAAY,EACZ,YAAmC;IAEnC,IAAI,YAAY,CAAC;IACjB,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACjC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,eAAe,CAAC,EAAE,CAAC;QAC1D,MAAM,IAAI,KAAK,CAAC,oBAAoB,GAAG,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,gBAAgB,0BAA0B,CAAC,CAAC;IAC9G,CAAC;IAED,IAAI,EAAE,GAAG,YAAY,CAAC,WAAW,CAAC,OAAO,IAAI,UAAU,CAAC,CAAC;IACzD,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,GAAG,EAAE,CAAC;QACR,EAAE,GAAG,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC/B,YAAY,GAAG,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;SAAM,CAAC;QACN,IAAI,WAAW,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;QACjC,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;QACnE,CAAC;QACD,IAAI,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC5D,SAAS,GAAG,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC7C,YAAY,GAAG,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,OAAO,YAAY,KAAK,QAAQ,IAAI,YAAY,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7E,IAAI,GAAG,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;QACzB,YAAY,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,CAAQ,CAAC;IAChD,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC","sourcesContent":["import type { RewrittenPackageCache } from '@embroider/shared-internals';\n\nexport default function getConfig(\n node: any,\n userConfigs: { [packageRoot: string]: unknown },\n // when we're running in traditional ember-cli, baseDir is configured and we\n // do all lookups relative to that (single) package. But when we're running in\n // embroider stage3 we process all packages simultaneously, so baseDir is left\n // unconfigured and moduleName will be the full path to the source file.\n baseDir: string | undefined,\n moduleName: string,\n own: boolean,\n packageCache: RewrittenPackageCache\n) {\n let targetConfig;\n let params = node.params.slice();\n if (!params.every((p: any) => p.type === 'StringLiteral')) {\n throw new Error(`all arguments to ${own ? 'macroGetOwnConfig' : 'macroGetConfig'} must be string literals`);\n }\n\n let us = packageCache.ownerOfFile(baseDir || moduleName);\n if (!us) {\n return undefined;\n }\n\n if (own) {\n us = packageCache.original(us);\n targetConfig = userConfigs[us.root];\n } else {\n let packageName = params.shift();\n if (!packageName) {\n throw new Error(`macroGetConfig requires at least one argument`);\n }\n let targetPkg = packageCache.resolve(packageName.value, us);\n targetPkg = packageCache.original(targetPkg);\n targetConfig = userConfigs[targetPkg.root];\n }\n while (typeof targetConfig === 'object' && targetConfig && params.length > 0) {\n let key = params.shift();\n targetConfig = targetConfig[key.value] as any;\n }\n return targetConfig;\n}\n"]}
|
package/src/glimmer/literal.d.ts
DELETED
package/src/glimmer/literal.js
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.default = literal;
|
|
4
|
-
function literal(value, builders) {
|
|
5
|
-
if (typeof value === 'number') {
|
|
6
|
-
return builders.number(value);
|
|
7
|
-
}
|
|
8
|
-
if (typeof value === 'boolean') {
|
|
9
|
-
return builders.boolean(value);
|
|
10
|
-
}
|
|
11
|
-
if (typeof value === 'string') {
|
|
12
|
-
return builders.string(value);
|
|
13
|
-
}
|
|
14
|
-
if (value === null) {
|
|
15
|
-
return builders.null();
|
|
16
|
-
}
|
|
17
|
-
if (value === undefined) {
|
|
18
|
-
return builders.undefined();
|
|
19
|
-
}
|
|
20
|
-
if (Array.isArray(value)) {
|
|
21
|
-
return builders.sexpr('array', value.map(element => literal(element, builders)));
|
|
22
|
-
}
|
|
23
|
-
if (typeof value === 'object') {
|
|
24
|
-
return builders.sexpr('hash', undefined, builders.hash(Object.entries(value).map(([k, v]) => builders.pair(k, literal(v, builders)))));
|
|
25
|
-
}
|
|
26
|
-
throw new Error(`don't know how to emit a literal form of value ${value}`);
|
|
27
|
-
}
|
|
28
|
-
//# sourceMappingURL=literal.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"literal.js","sourceRoot":"","sources":["literal.ts"],"names":[],"mappings":";;AAAA,0BA+BC;AA/BD,SAAwB,OAAO,CAAC,KAAU,EAAE,QAAa;IACvD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IACD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;IACzB,CAAC;IACD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,QAAQ,CAAC,SAAS,EAAE,CAAC;IAC9B,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,QAAQ,CAAC,KAAK,CACnB,OAAO,EACP,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CACjD,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,QAAQ,CAAC,KAAK,CACnB,MAAM,EACN,SAAS,EACT,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAC7F,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,kDAAkD,KAAK,EAAE,CAAC,CAAC;AAC7E,CAAC","sourcesContent":["export default function literal(value: any, builders: any): any {\n if (typeof value === 'number') {\n return builders.number(value);\n }\n if (typeof value === 'boolean') {\n return builders.boolean(value);\n }\n if (typeof value === 'string') {\n return builders.string(value);\n }\n if (value === null) {\n return builders.null();\n }\n if (value === undefined) {\n return builders.undefined();\n }\n if (Array.isArray(value)) {\n return builders.sexpr(\n 'array',\n value.map(element => literal(element, builders))\n );\n }\n if (typeof value === 'object') {\n return builders.sexpr(\n 'hash',\n undefined,\n builders.hash(Object.entries(value).map(([k, v]) => builders.pair(k, literal(v, builders))))\n );\n }\n\n throw new Error(`don't know how to emit a literal form of value ${value}`);\n}\n"]}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export declare function macroIfBlock(node: any): any;
|
|
2
|
-
export declare function macroIfExpression(node: any, builders: any): any;
|
|
3
|
-
export declare function macroIfMustache(node: any, builders: any): any;
|
|
4
|
-
export declare function macroUnlessBlock(node: any): any;
|
|
5
|
-
export declare function macroUnlessExpression(node: any, builders: any): any;
|
|
6
|
-
export declare function macroUnlessMustache(node: any, builders: any): any;
|
|
7
|
-
//# sourceMappingURL=macro-condition.d.ts.map
|
|
@@ -1,119 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.macroIfBlock = macroIfBlock;
|
|
7
|
-
exports.macroIfExpression = macroIfExpression;
|
|
8
|
-
exports.macroIfMustache = macroIfMustache;
|
|
9
|
-
exports.macroUnlessBlock = macroUnlessBlock;
|
|
10
|
-
exports.macroUnlessExpression = macroUnlessExpression;
|
|
11
|
-
exports.macroUnlessMustache = macroUnlessMustache;
|
|
12
|
-
const evaluate_1 = __importDefault(require("./evaluate"));
|
|
13
|
-
function macroIfBlock(node) {
|
|
14
|
-
let condition = node.params[0];
|
|
15
|
-
if (!condition || condition.type !== 'SubExpression' || condition.path.original !== 'macroCondition') {
|
|
16
|
-
return node;
|
|
17
|
-
}
|
|
18
|
-
if (condition.params.length !== 1) {
|
|
19
|
-
throw new Error(`macroCondition requires one arguments, you passed ${node.params.length}`);
|
|
20
|
-
}
|
|
21
|
-
let result = (0, evaluate_1.default)(condition.params[0]);
|
|
22
|
-
if (!result.confident) {
|
|
23
|
-
throw new Error(`argument to macroCondition must be statically analyzable`);
|
|
24
|
-
}
|
|
25
|
-
if (result.value) {
|
|
26
|
-
return node.program.body;
|
|
27
|
-
}
|
|
28
|
-
else {
|
|
29
|
-
if (node.inverse) {
|
|
30
|
-
return node.inverse.body;
|
|
31
|
-
}
|
|
32
|
-
else {
|
|
33
|
-
return [];
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
function macroIfExpression(node, builders) {
|
|
38
|
-
let condition = node.params[0];
|
|
39
|
-
if (!condition || condition.type !== 'SubExpression' || condition.path.original !== 'macroCondition') {
|
|
40
|
-
return node;
|
|
41
|
-
}
|
|
42
|
-
if (condition.params.length !== 1) {
|
|
43
|
-
throw new Error(`macroCondition requires one arguments, you passed ${node.params.length}`);
|
|
44
|
-
}
|
|
45
|
-
let result = (0, evaluate_1.default)(condition.params[0]);
|
|
46
|
-
if (!result.confident) {
|
|
47
|
-
throw new Error(`argument to macroCondition must be statically analyzable`);
|
|
48
|
-
}
|
|
49
|
-
if (result.value) {
|
|
50
|
-
return node.params[1];
|
|
51
|
-
}
|
|
52
|
-
else {
|
|
53
|
-
return node.params[2] || builders.undefined();
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
function macroIfMustache(node, builders) {
|
|
57
|
-
let result = macroIfExpression(node, builders);
|
|
58
|
-
if (result === node) {
|
|
59
|
-
return node;
|
|
60
|
-
}
|
|
61
|
-
if (result.type === 'SubExpression') {
|
|
62
|
-
return builders.mustache(result.path, result.params, result.hash);
|
|
63
|
-
}
|
|
64
|
-
return builders.mustache(result);
|
|
65
|
-
}
|
|
66
|
-
function macroUnlessBlock(node) {
|
|
67
|
-
let condition = node.params[0];
|
|
68
|
-
if (!condition || condition.type !== 'SubExpression' || condition.path.original !== 'macroCondition') {
|
|
69
|
-
return node;
|
|
70
|
-
}
|
|
71
|
-
if (condition.params.length !== 1) {
|
|
72
|
-
throw new Error(`macroCondition requires one arguments, you passed ${node.params.length}`);
|
|
73
|
-
}
|
|
74
|
-
let result = (0, evaluate_1.default)(condition.params[0]);
|
|
75
|
-
if (!result.confident) {
|
|
76
|
-
throw new Error(`argument to macroCondition must be statically analyzable`);
|
|
77
|
-
}
|
|
78
|
-
if (result.value) {
|
|
79
|
-
if (node.inverse) {
|
|
80
|
-
return node.inverse.body;
|
|
81
|
-
}
|
|
82
|
-
else {
|
|
83
|
-
return [];
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
else {
|
|
87
|
-
return node.program.body;
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
function macroUnlessExpression(node, builders) {
|
|
91
|
-
let condition = node.params[0];
|
|
92
|
-
if (!condition || condition.type !== 'SubExpression' || condition.path.original !== 'macroCondition') {
|
|
93
|
-
return node;
|
|
94
|
-
}
|
|
95
|
-
if (condition.params.length !== 1) {
|
|
96
|
-
throw new Error(`macroCondition requires one arguments, you passed ${node.params.length}`);
|
|
97
|
-
}
|
|
98
|
-
let result = (0, evaluate_1.default)(condition.params[0]);
|
|
99
|
-
if (!result.confident) {
|
|
100
|
-
throw new Error(`argument to macroCondition must be statically analyzable`);
|
|
101
|
-
}
|
|
102
|
-
if (result.value) {
|
|
103
|
-
return node.params[2] || builders.undefined();
|
|
104
|
-
}
|
|
105
|
-
else {
|
|
106
|
-
return node.params[1];
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
function macroUnlessMustache(node, builders) {
|
|
110
|
-
let result = macroUnlessExpression(node, builders);
|
|
111
|
-
if (result === node) {
|
|
112
|
-
return node;
|
|
113
|
-
}
|
|
114
|
-
if (result.type === 'SubExpression') {
|
|
115
|
-
return builders.mustache(result.path, result.params, result.hash);
|
|
116
|
-
}
|
|
117
|
-
return builders.mustache(result);
|
|
118
|
-
}
|
|
119
|
-
//# sourceMappingURL=macro-condition.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"macro-condition.js","sourceRoot":"","sources":["macro-condition.ts"],"names":[],"mappings":";;;;;AAEA,oCAyBC;AAED,8CAqBC;AAED,0CAYC;AAED,4CAyBC;AAED,sDAqBC;AAED,kDAYC;AAhID,0DAAkC;AAElC,SAAgB,YAAY,CAAC,IAAS;IACpC,IAAI,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAE/B,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,IAAI,KAAK,eAAe,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,KAAK,gBAAgB,EAAE,CAAC;QACrG,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,SAAS,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,qDAAqD,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7F,CAAC;IAED,IAAI,MAAM,GAAG,IAAA,kBAAQ,EAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3C,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAC9E,CAAC;IAED,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;IAC3B,CAAC;SAAM,CAAC;QACN,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;QAC3B,CAAC;aAAM,CAAC;YACN,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAgB,iBAAiB,CAAC,IAAS,EAAE,QAAa;IACxD,IAAI,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAE/B,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,IAAI,KAAK,eAAe,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,KAAK,gBAAgB,EAAE,CAAC;QACrG,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,SAAS,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,qDAAqD,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7F,CAAC;IAED,IAAI,MAAM,GAAG,IAAA,kBAAQ,EAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3C,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAC9E,CAAC;IAED,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACxB,CAAC;SAAM,CAAC;QACN,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;IAChD,CAAC;AACH,CAAC;AAED,SAAgB,eAAe,CAAC,IAAS,EAAE,QAAa;IACtD,IAAI,MAAM,GAAG,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAE/C,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;QACpC,OAAO,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IACpE,CAAC;IAED,OAAO,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACnC,CAAC;AAED,SAAgB,gBAAgB,CAAC,IAAS;IACxC,IAAI,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAE/B,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,IAAI,KAAK,eAAe,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,KAAK,gBAAgB,EAAE,CAAC;QACrG,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,SAAS,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,qDAAqD,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7F,CAAC;IAED,IAAI,MAAM,GAAG,IAAA,kBAAQ,EAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3C,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAC9E,CAAC;IAED,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;QAC3B,CAAC;aAAM,CAAC;YACN,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;IAC3B,CAAC;AACH,CAAC;AAED,SAAgB,qBAAqB,CAAC,IAAS,EAAE,QAAa;IAC5D,IAAI,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAE/B,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,IAAI,KAAK,eAAe,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,KAAK,gBAAgB,EAAE,CAAC;QACrG,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,SAAS,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,qDAAqD,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7F,CAAC;IAED,IAAI,MAAM,GAAG,IAAA,kBAAQ,EAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3C,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAC9E,CAAC;IAED,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;IAChD,CAAC;SAAM,CAAC;QACN,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACxB,CAAC;AACH,CAAC;AAED,SAAgB,mBAAmB,CAAC,IAAS,EAAE,QAAa;IAC1D,IAAI,MAAM,GAAG,qBAAqB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAEnD,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;QACpC,OAAO,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IACpE,CAAC;IAED,OAAO,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACnC,CAAC","sourcesContent":["import evaluate from './evaluate';\n\nexport function macroIfBlock(node: any) {\n let condition = node.params[0];\n\n if (!condition || condition.type !== 'SubExpression' || condition.path.original !== 'macroCondition') {\n return node;\n }\n\n if (condition.params.length !== 1) {\n throw new Error(`macroCondition requires one arguments, you passed ${node.params.length}`);\n }\n\n let result = evaluate(condition.params[0]);\n if (!result.confident) {\n throw new Error(`argument to macroCondition must be statically analyzable`);\n }\n\n if (result.value) {\n return node.program.body;\n } else {\n if (node.inverse) {\n return node.inverse.body;\n } else {\n return [];\n }\n }\n}\n\nexport function macroIfExpression(node: any, builders: any) {\n let condition = node.params[0];\n\n if (!condition || condition.type !== 'SubExpression' || condition.path.original !== 'macroCondition') {\n return node;\n }\n\n if (condition.params.length !== 1) {\n throw new Error(`macroCondition requires one arguments, you passed ${node.params.length}`);\n }\n\n let result = evaluate(condition.params[0]);\n if (!result.confident) {\n throw new Error(`argument to macroCondition must be statically analyzable`);\n }\n\n if (result.value) {\n return node.params[1];\n } else {\n return node.params[2] || builders.undefined();\n }\n}\n\nexport function macroIfMustache(node: any, builders: any) {\n let result = macroIfExpression(node, builders);\n\n if (result === node) {\n return node;\n }\n\n if (result.type === 'SubExpression') {\n return builders.mustache(result.path, result.params, result.hash);\n }\n\n return builders.mustache(result);\n}\n\nexport function macroUnlessBlock(node: any) {\n let condition = node.params[0];\n\n if (!condition || condition.type !== 'SubExpression' || condition.path.original !== 'macroCondition') {\n return node;\n }\n\n if (condition.params.length !== 1) {\n throw new Error(`macroCondition requires one arguments, you passed ${node.params.length}`);\n }\n\n let result = evaluate(condition.params[0]);\n if (!result.confident) {\n throw new Error(`argument to macroCondition must be statically analyzable`);\n }\n\n if (result.value) {\n if (node.inverse) {\n return node.inverse.body;\n } else {\n return [];\n }\n } else {\n return node.program.body;\n }\n}\n\nexport function macroUnlessExpression(node: any, builders: any) {\n let condition = node.params[0];\n\n if (!condition || condition.type !== 'SubExpression' || condition.path.original !== 'macroCondition') {\n return node;\n }\n\n if (condition.params.length !== 1) {\n throw new Error(`macroCondition requires one arguments, you passed ${node.params.length}`);\n }\n\n let result = evaluate(condition.params[0]);\n if (!result.confident) {\n throw new Error(`argument to macroCondition must be statically analyzable`);\n }\n\n if (result.value) {\n return node.params[2] || builders.undefined();\n } else {\n return node.params[1];\n }\n}\n\nexport function macroUnlessMustache(node: any, builders: any) {\n let result = macroUnlessExpression(node, builders);\n\n if (result === node) {\n return node;\n }\n\n if (result.type === 'SubExpression') {\n return builders.mustache(result.path, result.params, result.hash);\n }\n\n return builders.mustache(result);\n}\n"]}
|