Closed
Description
Issue workflow progress
Progress of the issue based on the
Contributor Workflow
- 1. The issue provides a reproduction available on
Github,
Stackblitz
or
CodeSandbox
Make sure to fork this template and run
yarn generate
in the terminal.Please make sure Mesh package versions under
package.json
matches yours.
- 2. A failing test has been provided
- 3. A local solution has been provided
- 4. A pull request is pending review
Describe the bug
In Interpolator.js
, function applyRule
has:
applyRule(str, rule, data = {}) {
const dataToReplace = this.applyData(rule.key, data);
if (dataToReplace) {
return str.replace(rule.replace, this.applyModifiers(rule.modifiers, dataToReplace, data));
} else if (rule.alternativeText) {
return str.replace(
rule.replace,
this.applyModifiers(rule.modifiers, rule.alternativeText, data),
);
}
const defaultModifier = this.applyModifiers(rule.modifiers, rule.key, data);
if (defaultModifier === rule.key) {
return str.replace(rule.replace, '');
}
return str.replace(rule.replace, defaultModifier);
}
So, when dataToReplace
is 0
, str.replace(rule.replace, '')
will be returned.
To Reproduce Steps to reproduce the behavior:
parse string /users/{args.userId}/carts/{args.cartId}/entries/{args.entryNumber}
, data
is
{
args: {
cartId: '00001017',
entryNumber: 0,
userId: 'current'
}
}
expected result is: /users/current/carts/00001017/entries/0
but what we got is: /users/current/carts/00001017/entries
Expected behavior
Environment:
- OS:
@graphql-mesh/...
:- NodeJS:
Additional context
Metadata
Metadata
Assignees
Labels
No labels