UNPKG

dune-ts

Version:

Unofficial Dune Analytics Typescript Client

94 lines 9.65 kB
"use strict"; 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==