Initial
This commit is contained in:
36
resources/app/node_modules/@smithy/util-endpoints/dist-es/utils/evaluateTemplate.js
generated
vendored
Normal file
36
resources/app/node_modules/@smithy/util-endpoints/dist-es/utils/evaluateTemplate.js
generated
vendored
Normal file
@@ -0,0 +1,36 @@
|
||||
import { getAttr } from "../lib";
|
||||
export const evaluateTemplate = (template, options) => {
|
||||
const evaluatedTemplateArr = [];
|
||||
const templateContext = {
|
||||
...options.endpointParams,
|
||||
...options.referenceRecord,
|
||||
};
|
||||
let currentIndex = 0;
|
||||
while (currentIndex < template.length) {
|
||||
const openingBraceIndex = template.indexOf("{", currentIndex);
|
||||
if (openingBraceIndex === -1) {
|
||||
evaluatedTemplateArr.push(template.slice(currentIndex));
|
||||
break;
|
||||
}
|
||||
evaluatedTemplateArr.push(template.slice(currentIndex, openingBraceIndex));
|
||||
const closingBraceIndex = template.indexOf("}", openingBraceIndex);
|
||||
if (closingBraceIndex === -1) {
|
||||
evaluatedTemplateArr.push(template.slice(openingBraceIndex));
|
||||
break;
|
||||
}
|
||||
if (template[openingBraceIndex + 1] === "{" && template[closingBraceIndex + 1] === "}") {
|
||||
evaluatedTemplateArr.push(template.slice(openingBraceIndex + 1, closingBraceIndex));
|
||||
currentIndex = closingBraceIndex + 2;
|
||||
}
|
||||
const parameterName = template.substring(openingBraceIndex + 1, closingBraceIndex);
|
||||
if (parameterName.includes("#")) {
|
||||
const [refName, attrName] = parameterName.split("#");
|
||||
evaluatedTemplateArr.push(getAttr(templateContext[refName], attrName));
|
||||
}
|
||||
else {
|
||||
evaluatedTemplateArr.push(templateContext[parameterName]);
|
||||
}
|
||||
currentIndex = closingBraceIndex + 1;
|
||||
}
|
||||
return evaluatedTemplateArr.join("");
|
||||
};
|
||||
Reference in New Issue
Block a user