235 lines
8.1 KiB
JavaScript
235 lines
8.1 KiB
JavaScript
|
import _typeof from "./typeof.js";
|
||
|
import setFunctionName from "./setFunctionName.js";
|
||
|
import toPropertyKey from "./toPropertyKey.js";
|
||
|
function old_createMetadataMethodsForProperty(e, t, a, r) {
|
||
|
return {
|
||
|
getMetadata: function getMetadata(o) {
|
||
|
old_assertNotFinished(r, "getMetadata"), old_assertMetadataKey(o);
|
||
|
var i = e[o];
|
||
|
if (void 0 !== i) if (1 === t) {
|
||
|
var n = i["public"];
|
||
|
if (void 0 !== n) return n[a];
|
||
|
} else if (2 === t) {
|
||
|
var l = i["private"];
|
||
|
if (void 0 !== l) return l.get(a);
|
||
|
} else if (Object.hasOwnProperty.call(i, "constructor")) return i.constructor;
|
||
|
},
|
||
|
setMetadata: function setMetadata(o, i) {
|
||
|
old_assertNotFinished(r, "setMetadata"), old_assertMetadataKey(o);
|
||
|
var n = e[o];
|
||
|
if (void 0 === n && (n = e[o] = {}), 1 === t) {
|
||
|
var l = n["public"];
|
||
|
void 0 === l && (l = n["public"] = {}), l[a] = i;
|
||
|
} else if (2 === t) {
|
||
|
var s = n.priv;
|
||
|
void 0 === s && (s = n["private"] = new Map()), s.set(a, i);
|
||
|
} else n.constructor = i;
|
||
|
}
|
||
|
};
|
||
|
}
|
||
|
function old_convertMetadataMapToFinal(e, t) {
|
||
|
var a = e[Symbol.metadata || Symbol["for"]("Symbol.metadata")],
|
||
|
r = Object.getOwnPropertySymbols(t);
|
||
|
if (0 !== r.length) {
|
||
|
for (var o = 0; o < r.length; o++) {
|
||
|
var i = r[o],
|
||
|
n = t[i],
|
||
|
l = a ? a[i] : null,
|
||
|
s = n["public"],
|
||
|
c = l ? l["public"] : null;
|
||
|
s && c && Object.setPrototypeOf(s, c);
|
||
|
var d = n["private"];
|
||
|
if (d) {
|
||
|
var u = Array.from(d.values()),
|
||
|
f = l ? l["private"] : null;
|
||
|
f && (u = u.concat(f)), n["private"] = u;
|
||
|
}
|
||
|
l && Object.setPrototypeOf(n, l);
|
||
|
}
|
||
|
a && Object.setPrototypeOf(t, a), e[Symbol.metadata || Symbol["for"]("Symbol.metadata")] = t;
|
||
|
}
|
||
|
}
|
||
|
function old_createAddInitializerMethod(e, t) {
|
||
|
return function (a) {
|
||
|
old_assertNotFinished(t, "addInitializer"), old_assertCallable(a, "An initializer"), e.push(a);
|
||
|
};
|
||
|
}
|
||
|
function old_memberDec(e, t, a, r, o, i, n, l, s) {
|
||
|
var c;
|
||
|
switch (i) {
|
||
|
case 1:
|
||
|
c = "accessor";
|
||
|
break;
|
||
|
case 2:
|
||
|
c = "method";
|
||
|
break;
|
||
|
case 3:
|
||
|
c = "getter";
|
||
|
break;
|
||
|
case 4:
|
||
|
c = "setter";
|
||
|
break;
|
||
|
default:
|
||
|
c = "field";
|
||
|
}
|
||
|
var d,
|
||
|
u,
|
||
|
f = {
|
||
|
kind: c,
|
||
|
name: l ? "#" + t : toPropertyKey(t),
|
||
|
isStatic: n,
|
||
|
isPrivate: l
|
||
|
},
|
||
|
p = {
|
||
|
v: !1
|
||
|
};
|
||
|
if (0 !== i && (f.addInitializer = old_createAddInitializerMethod(o, p)), l) {
|
||
|
d = 2, u = Symbol(t);
|
||
|
var v = {};
|
||
|
0 === i ? (v.get = a.get, v.set = a.set) : 2 === i ? v.get = function () {
|
||
|
return a.value;
|
||
|
} : (1 !== i && 3 !== i || (v.get = function () {
|
||
|
return a.get.call(this);
|
||
|
}), 1 !== i && 4 !== i || (v.set = function (e) {
|
||
|
a.set.call(this, e);
|
||
|
})), f.access = v;
|
||
|
} else d = 1, u = t;
|
||
|
try {
|
||
|
return e(s, Object.assign(f, old_createMetadataMethodsForProperty(r, d, u, p)));
|
||
|
} finally {
|
||
|
p.v = !0;
|
||
|
}
|
||
|
}
|
||
|
function old_assertNotFinished(e, t) {
|
||
|
if (e.v) throw new Error("attempted to call " + t + " after decoration was finished");
|
||
|
}
|
||
|
function old_assertMetadataKey(e) {
|
||
|
if ("symbol" != _typeof(e)) throw new TypeError("Metadata keys must be symbols, received: " + e);
|
||
|
}
|
||
|
function old_assertCallable(e, t) {
|
||
|
if ("function" != typeof e) throw new TypeError(t + " must be a function");
|
||
|
}
|
||
|
function old_assertValidReturnValue(e, t) {
|
||
|
var a = _typeof(t);
|
||
|
if (1 === e) {
|
||
|
if ("object" !== a || null === t) throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0");
|
||
|
void 0 !== t.get && old_assertCallable(t.get, "accessor.get"), void 0 !== t.set && old_assertCallable(t.set, "accessor.set"), void 0 !== t.init && old_assertCallable(t.init, "accessor.init"), void 0 !== t.initializer && old_assertCallable(t.initializer, "accessor.initializer");
|
||
|
} else if ("function" !== a) throw new TypeError((0 === e ? "field" : 10 === e ? "class" : "method") + " decorators must return a function or void 0");
|
||
|
}
|
||
|
function old_getInit(e) {
|
||
|
var t;
|
||
|
return null == (t = e.init) && (t = e.initializer) && "undefined" != typeof console && console.warn(".initializer has been renamed to .init as of March 2022"), t;
|
||
|
}
|
||
|
function old_applyMemberDec(e, t, a, r, o, i, n, l, s) {
|
||
|
var c,
|
||
|
d,
|
||
|
u,
|
||
|
f,
|
||
|
p,
|
||
|
v,
|
||
|
y,
|
||
|
h = a[0];
|
||
|
if (n ? (0 === o || 1 === o ? (c = {
|
||
|
get: a[3],
|
||
|
set: a[4]
|
||
|
}, u = "get") : 3 === o ? (c = {
|
||
|
get: a[3]
|
||
|
}, u = "get") : 4 === o ? (c = {
|
||
|
set: a[3]
|
||
|
}, u = "set") : c = {
|
||
|
value: a[3]
|
||
|
}, 0 !== o && (1 === o && setFunctionName(a[4], "#" + r, "set"), setFunctionName(a[3], "#" + r, u))) : 0 !== o && (c = Object.getOwnPropertyDescriptor(t, r)), 1 === o ? f = {
|
||
|
get: c.get,
|
||
|
set: c.set
|
||
|
} : 2 === o ? f = c.value : 3 === o ? f = c.get : 4 === o && (f = c.set), "function" == typeof h) void 0 !== (p = old_memberDec(h, r, c, l, s, o, i, n, f)) && (old_assertValidReturnValue(o, p), 0 === o ? d = p : 1 === o ? (d = old_getInit(p), v = p.get || f.get, y = p.set || f.set, f = {
|
||
|
get: v,
|
||
|
set: y
|
||
|
}) : f = p);else for (var m = h.length - 1; m >= 0; m--) {
|
||
|
var b;
|
||
|
void 0 !== (p = old_memberDec(h[m], r, c, l, s, o, i, n, f)) && (old_assertValidReturnValue(o, p), 0 === o ? b = p : 1 === o ? (b = old_getInit(p), v = p.get || f.get, y = p.set || f.set, f = {
|
||
|
get: v,
|
||
|
set: y
|
||
|
}) : f = p, void 0 !== b && (void 0 === d ? d = b : "function" == typeof d ? d = [d, b] : d.push(b)));
|
||
|
}
|
||
|
if (0 === o || 1 === o) {
|
||
|
if (void 0 === d) d = function d(e, t) {
|
||
|
return t;
|
||
|
};else if ("function" != typeof d) {
|
||
|
var g = d;
|
||
|
d = function d(e, t) {
|
||
|
for (var a = t, r = 0; r < g.length; r++) a = g[r].call(e, a);
|
||
|
return a;
|
||
|
};
|
||
|
} else {
|
||
|
var _ = d;
|
||
|
d = function d(e, t) {
|
||
|
return _.call(e, t);
|
||
|
};
|
||
|
}
|
||
|
e.push(d);
|
||
|
}
|
||
|
0 !== o && (1 === o ? (c.get = f.get, c.set = f.set) : 2 === o ? c.value = f : 3 === o ? c.get = f : 4 === o && (c.set = f), n ? 1 === o ? (e.push(function (e, t) {
|
||
|
return f.get.call(e, t);
|
||
|
}), e.push(function (e, t) {
|
||
|
return f.set.call(e, t);
|
||
|
})) : 2 === o ? e.push(f) : e.push(function (e, t) {
|
||
|
return f.call(e, t);
|
||
|
}) : Object.defineProperty(t, r, c));
|
||
|
}
|
||
|
function old_applyMemberDecs(e, t, a, r, o) {
|
||
|
for (var i, n, l = new Map(), s = new Map(), c = 0; c < o.length; c++) {
|
||
|
var d = o[c];
|
||
|
if (Array.isArray(d)) {
|
||
|
var u,
|
||
|
f,
|
||
|
p,
|
||
|
v = d[1],
|
||
|
y = d[2],
|
||
|
h = d.length > 3,
|
||
|
m = v >= 5;
|
||
|
if (m ? (u = t, f = r, 0 != (v -= 5) && (p = n = n || [])) : (u = t.prototype, f = a, 0 !== v && (p = i = i || [])), 0 !== v && !h) {
|
||
|
var b = m ? s : l,
|
||
|
g = b.get(y) || 0;
|
||
|
if (!0 === g || 3 === g && 4 !== v || 4 === g && 3 !== v) throw new Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: " + y);
|
||
|
!g && v > 2 ? b.set(y, v) : b.set(y, !0);
|
||
|
}
|
||
|
old_applyMemberDec(e, u, d, y, v, m, h, f, p);
|
||
|
}
|
||
|
}
|
||
|
old_pushInitializers(e, i), old_pushInitializers(e, n);
|
||
|
}
|
||
|
function old_pushInitializers(e, t) {
|
||
|
t && e.push(function (e) {
|
||
|
for (var a = 0; a < t.length; a++) t[a].call(e);
|
||
|
return e;
|
||
|
});
|
||
|
}
|
||
|
function old_applyClassDecs(e, t, a, r) {
|
||
|
if (r.length > 0) {
|
||
|
for (var o = [], i = t, n = t.name, l = r.length - 1; l >= 0; l--) {
|
||
|
var s = {
|
||
|
v: !1
|
||
|
};
|
||
|
try {
|
||
|
var c = Object.assign({
|
||
|
kind: "class",
|
||
|
name: n,
|
||
|
addInitializer: old_createAddInitializerMethod(o, s)
|
||
|
}, old_createMetadataMethodsForProperty(a, 0, n, s)),
|
||
|
d = r[l](i, c);
|
||
|
} finally {
|
||
|
s.v = !0;
|
||
|
}
|
||
|
void 0 !== d && (old_assertValidReturnValue(10, d), i = d);
|
||
|
}
|
||
|
e.push(i, function () {
|
||
|
for (var e = 0; e < o.length; e++) o[e].call(i);
|
||
|
});
|
||
|
}
|
||
|
}
|
||
|
export default function applyDecs(e, t, a) {
|
||
|
var r = [],
|
||
|
o = {},
|
||
|
i = {};
|
||
|
return old_applyMemberDecs(r, e, i, o, t), old_convertMetadataMapToFinal(e.prototype, i), old_applyClassDecs(r, e, o, a), old_convertMetadataMapToFinal(e, o), r;
|
||
|
}
|