ddb-table
Version:
Strongly typed library for querying and modeling DynamoDB documents.
27 lines (26 loc) • 3.83 kB
JavaScript
;
exports.__esModule = true;
exports.default = void 0;
var _ExpressionAttributes = _interopRequireDefault(require("./ExpressionAttributes"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
class ExpressionAttributeNames extends _ExpressionAttributes.default {
static escape(name) {
return `#${name.replace(/[^\w_]/, '')}`;
}
add(...path) {
let res = '';
for (const key of path) {
if (res && typeof key === 'number') {
res += `[${key}]`;
continue;
}
const keyStr = String(key);
const escapedName = ExpressionAttributeNames.escape(keyStr);
const name = this.setValue(escapedName, keyStr);
res = res ? `${res}.${name}` : name;
}
return res;
}
}
exports.default = ExpressionAttributeNames;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfRXhwcmVzc2lvbkF0dHJpYnV0ZXMiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiRXhwcmVzc2lvbkF0dHJpYnV0ZU5hbWVzIiwiRXhwcmVzc2lvbkF0dHJpYnV0ZXMiLCJlc2NhcGUiLCJuYW1lIiwicmVwbGFjZSIsImFkZCIsInBhdGgiLCJyZXMiLCJrZXkiLCJrZXlTdHIiLCJTdHJpbmciLCJlc2NhcGVkTmFtZSIsInNldFZhbHVlIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leHByZXNzaW9ucy9FeHByZXNzaW9uQXR0cmlidXRlTmFtZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEV4cHJlc3Npb25BdHRyaWJ1dGVzIGZyb20gJy4vRXhwcmVzc2lvbkF0dHJpYnV0ZXMnO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBFeHByZXNzaW9uQXR0cmlidXRlTmFtZXM8XG4gIFQsXG4+IGV4dGVuZHMgRXhwcmVzc2lvbkF0dHJpYnV0ZXM8c3RyaW5nPiB7XG4gIHB1YmxpYyBzdGF0aWMgZXNjYXBlKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAjJHtuYW1lLnJlcGxhY2UoL1teXFx3X10vLCAnJyl9YDtcbiAgfVxuXG4gIHB1YmxpYyBhZGQ8XG4gICAgSzEgZXh0ZW5kcyBrZXlvZiBULFxuICAgIEsyIGV4dGVuZHMga2V5b2YgVFtLMV0sXG4gICAgSzMgZXh0ZW5kcyBrZXlvZiBUW0sxXVtLMl0sXG4gICAgSzQgZXh0ZW5kcyBrZXlvZiBUW0sxXVtLMl1bSzNdLFxuICAgIEs1IGV4dGVuZHMga2V5b2YgVFtLMV1bSzJdW0szXVtLNF0sXG4gICAgSzYgZXh0ZW5kcyBrZXlvZiBUW0sxXVtLMl1bSzNdW0s0XVtLNV0sXG4gICAgSzcgZXh0ZW5kcyBrZXlvZiBUW0sxXVtLMl1bSzNdW0s0XVtLNV1bSzZdLFxuICAgIEs4IGV4dGVuZHMga2V5b2YgVFtLMV1bSzJdW0szXVtLNF1bSzVdW0s2XVtLN10sXG4gID4oXG4gICAgLi4ucGF0aDogW0sxLCBLMj8sIEszPywgSzQ/LCBLNT8sIEs2PywgSzc/LCBLOD8sIC4uLihzdHJpbmcgfCBudW1iZXIpW11dXG4gICk6IHN0cmluZyB7XG4gICAgbGV0IHJlcyA9ICcnO1xuICAgIGZvciAoY29uc3Qga2V5IG9mIHBhdGgpIHtcbiAgICAgIGlmIChyZXMgJiYgdHlwZW9mIGtleSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgcmVzICs9IGBbJHtrZXl9XWA7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBrZXlTdHIgPSBTdHJpbmcoa2V5KTtcbiAgICAgIGNvbnN0IGVzY2FwZWROYW1lID0gRXhwcmVzc2lvbkF0dHJpYnV0ZU5hbWVzLmVzY2FwZShrZXlTdHIpO1xuICAgICAgY29uc3QgbmFtZSA9IHRoaXMuc2V0VmFsdWUoZXNjYXBlZE5hbWUsIGtleVN0cik7XG5cbiAgICAgIHJlcyA9IHJlcyA/IGAke3Jlc30uJHtuYW1lfWAgOiBuYW1lO1xuICAgIH1cblxuICAgIHJldHVybiByZXM7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLElBQUFBLHFCQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFBMEQsU0FBQUQsdUJBQUFFLEdBQUEsV0FBQUEsR0FBQSxJQUFBQSxHQUFBLENBQUFDLFVBQUEsR0FBQUQsR0FBQSxLQUFBRSxPQUFBLEVBQUFGLEdBQUE7QUFFM0MsTUFBTUcsd0JBQXdCLFNBRW5DQyw2QkFBb0IsQ0FBUztFQUNyQyxPQUFjQyxNQUFNQSxDQUFDQyxJQUFZLEVBQVU7SUFDekMsT0FBUSxJQUFHQSxJQUFJLENBQUNDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFFLEVBQUM7RUFDekM7RUFFT0MsR0FBR0EsQ0FVUixHQUFHQyxJQUFxRSxFQUNoRTtJQUNSLElBQUlDLEdBQUcsR0FBRyxFQUFFO0lBQ1osS0FBSyxNQUFNQyxHQUFHLElBQUlGLElBQUksRUFBRTtNQUN0QixJQUFJQyxHQUFHLElBQUksT0FBT0MsR0FBRyxLQUFLLFFBQVEsRUFBRTtRQUNsQ0QsR0FBRyxJQUFLLElBQUdDLEdBQUksR0FBRTtRQUNqQjtNQUNGO01BRUEsTUFBTUMsTUFBTSxHQUFHQyxNQUFNLENBQUNGLEdBQUcsQ0FBQztNQUMxQixNQUFNRyxXQUFXLEdBQUdYLHdCQUF3QixDQUFDRSxNQUFNLENBQUNPLE1BQU0sQ0FBQztNQUMzRCxNQUFNTixJQUFJLEdBQUcsSUFBSSxDQUFDUyxRQUFRLENBQUNELFdBQVcsRUFBRUYsTUFBTSxDQUFDO01BRS9DRixHQUFHLEdBQUdBLEdBQUcsR0FBSSxHQUFFQSxHQUFJLElBQUdKLElBQUssRUFBQyxHQUFHQSxJQUFJO0lBQ3JDO0lBRUEsT0FBT0ksR0FBRztFQUNaO0FBQ0Y7QUFBQ00sT0FBQSxDQUFBZCxPQUFBLEdBQUFDLHdCQUFBIn0=