Skip to content

Commit b94f4f2

Browse files
refactor(useTriggerChat): remove Node.js-specific runtime dependency check
Remove require.resolve() runtime check for optional peer dependencies. With optional peerDependencies in package.json, static ES imports provide better compile-time validation: - Build fails with clear errors only if useTriggerChat is imported - TypeScript/LSP shows missing dependencies immediately in IDE - Tree-shaking eliminates code when hook is unused - No Node.js-specific APIs in client-side "use client" code The previous runtime check using require.resolve() was: 1. Not isomorphic (fails in browser/bundler environments) 2. Redundant (static imports already enforce dependencies) 3. Worse UX (runtime errors instead of build-time errors)
1 parent 136085f commit b94f4f2

File tree

1 file changed

+0
-34
lines changed

1 file changed

+0
-34
lines changed

packages/react-hooks/src/hooks/useTriggerChat.ts

Lines changed: 0 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -490,39 +490,6 @@ async function streamDataFromTrigger(params: {
490490
}
491491
}
492492

493-
function checkRequiredPeerDependencies() {
494-
const requiredPackages = [
495-
"@ai-sdk/react",
496-
"ai",
497-
"@electric-sql/client",
498-
"eventsource-parser",
499-
];
500-
501-
const missing = requiredPackages.filter((pkg) => {
502-
try {
503-
require.resolve(pkg);
504-
return false;
505-
} catch {
506-
return true;
507-
}
508-
});
509-
510-
if (!missing.length) return;
511-
512-
const packages = missing.join(" ");
513-
514-
throw new Error(
515-
`useTriggerChat requires the following packages:\n${missing
516-
.map((pkg) => ` - ${pkg}`)
517-
.join("\n")}\n\n` +
518-
`Install them with:\n` +
519-
` npm install ${packages}\n` +
520-
` yarn add ${packages}\n` +
521-
` pnpm add ${packages}\n` +
522-
` bun add ${packages}`,
523-
);
524-
}
525-
526493
type UseTriggerChatOptions = {
527494
transportOptions: TriggerChatTransportOptions;
528495
} & Omit<ChatInit<UIMessage>, "transport">;
@@ -610,7 +577,6 @@ type UseTriggerChatOptions = {
610577
export function useTriggerChat(
611578
options: UseTriggerChatOptions,
612579
): UseChatHelpers<UIMessage> {
613-
checkRequiredPeerDependencies();
614580
const { transportOptions, ...chatOptions } = options;
615581

616582
return useChat({

0 commit comments

Comments
 (0)