mirror of
https://github.com/lowdefy/lowdefy.git
synced 2025-02-23 14:39:32 +08:00
feat(build): add vars parameter to transformer function.
This commit is contained in:
parent
27c9114678
commit
c0782fee22
@ -140,17 +140,21 @@ class RefBuilder {
|
||||
`Invalid _ref definition ${JSON.stringify(refDef.original)} at file ${path}`
|
||||
);
|
||||
}
|
||||
const parsedVars = JSON.parse(
|
||||
JSON.stringify(refDef.vars),
|
||||
refReviver.bind({ parsedFiles, vars })
|
||||
);
|
||||
// eslint-disable-next-line no-await-in-loop
|
||||
let parsedFile = await this.recursiveParseFile({
|
||||
path: refDef.path,
|
||||
// Parse vars before passing down to parse new file
|
||||
vars: JSON.parse(JSON.stringify(refDef.vars), refReviver.bind({ parsedFiles, vars })),
|
||||
vars: parsedVars,
|
||||
count: count + 1,
|
||||
});
|
||||
if (refDef.transformer) {
|
||||
const transformerFile = await readFile(nodePath.resolve(process.cwd(), refDef.transformer));
|
||||
const transformerFn = eval(transformerFile);
|
||||
parsedFile = transformerFn(parsedFile);
|
||||
parsedFile = transformerFn(parsedFile, parsedVars);
|
||||
}
|
||||
parsedFiles[refDef.id] = parsedFile;
|
||||
}
|
||||
|
@ -682,6 +682,9 @@ test('buildRefs with transformer function', async () => {
|
||||
_ref: {
|
||||
path: 'target.yaml',
|
||||
transformer: 'src/test/testBuildRefsTransform.js',
|
||||
vars: {
|
||||
var1: 'var1',
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
@ -697,5 +700,6 @@ test('buildRefs with transformer function', async () => {
|
||||
expect(res).toEqual({
|
||||
add: 43,
|
||||
json: '{"a":1}',
|
||||
var: 'var1',
|
||||
});
|
||||
});
|
||||
|
@ -2,10 +2,11 @@ function add(a, b) {
|
||||
return a + b;
|
||||
}
|
||||
|
||||
function transformer(obj) {
|
||||
function transformer(obj, vars) {
|
||||
return {
|
||||
json: JSON.stringify(obj),
|
||||
add: add(obj.a, 42),
|
||||
var: vars.var1,
|
||||
};
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user