@metamask/snaps-utils
Version:
A collection of utilities for MetaMask Snaps
70 lines • 2.68 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.isCronjobSpecificationArray = exports.CronjobSpecificationArrayStruct = exports.isCronjobSpecification = exports.CronjobSpecificationStruct = exports.parseCronExpression = exports.CronExpressionStruct = exports.CronjobRpcRequestStruct = void 0;
const superstruct_1 = require("@metamask/superstruct");
const utils_1 = require("@metamask/utils");
const cron_parser_1 = require("cron-parser");
exports.CronjobRpcRequestStruct = (0, superstruct_1.object)({
jsonrpc: (0, superstruct_1.optional)(utils_1.JsonRpcVersionStruct),
id: (0, superstruct_1.optional)(utils_1.JsonRpcIdStruct),
method: (0, superstruct_1.string)(),
params: (0, superstruct_1.optional)(utils_1.JsonRpcParamsStruct),
});
exports.CronExpressionStruct = (0, superstruct_1.refine)((0, superstruct_1.string)(), 'CronExpression', (value) => {
try {
(0, cron_parser_1.parseExpression)(value);
return true;
}
catch {
return false;
}
});
/**
* Parses a cron expression.
*
* @param expression - Expression to parse.
* @returns A CronExpression class instance.
*/
function parseCronExpression(expression) {
const ensureStringExpression = (0, superstruct_1.create)(expression, exports.CronExpressionStruct);
return (0, cron_parser_1.parseExpression)(ensureStringExpression);
}
exports.parseCronExpression = parseCronExpression;
exports.CronjobSpecificationStruct = (0, superstruct_1.object)({
expression: exports.CronExpressionStruct,
request: exports.CronjobRpcRequestStruct,
});
/**
* Check if the given value is a {@link CronjobSpecification} object.
*
* @param value - The value to check.
* @returns Whether the value is a valid {@link CronjobSpecification} object.
*/
function isCronjobSpecification(value) {
try {
(0, superstruct_1.create)(value, exports.CronjobSpecificationStruct);
return true;
}
catch {
return false;
}
}
exports.isCronjobSpecification = isCronjobSpecification;
exports.CronjobSpecificationArrayStruct = (0, superstruct_1.array)(exports.CronjobSpecificationStruct);
/**
* Check if the given value is an array of {@link CronjobSpecification} objects.
*
* @param value - The value to check.
* @returns Whether the value is a valid array of {@link CronjobSpecification} objects.
*/
function isCronjobSpecificationArray(value) {
try {
(0, superstruct_1.create)(value, exports.CronjobSpecificationArrayStruct);
return true;
}
catch {
return false;
}
}
exports.isCronjobSpecificationArray = isCronjobSpecificationArray;
//# sourceMappingURL=cronjob.cjs.map