Skip to content

Commit

Permalink
Use the value of fileName when no enumFileName provided. Add `Gen…
Browse files Browse the repository at this point in the history
…eratedAlways` only when needed. (#49)

* take the default value for enumFileName from fileName

* do not add GeneratedAlways if not needed

* add changeset
  • Loading branch information
Aulos committed May 29, 2023
1 parent b8e8229 commit 744b666
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 3 deletions.
6 changes: 6 additions & 0 deletions .changeset/warm-radios-greet.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
"prisma-kysely": patch
---

- use the value of fileName when no enumFileName provided. Right now if you use a different fileName and you don't provide enumFileName it will put database in the fileName and enums in types.ts.
- add GeneratedAlways only when needed. Right now it's always added, even if not needed which causes problems with linter.
4 changes: 3 additions & 1 deletion src/helpers/generateFile.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,9 @@ export const generateFile = (

const result = printer.printFile(file);

const leader = `import type { ColumnType, GeneratedAlways } from "kysely";
const leader = `import type { ColumnType${
result.includes("GeneratedAlways") ? ", GeneratedAlways" : ""
} } from "kysely";
export type Generated<T> = T extends ColumnType<infer S, infer I, infer U>
? ColumnType<S, I | undefined, U>
: ColumnType<T, T | undefined, T>;
Expand Down
11 changes: 9 additions & 2 deletions src/utils/validateConfig.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ export const configValidator = z

// Output overrides
fileName: z.string().optional().default("types.ts"),
enumFileName: z.string().optional().default("types.ts"),
enumFileName: z.string().optional(),

// Typescript type overrides
stringTypeOverride: z.string().optional(),
Expand All @@ -40,7 +40,14 @@ export const configValidator = z
// Use GeneratedAlways for IDs instead of Generated
readOnlyIds: booleanStringLiteral.default(false),
})
.strict();
.strict()
.transform((config) => {
if (!config.enumFileName) {
config.enumFileName = config.fileName;
}
return config as Omit<typeof config, "enumFileName"> &
Required<Pick<typeof config, "enumFileName">>;
});

export type Config = z.infer<typeof configValidator>;

Expand Down

0 comments on commit 744b666

Please sign in to comment.