@shopify/create-app
Version:
A CLI tool to create a new Shopify app.
79 lines (76 loc) • 2.92 kB
JavaScript
import {
isUnitTest
} from "./chunk-X2X377NR.js";
import {
init_cjs_shims
} from "./chunk-3XNI6LP4.js";
// ../cli-kit/dist/public/node/metadata.js
init_cjs_shims();
import { performance } from "node:perf_hooks";
function getMetadataErrorHandlingStrategy() {
return isUnitTest() ? "bubble" : "mute-and-report";
}
function createRuntimeMetadataContainer(defaultPublicMetadata = {}) {
let raw = {
sensitive: {},
public: {
...defaultPublicMetadata
}
}, addPublic = (data) => {
Object.assign(raw.public, data);
}, addSensitive = (data) => {
Object.assign(raw.sensitive, data);
}, addMetadata = async (addFn, getFn, onError) => {
let errorHandling = onError === "auto" ? getMetadataErrorHandlingStrategy() : onError, getAndSet = async () => {
let data = await getFn();
addFn(data);
};
if (errorHandling === "bubble")
await getAndSet();
else
try {
await getAndSet();
} catch (error) {
let { sendErrorToBugsnag } = await import("./error-handler-GGBOXL7F.js");
await sendErrorToBugsnag(error, "unexpected_error");
}
}, durationStack = [];
return {
getAllPublicMetadata: () => ({ ...raw.public }),
getAllSensitiveMetadata: () => ({ ...raw.sensitive }),
addPublicMetadata: async (getData, onError = "auto") => addMetadata(addPublic, getData, onError),
addSensitiveMetadata: async (getData, onError = "auto") => addMetadata(addSensitive, getData, onError),
runWithTimer: (field) => async (fn) => {
durationStack.push(0);
let start = performance.now();
try {
return await fn();
} finally {
let end = performance.now();
end = Math.max(start, end);
let wallClockDuration = Math.max(end - start, 0), childDurations = durationStack.pop(), duration = Math.max(wallClockDuration - childDurations, 0);
durationStack.length > 0 && (durationStack[durationStack.length - 1] = (durationStack[durationStack.length - 1] ?? 0) + wallClockDuration), performance.measure(`${field}#measurable`, {
start,
duration
// eslint-disable-next-line @typescript-eslint/no-explicit-any
}), performance.measure(`${field}#wall`, {
start,
end
// eslint-disable-next-line @typescript-eslint/no-explicit-any
});
let currentValue = raw.public[field] || 0;
currentValue += duration, raw.public[field] = currentValue;
}
}
};
}
var coreData = createRuntimeMetadataContainer({ cmd_all_timing_network_ms: 0, cmd_all_timing_prompts_ms: 0 }), { getAllPublicMetadata, getAllSensitiveMetadata, addPublicMetadata, addSensitiveMetadata, runWithTimer } = coreData;
export {
createRuntimeMetadataContainer,
getAllPublicMetadata,
getAllSensitiveMetadata,
addPublicMetadata,
addSensitiveMetadata,
runWithTimer
};
//# sourceMappingURL=chunk-YYJ6EVI6.js.map