Skip to content

Commit d1d6e00

Browse files
committed
refactor: schema infer
1 parent 51bf420 commit d1d6e00

File tree

2 files changed

+8
-10
lines changed

2 files changed

+8
-10
lines changed

src/config/index.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,7 @@ export interface ConfigOptions {
2525
export type InferredConfigType<T extends ConfigOptions> = T extends {
2626
entry: () => Promise<{
2727
default: {
28-
_inferOptions: {
29-
envSchema: infer TSchema extends z.ZodTypeAny;
30-
};
28+
__inferredEnvSchema: infer TSchema extends z.ZodTypeAny;
3129
};
3230
}>;
3331
}

src/core/app/app.factory.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,29 +13,29 @@ import type { CreateAppModuleOptions } from './app.module.js';
1313

1414
type EnvSchema = z.ZodType<BaseEnv, z.ZodTypeDef, { [key: string]: string }>;
1515

16-
export type CreateAppOptions = Simplify<
16+
export type CreateAppOptions<TEnvSchema extends EnvSchema = EnvSchema> = Simplify<
1717
Omit<CreateAppModuleOptions, 'envConfig'> &
1818
Pick<CreateAppContainerOptions, 'docs' | 'version'> & {
19-
envSchema: EnvSchema;
19+
envSchema: TEnvSchema;
2020
}
2121
>;
2222

23-
export type CreateAppContainerResult<TOptions extends CreateAppOptions> = Result<
23+
export type CreateAppContainerResult<TEnvSchema extends EnvSchema> = Result<
2424
AppContainer,
2525
typeof RuntimeException.Instance
2626
> & {
27-
_inferOptions: TOptions;
27+
__inferredEnvSchema: TEnvSchema;
2828
};
2929

3030
export class AppFactory {
31-
static create<TOptions extends CreateAppOptions>({
31+
static create<TEnvSchema extends EnvSchema>({
3232
docs,
3333
envSchema,
3434
imports = [],
3535
prisma,
3636
providers = [],
3737
version
38-
}: TOptions): CreateAppContainerResult<TOptions> {
38+
}: CreateAppOptions<TEnvSchema>): CreateAppContainerResult<TEnvSchema> {
3939
return this.parseEnv(envSchema).match(
4040
(envConfig) => {
4141
const module = AppModule.create({ envConfig, imports, prisma, providers });
@@ -53,7 +53,7 @@ export class AppFactory {
5353
cause: err
5454
});
5555
}
56-
) satisfies Result<AppContainer, typeof RuntimeException.Instance> as CreateAppContainerResult<TOptions>;
56+
) satisfies Result<AppContainer, typeof RuntimeException.Instance> as CreateAppContainerResult<TEnvSchema>;
5757
}
5858

5959
private static parseEnv(envSchema: EnvSchema): Result<BaseEnv, typeof ValidationException.Instance> {

0 commit comments

Comments
 (0)