From 1fcd668be44639d89931d3e93dabd150aee41878 Mon Sep 17 00:00:00 2001 From: Zai Shi Date: Tue, 13 May 2025 15:19:46 -0700 Subject: [PATCH] fix import --- configs/tsup/js-library.ts | 27 +++++++++++++++++++ packages/stack-shared/src/index.ts | 6 ++--- .../{adminInterface.ts => admin-interface.ts} | 2 +- ...clientInterface.ts => client-interface.ts} | 0 ...serverInterface.ts => server-interface.ts} | 2 +- .../apps/implementations/admin-app-impl.ts | 2 +- .../lib/stack-app/internal-api-keys/index.ts | 3 ++- 7 files changed, 35 insertions(+), 7 deletions(-) rename packages/stack-shared/src/interface/{adminInterface.ts => admin-interface.ts} (99%) rename packages/stack-shared/src/interface/{clientInterface.ts => client-interface.ts} (100%) rename packages/stack-shared/src/interface/{serverInterface.ts => server-interface.ts} (99%) diff --git a/configs/tsup/js-library.ts b/configs/tsup/js-library.ts index 193a5344c..b71377563 100644 --- a/configs/tsup/js-library.ts +++ b/configs/tsup/js-library.ts @@ -1,10 +1,36 @@ +import fs from 'fs'; +import path from 'path'; import { defineConfig } from 'tsup'; import { createBasePlugin } from './plugins'; + const customNoExternal = new Set([ "oauth4webapi", ]); +// https://github.com/egoist/tsup/issues/953 +const fixImportExtensions = (extension: string = ".js") => ({ + name: "fix-import-extensions", + setup(build) { + build.onResolve({ filter: /.*/ }, (args) => { + if (args.importer) { + const filePath = path.join(args.resolveDir, args.path); + let resolvedPath; + + console.log(filePath); + + if (fs.existsSync(filePath + ".ts") || fs.existsSync(filePath + ".tsx")) { + resolvedPath = args.path + extension; + } else if (fs.existsSync(path.join(filePath, `index.ts`)) || fs.existsSync(path.join(filePath, `index.tsx`))) { + resolvedPath = args.path.endsWith("/") ? args.path + "index" + extension : args.path + "/index" + extension; + } + return { path: resolvedPath ?? args.path, external: true }; + } + }); + }, +}); + + export default function createJsLibraryTsupConfig(options: { barrelFile: boolean }) { return defineConfig({ entryPoints: ['src/**/*.(ts|tsx|js|jsx)'], @@ -16,6 +42,7 @@ export default function createJsLibraryTsupConfig(options: { barrelFile: boolean format: ['esm', 'cjs'], legacyOutput: true, esbuildPlugins: [ + fixImportExtensions(), createBasePlugin({}), { name: 'stackframe: force most files to be external', diff --git a/packages/stack-shared/src/index.ts b/packages/stack-shared/src/index.ts index ba57ca0b9..a39fc1707 100644 --- a/packages/stack-shared/src/index.ts +++ b/packages/stack-shared/src/index.ts @@ -1,12 +1,12 @@ export { StackAdminInterface -} from "./interface/adminInterface"; +} from "./interface/admin-interface"; export { StackClientInterface -} from "./interface/clientInterface"; +} from "./interface/client-interface"; export { StackServerInterface -} from "./interface/serverInterface"; +} from "./interface/server-interface"; export { KnownError, KnownErrors diff --git a/packages/stack-shared/src/interface/adminInterface.ts b/packages/stack-shared/src/interface/admin-interface.ts similarity index 99% rename from packages/stack-shared/src/interface/adminInterface.ts rename to packages/stack-shared/src/interface/admin-interface.ts index d415adc10..8f085c392 100644 --- a/packages/stack-shared/src/interface/adminInterface.ts +++ b/packages/stack-shared/src/interface/admin-interface.ts @@ -6,7 +6,7 @@ import { ProjectPermissionDefinitionsCrud } from "./crud/project-permissions"; import { ProjectsCrud } from "./crud/projects"; import { SvixTokenCrud } from "./crud/svix-token"; import { TeamPermissionDefinitionsCrud } from "./crud/team-permissions"; -import { ServerAuthApplicationOptions, StackServerInterface } from "./serverInterface"; +import { ServerAuthApplicationOptions, StackServerInterface } from "./server-interface"; export type AdminAuthApplicationOptions = ServerAuthApplicationOptions &( | { diff --git a/packages/stack-shared/src/interface/clientInterface.ts b/packages/stack-shared/src/interface/client-interface.ts similarity index 100% rename from packages/stack-shared/src/interface/clientInterface.ts rename to packages/stack-shared/src/interface/client-interface.ts diff --git a/packages/stack-shared/src/interface/serverInterface.ts b/packages/stack-shared/src/interface/server-interface.ts similarity index 99% rename from packages/stack-shared/src/interface/serverInterface.ts rename to packages/stack-shared/src/interface/server-interface.ts index 577b277f5..d45d35bc7 100644 --- a/packages/stack-shared/src/interface/serverInterface.ts +++ b/packages/stack-shared/src/interface/server-interface.ts @@ -7,7 +7,7 @@ import { urlString } from "../utils/urls"; import { ClientInterfaceOptions, StackClientInterface -} from "./clientInterface"; +} from "./client-interface"; import { ContactChannelsCrud } from "./crud/contact-channels"; import { CurrentUserCrud } from "./crud/current-user"; import { ConnectedAccountAccessTokenCrud } from "./crud/oauth"; diff --git a/packages/template/src/lib/stack-app/apps/implementations/admin-app-impl.ts b/packages/template/src/lib/stack-app/apps/implementations/admin-app-impl.ts index dfe68ad51..f862964dd 100644 --- a/packages/template/src/lib/stack-app/apps/implementations/admin-app-impl.ts +++ b/packages/template/src/lib/stack-app/apps/implementations/admin-app-impl.ts @@ -1,6 +1,6 @@ import { StackAdminInterface } from "@stackframe/stack-shared"; import { getProductionModeErrors } from "@stackframe/stack-shared/dist/helpers/production-mode"; -import { InternalApiKeyCreateCrudResponse } from "@stackframe/stack-shared/dist/interface/adminInterface"; +import { InternalApiKeyCreateCrudResponse } from "@stackframe/stack-shared/dist/interface/admin-interface"; import { EmailTemplateCrud, EmailTemplateType } from "@stackframe/stack-shared/dist/interface/crud/email-templates"; import { InternalApiKeysCrud } from "@stackframe/stack-shared/dist/interface/crud/internal-api-keys"; import { ProjectsCrud } from "@stackframe/stack-shared/dist/interface/crud/projects"; diff --git a/packages/template/src/lib/stack-app/internal-api-keys/index.ts b/packages/template/src/lib/stack-app/internal-api-keys/index.ts index 4c0fe5650..6867c758a 100644 --- a/packages/template/src/lib/stack-app/internal-api-keys/index.ts +++ b/packages/template/src/lib/stack-app/internal-api-keys/index.ts @@ -1,4 +1,5 @@ -import { InternalApiKeyCreateCrudRequest } from "@stackframe/stack-shared/dist/interface/adminInterface"; + +import { InternalApiKeyCreateCrudRequest } from "@stackframe/stack-shared/dist/interface/admin-interface"; import { InternalApiKeysCrud } from "@stackframe/stack-shared/dist/interface/crud/internal-api-keys"; export type InternalApiKeyBase = {