hts/packages/isdk/tsup.config.ts

137 lines
3.0 KiB
TypeScript

import { defineConfig } from 'tsup';
export default defineConfig([
// Universal APIs
{
entry: ['streams/index.ts'],
format: ['cjs', 'esm'],
external: ['react', 'svelte', 'vue'],
dts: true,
sourcemap: true,
},
{
entry: ['prompts/index.ts'],
format: ['cjs', 'esm'],
external: ['react', 'svelte', 'vue'],
outDir: 'prompts/dist',
dts: true,
sourcemap: true,
},
// React APIs
{
entry: ['react/index.ts'],
outDir: 'react/dist',
banner: {
js: "'use client'",
},
format: ['cjs', 'esm'],
external: ['react', 'svelte', 'vue', 'solid-js'],
dts: true,
sourcemap: true,
},
{
entry: ['react/index.server.ts'],
outDir: 'react/dist',
format: ['cjs', 'esm'],
external: ['react', 'svelte', 'vue', 'solid-js'],
dts: true,
sourcemap: true,
},
// // Svelte APIs
// {
// entry: ['svelte/index.ts'],
// outDir: 'svelte/dist',
// banner: {},
// format: ['cjs', 'esm'],
// external: ['react', 'svelte', 'vue', 'solid-js'],
// dts: true,
// sourcemap: true,
// // `sswr` has some issue with `.es.js` that can't be resolved correctly by
// // vite so we have to bundle it here.
// noExternal: ['sswr'],
// },
// Vue APIs
{
entry: ['vue/index.ts'],
outDir: 'vue/dist',
banner: {},
format: ['cjs', 'esm'],
external: ['react', 'svelte', 'vue', 'solid-js'],
dts: true,
sourcemap: true,
},
// Solid APIs
{
entry: ['solid/index.ts'],
outDir: 'solid/dist',
banner: {},
format: ['cjs', 'esm'],
external: ['react', 'svelte', 'vue', 'solid-js'],
dts: true,
sourcemap: true,
},
// RSC APIs - shared client
{
// Entry is `.mts` as the entrypoints that import it will be ESM so it needs exact imports that includes the `.mjs` extension.
entry: ['rsc/rsc-shared.mts'],
outDir: 'rsc/dist',
format: ['esm'],
external: ['react', 'zod'],
dts: true,
sourcemap: true,
},
// RSC APIs - server, client
{
entry: ['rsc/rsc-server.ts', 'rsc/rsc-client.ts'],
outDir: 'rsc/dist',
format: ['esm'],
external: ['react', 'zod', /\/rsc-shared/],
dts: true,
sourcemap: true,
},
// RSC APIs - types
{
entry: ['rsc/index.ts'],
outDir: 'rsc/dist',
dts: true,
outExtension() {
return {
// It must be `.d.ts` instead of `.d.mts` to support node resolution.
// See https://github.com/vercel/ai/issues/1028.
dts: '.d.ts',
js: '.mjs',
};
},
},
// AI Core: Providers
{
entry: ['anthropic/index.ts'],
format: ['cjs', 'esm'],
outDir: 'anthropic/dist',
dts: true,
sourcemap: true,
},
{
entry: ['google/index.ts'],
format: ['cjs', 'esm'],
outDir: 'google/dist',
dts: true,
sourcemap: true,
},
{
entry: ['openai/index.ts'],
format: ['cjs', 'esm'],
outDir: 'openai/dist',
dts: true,
sourcemap: true,
},
{
entry: ['mistral/index.ts'],
format: ['cjs', 'esm'],
outDir: 'mistral/dist',
dts: true,
sourcemap: true,
},
]);