UNPKG

@vue-interface/component-registry

Version:
72 lines (71 loc) 2.18 kB
var v = Object.defineProperty; var _ = (t, e, r) => e in t ? v(t, e, { enumerable: !0, configurable: !0, writable: !0, value: r }) : t[e] = r; var l = (t, e, r) => (_(t, typeof e != "symbol" ? e + "" : e, r), r); var c = function() { return c = Object.assign || function(e) { for (var r, n = 1, i = arguments.length; n < i; n++) { r = arguments[n]; for (var s in r) Object.prototype.hasOwnProperty.call(r, s) && (e[s] = r[s]); } return e; }, c.apply(this, arguments); }; function w(t) { return t.toLowerCase(); } var E = [/([a-z0-9])([A-Z])/g, /([A-Z])([A-Z][a-z])/g], R = /[^A-Z0-9]+/gi; function A(t, e) { e === void 0 && (e = {}); for (var r = e.splitRegexp, n = r === void 0 ? E : r, i = e.stripRegexp, s = i === void 0 ? R : i, h = e.transform, p = h === void 0 ? w : h, g = e.delimiter, d = g === void 0 ? " " : g, a = m(m(t, n, "$1\0$2"), s, "\0"), u = 0, f = a.length; a.charAt(u) === "\0"; ) u++; for (; a.charAt(f - 1) === "\0"; ) f--; return a.slice(u, f).split("\0").map(p).join(d); } function m(t, e, r) { return e instanceof RegExp ? t.replace(e, r) : e.reduce(function(n, i) { return n.replace(i, r); }, t); } function b(t, e) { return e === void 0 && (e = {}), A(t, c({ delimiter: "." }, e)); } function o(t, e) { return e === void 0 && (e = {}), b(t, c({ delimiter: "-" }, e)); } class j { constructor(e = {}) { l(this, "components"); this.components = /* @__PURE__ */ new Map(), Object.entries(e).forEach(([r, n]) => { this.register(r, n); }); } get(e) { const r = this.components.get( e = o(e) ); if (r) return r; throw new Error(`"${e}" has not been registered yet!`); } register(e, r) { return typeof e == "object" ? (Object.entries(e).forEach(([n, i]) => { this.register(o(n), i); }), this) : (this.components.set(o(e), r), this); } remove(e) { return this.components.delete(o(e)), this; } reset() { return this.components = /* @__PURE__ */ new Map(), this; } } function C(t = {}) { return new j(t); } export { j as ComponentRegistry, C as factory }; //# sourceMappingURL=component-registry.js.map