Skip to content

Commit 3cd1614

Browse files
committed
Handle package manager and log level choice
1 parent fdc8624 commit 3cd1614

File tree

11 files changed

+14492
-2
lines changed

11 files changed

+14492
-2
lines changed

packages/cli-v3/e2e/compile.test.ts

Lines changed: 70 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { execaNode } from "execa";
2+
import { renameSync } from "node:fs";
23
import { join, resolve } from "node:path";
34

45
type TestCase = {
@@ -24,6 +25,9 @@ for (let testCase of testCases) {
2425

2526
const fixtureDir = resolve(join(process.cwd(), "e2e/fixtures", name));
2627
const commandPath = resolve(join(process.cwd(), "dist/e2e.js"));
28+
const logLevel = process.env.LOG || "log";
29+
30+
togglePackageManager(true, fixtureDir, process.env.PM);
2731

2832
test(
2933
`project fixture "${testCase.name}" compiles`,
@@ -32,7 +36,7 @@ for (let testCase of testCases) {
3236
(async () => {
3337
const { stdout } = await execaNode(
3438
commandPath,
35-
["deploy-compile", fixtureDir, ...options],
39+
["deploy-compile", fixtureDir, "--log-level", logLevel, ...options],
3640
{ cwd: fixtureDir }
3741
);
3842
console.log(stdout);
@@ -41,4 +45,69 @@ for (let testCase of testCases) {
4145
},
4246
{ timeout: 60_000 }
4347
);
48+
49+
togglePackageManager(false, fixtureDir, process.env.PM);
50+
}
51+
52+
// For now to avoid changes in codebase.
53+
function togglePackageManager(toggle: boolean, dir: string, packageManager?: string) {
54+
switch (packageManager) {
55+
case "bun":
56+
renameSync(
57+
join(dir, `pnpm-lock${toggle ? "" : ".muted"}.yaml`),
58+
join(dir, `pnpm-lock${toggle ? ".muted" : ""}.yaml`)
59+
);
60+
renameSync(
61+
join(dir, `yarn${toggle ? "" : ".muted"}.lock`),
62+
join(dir, `yarn${toggle ? ".muted" : ""}.lock`)
63+
);
64+
renameSync(
65+
join(dir, `package-lock${toggle ? "" : ".muted"}.json`),
66+
join(dir, `package-lock${toggle ? ".muted" : ""}.json`)
67+
);
68+
break;
69+
case "pnpm":
70+
renameSync(
71+
join(dir, `bun${toggle ? "" : ".muted"}.lockb`),
72+
join(dir, `bun${toggle ? ".muted" : ""}.lockb`)
73+
);
74+
renameSync(
75+
join(dir, `yarn${toggle ? "" : ".muted"}.lock`),
76+
join(dir, `yarn${toggle ? ".muted" : ""}.lock`)
77+
);
78+
renameSync(
79+
join(dir, `package-lock${toggle ? "" : ".muted"}.json`),
80+
join(dir, `package-lock${toggle ? ".muted" : ""}.json`)
81+
);
82+
break;
83+
case "yarn":
84+
renameSync(
85+
join(dir, `bun${toggle ? "" : ".muted"}.lockb`),
86+
join(dir, `bun${toggle ? ".muted" : ""}.lockb`)
87+
);
88+
renameSync(
89+
join(dir, `pnpm-lock${toggle ? "" : ".muted"}.yaml`),
90+
join(dir, `pnpm-lock${toggle ? ".muted" : ""}.yaml`)
91+
);
92+
renameSync(
93+
join(dir, `package-lock${toggle ? "" : ".muted"}.json`),
94+
join(dir, `package-lock${toggle ? ".muted" : ""}.json`)
95+
);
96+
break;
97+
case "npm":
98+
default:
99+
renameSync(
100+
join(dir, `pnpm-lock${toggle ? "" : ".muted"}.yaml`),
101+
join(dir, `pnpm-lock${toggle ? ".muted" : ""}.yaml`)
102+
);
103+
renameSync(
104+
join(dir, `bun${toggle ? "" : ".muted"}.lockb`),
105+
join(dir, `bun${toggle ? ".muted" : ""}.lockb`)
106+
);
107+
renameSync(
108+
join(dir, `yarn${toggle ? "" : ".muted"}.lock`),
109+
join(dir, `yarn${toggle ? ".muted" : ""}.lock`)
110+
);
111+
break;
112+
}
44113
}

packages/cli-v3/e2e/compile.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,11 @@ import { z } from "zod";
55

66
import { compileProject, DeployCommandOptions } from "../src/commands/deploy.js";
77
import { readConfig } from "../src/utilities/configFiles.js";
8+
import { logger } from "../src/utilities/logger.js";
9+
import { fromZodError } from "zod-validation-error";
810

911
const CompileCommandOptionsSchema = z.object({
12+
logLevel: z.enum(["debug", "info", "log", "warn", "error", "none"]).default("log"),
1013
skipTypecheck: z.boolean().default(false),
1114
config: z.string().optional(),
1215
projectRef: z.string().optional(),
@@ -22,6 +25,11 @@ export function configureCompileCommand(program: Command) {
2225
"[dir]",
2326
"The project root directory. Usually where the top level package.json is located."
2427
)
28+
.option(
29+
"-l, --log-level <level>",
30+
"The CLI log level to use (debug, info, log, warn, error, none). This does not effect the log level of your trigger.dev tasks.",
31+
"log"
32+
)
2533
.option("--skip-typecheck", "Whether to skip the pre-build typecheck")
2634
.option("-c, --config <config file>", "The name of the config file, found at [path]")
2735
.option(
@@ -38,6 +46,12 @@ export function configureCompileCommand(program: Command) {
3846
}
3947

4048
async function compile(dir: string, options: CompileCommandOptions) {
49+
const parsedOptions = CompileCommandOptionsSchema.safeParse(options);
50+
if (!parsedOptions.success) {
51+
throw new Error(fromZodError(parsedOptions.error).toString());
52+
}
53+
logger.loggerLevel = parsedOptions.data.logLevel;
54+
4155
const resolvedConfig = await readConfig(dir, {
4256
configFile: options.config,
4357
projectRef: options.projectRef,

0 commit comments

Comments
 (0)