diff --git a/.changeset/silly-forks-kiss.md b/.changeset/silly-forks-kiss.md new file mode 100644 index 000000000..4f7308bfb --- /dev/null +++ b/.changeset/silly-forks-kiss.md @@ -0,0 +1,5 @@ +--- +"trigger.dev": patch +--- + +v3: Copy over more of the project's package.json keys into the deployed package.json (support for custom config like zenstack) diff --git a/packages/cli-v3/src/commands/deploy.ts b/packages/cli-v3/src/commands/deploy.ts index add7f4e68..69e7d5e43 100644 --- a/packages/cli-v3/src/commands/deploy.ts +++ b/packages/cli-v3/src/commands/deploy.ts @@ -1317,9 +1317,7 @@ async function compileProject( logger.debug("gatherRequiredDependencies()", { dependencies }); const packageJsonContents = { - name: "trigger-worker", - version: "0.0.0", - description: "", + ...javascriptProject.allowedPackageJson, dependencies, scripts: { ...javascriptProject.scripts, diff --git a/packages/cli-v3/src/utilities/javascriptProject.ts b/packages/cli-v3/src/utilities/javascriptProject.ts index 613f3bde7..d688662bb 100644 --- a/packages/cli-v3/src/utilities/javascriptProject.ts +++ b/packages/cli-v3/src/utilities/javascriptProject.ts @@ -26,10 +26,58 @@ export class JavascriptProject { return this._packageJson; } + public get allowedPackageJson(): Record { + const disallowedKeys = [ + "scripts", + "devDependencies", + "dependencies", + "peerDependencies", + "author", + "contributors", + "funding", + "bugs", + "files", + "keywords", + "main", + "module", + "type", + "bin", + "browser", + "man", + "directories", + "repository", + "peerDependenciesMeta", + "optionalDependencies", + "engines", + "os", + "cpu", + "private", + "publishConfig", + "workspaces", + ]; + + return Object.keys(this.packageJson).reduce( + (acc, key) => { + if (!disallowedKeys.includes(key)) { + acc[key] = this.packageJson[key]; + } + + return acc; + }, + {} as Record + ); + } + public get scripts(): Record { - return { - postinstall: this.packageJson.scripts?.postinstall ?? "", - }; + return this.#filterScripts(); + } + + #filterScripts(): Record { + if (!this.packageJson.scripts || typeof this.packageJson.scripts !== "object") { + return {}; + } + + return this.packageJson.scripts as Record; } async install(): Promise { diff --git a/references/v3-catalog/package.json b/references/v3-catalog/package.json index 1b0b560ca..a5348863a 100644 --- a/references/v3-catalog/package.json +++ b/references/v3-catalog/package.json @@ -2,6 +2,9 @@ "name": "@references/v3-catalog", "version": "0.1.0", "private": true, + "zenstack": { + "schema": "./prisma/schema.zmodel" + }, "scripts": { "dev:trigger": "triggerdev dev", "management": "ts-node -r tsconfig-paths/register ./src/management.ts",