- web/: Vue 3 + Vite + UnoCSS + Pinia, dark tactical theme (amber/#0d1117) - AppNav, ListingCard, SearchView with filters/sort, composables (useSnipeMode, useKonamiCode, useMotion), Pinia search store - Steal shimmer, auction countdown, Snipe Mode easter egg all native in Vue - docker/web/: nginx + multi-stage Dockerfile (node build → nginx serve) - compose.yml: api (8510) + web (8509) services - Dockerfile CMD updated to uvicorn for upcoming FastAPI layer - Clean build: 0 TS errors, 380 modules
34 lines
1,012 B
JavaScript
34 lines
1,012 B
JavaScript
"use strict";
|
|
|
|
const conversions = require("webidl-conversions");
|
|
const utils = require("./utils.js");
|
|
|
|
exports.convert = (globalObject, value, { context = "The provided value" } = {}) => {
|
|
if (typeof value !== "function") {
|
|
throw new globalObject.TypeError(context + " is not a function");
|
|
}
|
|
|
|
function invokeTheCallbackFunction(mutations, observer) {
|
|
const thisArg = utils.tryWrapperForImpl(this);
|
|
let callResult;
|
|
|
|
mutations = utils.tryWrapperForImpl(mutations);
|
|
|
|
observer = utils.tryWrapperForImpl(observer);
|
|
|
|
callResult = Reflect.apply(value, thisArg, [mutations, observer]);
|
|
}
|
|
|
|
invokeTheCallbackFunction.construct = (mutations, observer) => {
|
|
mutations = utils.tryWrapperForImpl(mutations);
|
|
|
|
observer = utils.tryWrapperForImpl(observer);
|
|
|
|
let callResult = Reflect.construct(value, [mutations, observer]);
|
|
};
|
|
|
|
invokeTheCallbackFunction[utils.wrapperSymbol] = value;
|
|
invokeTheCallbackFunction.objectReference = value;
|
|
|
|
return invokeTheCallbackFunction;
|
|
};
|