UNPKG

@darkpay/dark-types

Version:

JavaScript type definitions for Darkdot blockchain.

77 lines (76 loc) 2.22 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.IpfsContent = exports.OptionIpfsContent = exports.OptionContent = exports.Content = exports.Hyper = exports.IPFS = exports.Raw = exports.None = void 0; const types_1 = require("@polkadot/types"); const dark_utils_1 = require("@darkpay/dark-utils"); const registry_1 = __importDefault(require("../registry")); class None extends types_1.Null { } exports.None = None; class Raw extends types_1.Text { } exports.Raw = Raw; class IPFS extends types_1.Text { } exports.IPFS = IPFS; class Hyper extends types_1.Text { } exports.Hyper = Hyper; class Content extends types_1.Enum { constructor(value) { super(registry_1.default, { None, Raw, IPFS, Hyper }, value); } get isNone() { return this.type === 'None'; } get isRaw() { return this.type === 'Raw'; } get isIpfs() { return this.type === 'IPFS'; } get isHyper() { return this.type === 'Hyper'; } get asHyper() { return this.value; } get asRaw() { return this.value; } get asIpfs() { return this.value; } } exports.Content = Content; const createIpfsContent = (value) => ({ IPFS: new types_1.Text(registry_1.default, value) }); const createNoneContent = () => ({ None: new types_1.Null(registry_1.default) }); const createContent = (value) => dark_utils_1.nonEmptyStr(value) ? createIpfsContent(value) : createNoneContent(); class OptionContent extends types_1.Option { constructor(value) { super(registry_1.default, 'Option<Content>', value); } } exports.OptionContent = OptionContent; class OptionIpfsContent extends OptionContent { constructor(value) { super(value ? createIpfsContent(value) : new types_1.Null(registry_1.default)); } } exports.OptionIpfsContent = OptionIpfsContent; class IpfsContent extends Content { constructor(value) { super(createContent(value)); } } exports.IpfsContent = IpfsContent;