dune-ts
Version:
Unofficial Dune Analytics Typescript Client
30 lines • 4.29 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.ParameterType = exports.Parameters = void 0;
const Parameter_1 = require("./Parameter");
Object.defineProperty(exports, "ParameterType", { enumerable: true, get: function () { return Parameter_1.ParameterType; } });
const validate = (parameterDatas) => {
parameterDatas.forEach((parameterData, index) => {
if (!(parameterData.type === Parameter_1.ParameterType.Datetime ||
parameterData.type === Parameter_1.ParameterType.Number ||
parameterData.type === Parameter_1.ParameterType.Text))
throw new Error(`Expecting 'type' to be 'datetime', 'number' or 'text (parameter at index ${index})`);
});
};
const PARAMS = {
[Parameter_1.ParameterType.Datetime]: Parameter_1.DatetimeParameter,
[Parameter_1.ParameterType.Number]: Parameter_1.NumberParameter,
[Parameter_1.ParameterType.Text]: Parameter_1.TextParameter,
};
class Parameters {
static create(parameterDatas) {
if (parameterDatas === undefined)
return [];
validate(parameterDatas);
return parameterDatas.map(({ key, type, value }) => {
return new PARAMS[type]({ key, value }).toObject();
});
}
}
exports.Parameters = Parameters;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoic3JjLyIsInNvdXJjZXMiOlsiUGFyYW1ldGVycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyQ0FNb0I7QUF3Q1gsOEZBMUNQLHlCQUFhLE9BMENPO0FBbEN0QixNQUFNLFFBQVEsR0FBRyxDQUFDLGNBQThCLEVBQUUsRUFBRTtJQUNsRCxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsYUFBYSxFQUFFLEtBQUssRUFBRSxFQUFFO1FBQzlDLElBQ0UsQ0FBQyxDQUNDLGFBQWEsQ0FBQyxJQUFJLEtBQUsseUJBQWEsQ0FBQyxRQUFRO1lBQzdDLGFBQWEsQ0FBQyxJQUFJLEtBQUsseUJBQWEsQ0FBQyxNQUFNO1lBQzNDLGFBQWEsQ0FBQyxJQUFJLEtBQUsseUJBQWEsQ0FBQyxJQUFJLENBQzFDO1lBRUQsTUFBTSxJQUFJLEtBQUssQ0FDYiw0RUFBNEUsS0FBSyxHQUFHLENBQ3JGLENBQUE7SUFDTCxDQUFDLENBQUMsQ0FBQTtBQUNKLENBQUMsQ0FBQTtBQUVELE1BQU0sTUFBTSxHQUFHO0lBQ2IsQ0FBQyx5QkFBYSxDQUFDLFFBQVEsQ0FBQyxFQUFFLDZCQUFpQjtJQUMzQyxDQUFDLHlCQUFhLENBQUMsTUFBTSxDQUFDLEVBQUUsMkJBQWU7SUFDdkMsQ0FBQyx5QkFBYSxDQUFDLElBQUksQ0FBQyxFQUFFLHlCQUFhO0NBQ3BDLENBQUE7QUFFRCxNQUFhLFVBQVU7SUFDckIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUErQjtRQUMzQyxJQUFJLGNBQWMsS0FBSyxTQUFTO1lBQUUsT0FBTyxFQUFFLENBQUE7UUFFM0MsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFBO1FBRXhCLE9BQU8sY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBRWpELE9BQU8sSUFBSSxNQUFNLENBQUMsSUFBcUIsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUE7UUFDckUsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0NBQ0Y7QUFYRCxnQ0FXQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERhdGV0aW1lUGFyYW1ldGVyLFxuICBOdW1iZXJQYXJhbWV0ZXIsXG4gIFBhcmFtZXRlckRhdGEsXG4gIFBhcmFtZXRlclR5cGUsXG4gIFRleHRQYXJhbWV0ZXIsXG59IGZyb20gJy4vUGFyYW1ldGVyJ1xuXG5leHBvcnQgdHlwZSBQYXJhbWV0ZXJEYXRhcyA9IEFycmF5PFxuICBQYXJhbWV0ZXJEYXRhPHN0cmluZyB8IERhdGU+ICYgeyB0eXBlOiB1bmtub3duIH1cbj5cblxuY29uc3QgdmFsaWRhdGUgPSAocGFyYW1ldGVyRGF0YXM6IFBhcmFtZXRlckRhdGFzKSA9PiB7XG4gIHBhcmFtZXRlckRhdGFzLmZvckVhY2goKHBhcmFtZXRlckRhdGEsIGluZGV4KSA9PiB7XG4gICAgaWYgKFxuICAgICAgIShcbiAgICAgICAgcGFyYW1ldGVyRGF0YS50eXBlID09PSBQYXJhbWV0ZXJUeXBlLkRhdGV0aW1lIHx8XG4gICAgICAgIHBhcmFtZXRlckRhdGEudHlwZSA9PT0gUGFyYW1ldGVyVHlwZS5OdW1iZXIgfHxcbiAgICAgICAgcGFyYW1ldGVyRGF0YS50eXBlID09PSBQYXJhbWV0ZXJUeXBlLlRleHRcbiAgICAgIClcbiAgICApXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBFeHBlY3RpbmcgJ3R5cGUnIHRvIGJlICdkYXRldGltZScsICdudW1iZXInIG9yICd0ZXh0IChwYXJhbWV0ZXIgYXQgaW5kZXggJHtpbmRleH0pYCxcbiAgICAgIClcbiAgfSlcbn1cblxuY29uc3QgUEFSQU1TID0ge1xuICBbUGFyYW1ldGVyVHlwZS5EYXRldGltZV06IERhdGV0aW1lUGFyYW1ldGVyLFxuICBbUGFyYW1ldGVyVHlwZS5OdW1iZXJdOiBOdW1iZXJQYXJhbWV0ZXIsXG4gIFtQYXJhbWV0ZXJUeXBlLlRleHRdOiBUZXh0UGFyYW1ldGVyLFxufVxuXG5leHBvcnQgY2xhc3MgUGFyYW1ldGVycyB7XG4gIHN0YXRpYyBjcmVhdGUocGFyYW1ldGVyRGF0YXM/OiBQYXJhbWV0ZXJEYXRhcykge1xuICAgIGlmIChwYXJhbWV0ZXJEYXRhcyA9PT0gdW5kZWZpbmVkKSByZXR1cm4gW11cblxuICAgIHZhbGlkYXRlKHBhcmFtZXRlckRhdGFzKVxuXG4gICAgcmV0dXJuIHBhcmFtZXRlckRhdGFzLm1hcCgoeyBrZXksIHR5cGUsIHZhbHVlIH0pID0+IHtcbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgICAgIHJldHVybiBuZXcgUEFSQU1TW3R5cGUgYXMgUGFyYW1ldGVyVHlwZV0oeyBrZXksIHZhbHVlIH0pLnRvT2JqZWN0KClcbiAgICB9KVxuICB9XG59XG5cbmV4cG9ydCB7IFBhcmFtZXRlclR5cGUgfVxuIl19
;