@darkpay/dark-types
Version:
JavaScript type definitions for Darkdot blockchain.
77 lines (76 loc) • 2.22 kB
JavaScript
;
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;