diff --git a/.github/workflows/publish-fix.yml b/.github/workflows/publish-fix.yml deleted file mode 100644 index 6f2d77e..0000000 --- a/.github/workflows/publish-fix.yml +++ /dev/null @@ -1,51 +0,0 @@ -name: Publish Fix - -on: - workflow_dispatch: - -jobs: - publish: - runs-on: - group: databricks-protected-runner-group - labels: linux-ubuntu-latest - - environment: release - - permissions: - contents: read - id-token: write # Required for npm OIDC publishing with provenance - - steps: - - uses: actions/checkout@v4 - - - name: Install pnpm - uses: pnpm/action-setup@v4 - - - name: Setup Node.js - uses: actions/setup-node@v4 - with: - node-version: "20" - cache: "pnpm" - registry-url: "https://registry.npmjs.org" - - - name: Update npm - run: npm install -g npm@latest - - - name: Install dependencies - run: pnpm install --frozen-lockfile - - - name: Build packages - run: pnpm build - - - name: Prepare appkit for publishing - run: pnpm --filter=@databricks/appkit dist - - - name: Prepare appkit-ui for publishing - run: pnpm --filter=@databricks/appkit-ui dist - - - name: Publish appkit - run: npm publish packages/appkit/tmp --access public --provenance - - - name: Publish appkit-ui - run: npm publish packages/appkit-ui/tmp --access public --provenance - diff --git a/packages/appkit/bin/generate-types.ts b/packages/appkit/bin/generate-types.js similarity index 87% rename from packages/appkit/bin/generate-types.ts rename to packages/appkit/bin/generate-types.js index 7dead6f..dabe63b 100755 --- a/packages/appkit/bin/generate-types.ts +++ b/packages/appkit/bin/generate-types.js @@ -1,7 +1,7 @@ -#!/usr/bin/env tsx +#!/usr/bin/env node import path from "node:path"; -import { generateFromEntryPoint } from "../src/type-generator"; +import { generateFromEntryPoint } from "../dist/type-generator/index.js"; // Parse arguments const args = process.argv.slice(2); diff --git a/packages/appkit/package.json b/packages/appkit/package.json index 77f4861..90aca50 100644 --- a/packages/appkit/package.json +++ b/packages/appkit/package.json @@ -27,7 +27,7 @@ "./package.json": "./package.json" }, "bin": { - "appkit-generate-types": "./bin/generate-types.ts" + "appkit-generate-types": "./bin/generate-types.js" }, "scripts": { "build:package": "tsdown --config tsdown.config.ts", diff --git a/packages/appkit/src/type-generator/vite-plugin.ts b/packages/appkit/src/type-generator/vite-plugin.ts index b23f902..a5b2875 100644 --- a/packages/appkit/src/type-generator/vite-plugin.ts +++ b/packages/appkit/src/type-generator/vite-plugin.ts @@ -1,6 +1,6 @@ -import { execSync } from "node:child_process"; import path from "node:path"; import type { Plugin } from "vite"; +import { generateFromEntryPoint } from "./index"; /** * Options for the AppKit types plugin. @@ -14,22 +14,31 @@ interface AppKitTypesPluginOptions { /** * Vite plugin to generate types for AppKit queries. - * Calls `npx appkit-generate-types` under the hood. + * Calls generateFromEntryPoint under the hood. * @param options - Options to override default values. * @returns Vite plugin to generate types for AppKit queries. */ export function appKitTypesPlugin(options?: AppKitTypesPluginOptions): Plugin { let root: string; - let appRoot: string; let outFile: string; let watchFolders: string[]; - function generate() { + async function generate() { try { - const args = [appRoot, outFile].join(" "); - execSync(`npx appkit-generate-types ${args}`, { - cwd: appRoot, - stdio: "inherit", + const warehouseId = process.env.DATABRICKS_WAREHOUSE_ID || ""; + + if (!warehouseId) { + console.warn( + "[AppKit] Warehouse ID not found. Skipping type generation.", + ); + return; + } + + await generateFromEntryPoint({ + outFile, + queryFolder: watchFolders[0], + warehouseId, + noCache: false, }); } catch (error) { // throw in production to fail the build @@ -42,16 +51,15 @@ export function appKitTypesPlugin(options?: AppKitTypesPluginOptions): Plugin { return { name: "appkit-types", + configResolved(config) { root = config.root; - appRoot = path.resolve(root, ".."); - outFile = path.resolve(root, options?.outFile ?? "src/appKitTypes.d.ts"); - watchFolders = (options?.watchFolders ?? ["../config/queries"]).map( (folder) => path.resolve(root, folder), ); }, + buildStart() { generate(); }, diff --git a/tools/dist.ts b/tools/dist.ts index d8e062c..34d3b90 100644 --- a/tools/dist.ts +++ b/tools/dist.ts @@ -38,6 +38,10 @@ fs.writeFileSync("tmp/package.json", JSON.stringify(pkg, null, 2)); fs.cpSync("dist", "tmp/dist", { recursive: true }); +if (fs.existsSync("bin")) { + fs.cpSync("bin", "tmp/bin", { recursive: true }); +} + // Copy bin and scripts from shared package if (isAppKitPackage) { if (fs.existsSync(sharedBin)) {