Next.js website for Rocky Mountain Vending company featuring: - Product catalog with Stripe integration - Service areas and parts pages - Admin dashboard with Clerk authentication - SEO optimized pages with JSON-LD structured data Co-authored-by: Cursor <cursoragent@cursor.com>
21 lines
920 B
Text
21 lines
920 B
Text
export const createAggregatedClient = (commands, Client) => {
|
|
for (const command of Object.keys(commands)) {
|
|
const CommandCtor = commands[command];
|
|
const methodImpl = async function (args, optionsOrCb, cb) {
|
|
const command = new CommandCtor(args);
|
|
if (typeof optionsOrCb === "function") {
|
|
this.send(command, optionsOrCb);
|
|
}
|
|
else if (typeof cb === "function") {
|
|
if (typeof optionsOrCb !== "object")
|
|
throw new Error(`Expected http options but got ${typeof optionsOrCb}`);
|
|
this.send(command, optionsOrCb || {}, cb);
|
|
}
|
|
else {
|
|
return this.send(command, optionsOrCb);
|
|
}
|
|
};
|
|
const methodName = (command[0].toLowerCase() + command.slice(1)).replace(/Command$/, "");
|
|
Client.prototype[methodName] = methodImpl;
|
|
}
|
|
};
|