dune-ts
Version:
Unofficial Dune Analytics Typescript Client
94 lines • 9.65 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.TextParameter = exports.DatetimeParameter = exports.NumberParameter = exports.Parameter = exports.ParameterType = void 0;
const utils_1 = require("../utils");
var ParameterType;
(function (ParameterType) {
ParameterType["Datetime"] = "datetime";
ParameterType["Number"] = "number";
ParameterType["Text"] = "text";
})(ParameterType = exports.ParameterType || (exports.ParameterType = {}));
class Parameter {
constructor(parameterData) {
this.validate(parameterData);
this.key = parameterData.key;
this.value = parameterData.value;
}
validateKeys(parameterData) {
;
['key', 'value'].forEach((key) => {
if (parameterData[key] === undefined)
throw new Error(`Missing parameter prop '${key}'`);
});
}
isString(parameterData, propName) {
if (typeof parameterData[propName] !== 'string')
throw new Error(`Expecting '${propName}' prop to be of type 'string'`);
}
validate(parameterData) {
this.validateKeys(parameterData);
this.isString(parameterData, 'key');
}
}
exports.Parameter = Parameter;
class NumberParameter extends Parameter {
constructor() {
super(...arguments);
this.type = ParameterType.Number;
}
validate(parameterData) {
super.validate(parameterData);
this.isString(parameterData, 'value');
}
toObject() {
return {
key: this.key,
type: this.type,
value: this.value,
};
}
}
exports.NumberParameter = NumberParameter;
class DatetimeParameter extends Parameter {
constructor() {
super(...arguments);
this.type = ParameterType.Datetime;
}
validate(parameterData) {
super.validate(parameterData);
if (!(parameterData.value instanceof Date))
throw new Error(`Expecting 'value' prop to be Date instance for Datetime parameters`);
}
serializeDate(date) {
return date.toISOString().replace('T', ' ').slice(0, -5);
}
toObject() {
return {
key: this.key,
type: this.type,
value: this.serializeDate(this.value),
};
}
}
exports.DatetimeParameter = DatetimeParameter;
class TextParameter extends Parameter {
constructor() {
super(...arguments);
this.type = ParameterType.Text;
}
validate(parameterData) {
super.validate(parameterData);
this.isString(parameterData, 'value');
}
toObject() {
return {
key: this.key,
type: this.type,
value: (0, utils_1.isEthereumAddress)(this.value)
? `"${this.value.toLowerCase()}"`
: this.value,
};
}
}
exports.TextParameter = TextParameter;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGFyYW1ldGVyLmpzIiwic291cmNlUm9vdCI6InNyYy8iLCJzb3VyY2VzIjpbIlBhcmFtZXRlcnMvUGFyYW1ldGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG9DQUE0QztBQUU1QyxJQUFZLGFBSVg7QUFKRCxXQUFZLGFBQWE7SUFDdkIsc0NBQXFCLENBQUE7SUFDckIsa0NBQWlCLENBQUE7SUFDakIsOEJBQWEsQ0FBQTtBQUNmLENBQUMsRUFKVyxhQUFhLEdBQWIscUJBQWEsS0FBYixxQkFBYSxRQUl4QjtBQU9ELE1BQXNCLFNBQVM7SUFLN0IsWUFBWSxhQUErQjtRQUN6QyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFBO1FBQzVCLElBQUksQ0FBQyxHQUFHLEdBQUcsYUFBYSxDQUFDLEdBQUcsQ0FBQTtRQUM1QixJQUFJLENBQUMsS0FBSyxHQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUE7SUFDbEMsQ0FBQztJQUVTLFlBQVksQ0FBQyxhQUErQjtRQUNwRCxDQUFDO1FBQUEsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDaEMsSUFBSSxhQUFhLENBQUMsR0FBNkIsQ0FBQyxLQUFLLFNBQVM7Z0JBQzVELE1BQU0sSUFBSSxLQUFLLENBQUMsMkJBQTJCLEdBQUcsR0FBRyxDQUFDLENBQUE7UUFDdEQsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRVMsUUFBUSxDQUNoQixhQUErQixFQUMvQixRQUFnQztRQUVoQyxJQUFJLE9BQU8sYUFBYSxDQUFDLFFBQVEsQ0FBQyxLQUFLLFFBQVE7WUFDN0MsTUFBTSxJQUFJLEtBQUssQ0FBQyxjQUFjLFFBQVEsK0JBQStCLENBQUMsQ0FBQTtJQUMxRSxDQUFDO0lBRVMsUUFBUSxDQUFDLGFBQStCO1FBQ2hELElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUE7UUFDaEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDLENBQUE7SUFDckMsQ0FBQztDQUdGO0FBaENELDhCQWdDQztBQUVELE1BQWEsZUFBZ0IsU0FBUSxTQUFpQjtJQUF0RDs7UUFDRSxTQUFJLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQTtJQWdCN0IsQ0FBQztJQVpDLFFBQVEsQ0FBQyxhQUFvQztRQUMzQyxLQUFLLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFBO1FBQzdCLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFBO0lBQ3ZDLENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTztZQUNMLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRztZQUNiLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNmLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztTQUNsQixDQUFBO0lBQ0gsQ0FBQztDQUNGO0FBakJELDBDQWlCQztBQUVELE1BQWEsaUJBQWtCLFNBQVEsU0FBZTtJQUF0RDs7UUFDRSxTQUFJLEdBQUcsYUFBYSxDQUFDLFFBQVEsQ0FBQTtJQXVCL0IsQ0FBQztJQW5CQyxRQUFRLENBQUMsYUFBa0M7UUFDekMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQTtRQUM3QixJQUFJLENBQUMsQ0FBQyxhQUFhLENBQUMsS0FBSyxZQUFZLElBQUksQ0FBQztZQUN4QyxNQUFNLElBQUksS0FBSyxDQUNiLG9FQUFvRSxDQUNyRSxDQUFBO0lBQ0wsQ0FBQztJQUVELGFBQWEsQ0FBQyxJQUFVO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQzFELENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTztZQUNMLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRztZQUNiLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNmLEtBQUssRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7U0FDdEMsQ0FBQTtJQUNILENBQUM7Q0FDRjtBQXhCRCw4Q0F3QkM7QUFFRCxNQUFhLGFBQWMsU0FBUSxTQUFpQjtJQUFwRDs7UUFDRSxTQUFJLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQTtJQWtCM0IsQ0FBQztJQWRDLFFBQVEsQ0FBQyxhQUFvQztRQUMzQyxLQUFLLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFBO1FBQzdCLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFBO0lBQ3ZDLENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTztZQUNMLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRztZQUNiLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNmLEtBQUssRUFBRSxJQUFBLHlCQUFpQixFQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7Z0JBQ2xDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLEdBQUc7Z0JBQ2pDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSztTQUNmLENBQUE7SUFDSCxDQUFDO0NBQ0Y7QUFuQkQsc0NBbUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNFdGhlcmV1bUFkZHJlc3MgfSBmcm9tICcuLi91dGlscydcblxuZXhwb3J0IGVudW0gUGFyYW1ldGVyVHlwZSB7XG4gIERhdGV0aW1lID0gJ2RhdGV0aW1lJyxcbiAgTnVtYmVyID0gJ251bWJlcicsXG4gIFRleHQgPSAndGV4dCcsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFyYW1ldGVyRGF0YTxUPiB7XG4gIGtleTogc3RyaW5nXG4gIHZhbHVlOiBUXG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBQYXJhbWV0ZXI8VD4ge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkga2V5OiBzdHJpbmdcbiAgYWJzdHJhY3QgcmVhZG9ubHkgdHlwZTogc3RyaW5nXG4gIHByb3RlY3RlZCByZWFkb25seSB2YWx1ZTogVFxuXG4gIGNvbnN0cnVjdG9yKHBhcmFtZXRlckRhdGE6IFBhcmFtZXRlckRhdGE8VD4pIHtcbiAgICB0aGlzLnZhbGlkYXRlKHBhcmFtZXRlckRhdGEpXG4gICAgdGhpcy5rZXkgPSBwYXJhbWV0ZXJEYXRhLmtleVxuICAgIHRoaXMudmFsdWUgPSBwYXJhbWV0ZXJEYXRhLnZhbHVlXG4gIH1cblxuICBwcm90ZWN0ZWQgdmFsaWRhdGVLZXlzKHBhcmFtZXRlckRhdGE6IFBhcmFtZXRlckRhdGE8VD4pOiB2b2lkIHtcbiAgICA7WydrZXknLCAndmFsdWUnXS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgIGlmIChwYXJhbWV0ZXJEYXRhW2tleSBhcyBrZXlvZiBQYXJhbWV0ZXJEYXRhPFQ+XSA9PT0gdW5kZWZpbmVkKVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE1pc3NpbmcgcGFyYW1ldGVyIHByb3AgJyR7a2V5fSdgKVxuICAgIH0pXG4gIH1cblxuICBwcm90ZWN0ZWQgaXNTdHJpbmcoXG4gICAgcGFyYW1ldGVyRGF0YTogUGFyYW1ldGVyRGF0YTxUPixcbiAgICBwcm9wTmFtZToga2V5b2YgUGFyYW1ldGVyRGF0YTxUPixcbiAgKSB7XG4gICAgaWYgKHR5cGVvZiBwYXJhbWV0ZXJEYXRhW3Byb3BOYW1lXSAhPT0gJ3N0cmluZycpXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGluZyAnJHtwcm9wTmFtZX0nIHByb3AgdG8gYmUgb2YgdHlwZSAnc3RyaW5nJ2ApXG4gIH1cblxuICBwcm90ZWN0ZWQgdmFsaWRhdGUocGFyYW1ldGVyRGF0YTogUGFyYW1ldGVyRGF0YTxUPik6IHZvaWQge1xuICAgIHRoaXMudmFsaWRhdGVLZXlzKHBhcmFtZXRlckRhdGEpXG4gICAgdGhpcy5pc1N0cmluZyhwYXJhbWV0ZXJEYXRhLCAna2V5JylcbiAgfVxuXG4gIGFic3RyYWN0IHRvT2JqZWN0KCk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz5cbn1cblxuZXhwb3J0IGNsYXNzIE51bWJlclBhcmFtZXRlciBleHRlbmRzIFBhcmFtZXRlcjxzdHJpbmc+IHtcbiAgdHlwZSA9IFBhcmFtZXRlclR5cGUuTnVtYmVyXG5cbiAgZGVjbGFyZSB2YWx1ZTogc3RyaW5nXG5cbiAgdmFsaWRhdGUocGFyYW1ldGVyRGF0YTogUGFyYW1ldGVyRGF0YTxzdHJpbmc+KTogdm9pZCB7XG4gICAgc3VwZXIudmFsaWRhdGUocGFyYW1ldGVyRGF0YSlcbiAgICB0aGlzLmlzU3RyaW5nKHBhcmFtZXRlckRhdGEsICd2YWx1ZScpXG4gIH1cblxuICB0b09iamVjdCgpIHtcbiAgICByZXR1cm4ge1xuICAgICAga2V5OiB0aGlzLmtleSxcbiAgICAgIHR5cGU6IHRoaXMudHlwZSxcbiAgICAgIHZhbHVlOiB0aGlzLnZhbHVlLFxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgRGF0ZXRpbWVQYXJhbWV0ZXIgZXh0ZW5kcyBQYXJhbWV0ZXI8RGF0ZT4ge1xuICB0eXBlID0gUGFyYW1ldGVyVHlwZS5EYXRldGltZVxuXG4gIGRlY2xhcmUgdmFsdWU6IERhdGVcblxuICB2YWxpZGF0ZShwYXJhbWV0ZXJEYXRhOiBQYXJhbWV0ZXJEYXRhPERhdGU+KTogdm9pZCB7XG4gICAgc3VwZXIudmFsaWRhdGUocGFyYW1ldGVyRGF0YSlcbiAgICBpZiAoIShwYXJhbWV0ZXJEYXRhLnZhbHVlIGluc3RhbmNlb2YgRGF0ZSkpXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBFeHBlY3RpbmcgJ3ZhbHVlJyBwcm9wIHRvIGJlIERhdGUgaW5zdGFuY2UgZm9yIERhdGV0aW1lIHBhcmFtZXRlcnNgLFxuICAgICAgKVxuICB9XG5cbiAgc2VyaWFsaXplRGF0ZShkYXRlOiBEYXRlKSB7XG4gICAgcmV0dXJuIGRhdGUudG9JU09TdHJpbmcoKS5yZXBsYWNlKCdUJywgJyAnKS5zbGljZSgwLCAtNSlcbiAgfVxuXG4gIHRvT2JqZWN0KCkge1xuICAgIHJldHVybiB7XG4gICAgICBrZXk6IHRoaXMua2V5LFxuICAgICAgdHlwZTogdGhpcy50eXBlLFxuICAgICAgdmFsdWU6IHRoaXMuc2VyaWFsaXplRGF0ZSh0aGlzLnZhbHVlKSxcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRleHRQYXJhbWV0ZXIgZXh0ZW5kcyBQYXJhbWV0ZXI8c3RyaW5nPiB7XG4gIHR5cGUgPSBQYXJhbWV0ZXJUeXBlLlRleHRcblxuICBkZWNsYXJlIHZhbHVlOiBzdHJpbmdcblxuICB2YWxpZGF0ZShwYXJhbWV0ZXJEYXRhOiBQYXJhbWV0ZXJEYXRhPHN0cmluZz4pOiB2b2lkIHtcbiAgICBzdXBlci52YWxpZGF0ZShwYXJhbWV0ZXJEYXRhKVxuICAgIHRoaXMuaXNTdHJpbmcocGFyYW1ldGVyRGF0YSwgJ3ZhbHVlJylcbiAgfVxuXG4gIHRvT2JqZWN0KCkge1xuICAgIHJldHVybiB7XG4gICAgICBrZXk6IHRoaXMua2V5LFxuICAgICAgdHlwZTogdGhpcy50eXBlLFxuICAgICAgdmFsdWU6IGlzRXRoZXJldW1BZGRyZXNzKHRoaXMudmFsdWUpXG4gICAgICAgID8gYFwiJHt0aGlzLnZhbHVlLnRvTG93ZXJDYXNlKCl9XCJgXG4gICAgICAgIDogdGhpcy52YWx1ZSxcbiAgICB9XG4gIH1cbn1cbiJdfQ==
;