zcb 0.1.3 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "zcb",
3
3
  "description": "Build configs with type safety from zod schema.",
4
- "version": "0.1.3",
4
+ "version": "0.2.0",
5
5
  "author": "Dylan Aubrey",
6
6
  "license": "MIT",
7
7
  "homepage": "https://github.com/badbatch/zod-config-builder",
@@ -12,7 +12,7 @@ import {
12
12
  } from './schema.ts';
13
13
 
14
14
  const configBuilder = createConfigBuilder<ConfigType>(configSchema);
15
- const routeBuilder = createConfigBuilder<RouteType>(routeSchema, { path: ({ page }) => kebabCase(page) });
15
+ const routeBuilder = createConfigBuilder<RouteType>(routeSchema, undefined, { path: ({ page }) => kebabCase(page) });
16
16
  const pageBuilder = createConfigBuilder<PageType>(pageSchema);
17
17
  const sectionBuilder = createConfigBuilder<SectionType>(sectionSchema);
18
18
  const subsectionBuilder = sectionBuilder.$fork();
@@ -62,7 +62,7 @@ describe('createConfigBuilder', () => {
62
62
  it('should copy over all values to the new config', async () => {
63
63
  const { createConfigBuilder } = await import('./createConfigBuilder.ts');
64
64
  const config = createConfigBuilder<ConfigType>(configSchema);
65
- const route = createConfigBuilder<RouteType>(routeSchema, { path: ({ page }) => kebabCase(page) });
65
+ const route = createConfigBuilder<RouteType>(routeSchema, undefined, { path: ({ page }) => kebabCase(page) });
66
66
  const page = createConfigBuilder<PageType>(pageSchema);
67
67
 
68
68
  config
@@ -85,7 +85,7 @@ describe('createConfigBuilder', () => {
85
85
  it('should copy over all experiments to the new config', async () => {
86
86
  const { createConfigBuilder } = await import('./createConfigBuilder.ts');
87
87
  const config = createConfigBuilder<ConfigType>(configSchema);
88
- const route = createConfigBuilder<RouteType>(routeSchema, { path: ({ page }) => kebabCase(page) });
88
+ const route = createConfigBuilder<RouteType>(routeSchema, undefined, { path: ({ page }) => kebabCase(page) });
89
89
  const page = createConfigBuilder<PageType>(pageSchema);
90
90
 
91
91
  config
@@ -121,7 +121,7 @@ describe('createConfigBuilder', () => {
121
121
  it('should copy over all disabled flags to the new config', async () => {
122
122
  const { createConfigBuilder } = await import('./createConfigBuilder.ts');
123
123
  const config = createConfigBuilder<ConfigType>(configSchema);
124
- const route = createConfigBuilder<RouteType>(routeSchema, { path: ({ page }) => kebabCase(page) });
124
+ const route = createConfigBuilder<RouteType>(routeSchema, undefined, { path: ({ page }) => kebabCase(page) });
125
125
  const page = createConfigBuilder<PageType>(pageSchema);
126
126
 
127
127
  config
@@ -156,7 +156,7 @@ describe('createConfigBuilder', () => {
156
156
 
157
157
  it('should copy over all derived value callbacks to the new config builder', async () => {
158
158
  const { createConfigBuilder } = await import('./createConfigBuilder.ts');
159
- const route = createConfigBuilder<RouteType>(routeSchema, { path: ({ page }) => kebabCase(page) });
159
+ const route = createConfigBuilder<RouteType>(routeSchema, undefined, { path: ({ page }) => kebabCase(page) });
160
160
  route.page('personalDetails');
161
161
  const childRoute = createConfigBuilder<RouteType>(routeSchema);
162
162
  childRoute.$extend(route);
@@ -401,7 +401,7 @@ describe('createConfigBuilder', () => {
401
401
  it('should add the value to the config', async () => {
402
402
  const { createConfigBuilder } = await import('./createConfigBuilder.ts');
403
403
  const config = createConfigBuilder<ConfigType>(configSchema);
404
- const route = createConfigBuilder<RouteType>(routeSchema, { path: ({ page }) => kebabCase(page) });
404
+ const route = createConfigBuilder<RouteType>(routeSchema, undefined, { path: ({ page }) => kebabCase(page) });
405
405
  const subRoute = route.$fork();
406
406
 
407
407
  config.routes([
@@ -430,7 +430,7 @@ describe('createConfigBuilder', () => {
430
430
  it('should be a valid config', async () => {
431
431
  const { createConfigBuilder } = await import('./createConfigBuilder.ts');
432
432
  const config = createConfigBuilder<ConfigType>(configSchema);
433
- const route = createConfigBuilder<RouteType>(routeSchema, { path: ({ page }) => kebabCase(page) });
433
+ const route = createConfigBuilder<RouteType>(routeSchema, undefined, { path: ({ page }) => kebabCase(page) });
434
434
 
435
435
  config.routes([
436
436
  route.page('personalDetails').$flush(),
@@ -36,6 +36,7 @@ export type CreateConfigBuilderOptions = {
36
36
 
37
37
  export const createConfigBuilder = <ZodTypes>(
38
38
  zodSchema: z.ZodSchema,
39
+ options: CreateConfigBuilderOptions = {},
39
40
  derivedValueCallbacks: Partial<
40
41
  Record<
41
42
  keyof ZodTypes,
@@ -46,8 +47,7 @@ export const createConfigBuilder = <ZodTypes>(
46
47
  > = {},
47
48
  initialValues: Partial<{
48
49
  [Key in keyof ZodTypes]: ZodTypes[Key];
49
- }> = {},
50
- options: CreateConfigBuilderOptions = {}
50
+ }> = {}
51
51
  ): ConfigBuilder<ZodTypes> => {
52
52
  type Config = {
53
53
  [Key in keyof ZodTypes]: ZodTypes[Key];
@@ -123,7 +123,7 @@ export const createConfigBuilder = <ZodTypes>(
123
123
  config = createInitialConfig();
124
124
  return values;
125
125
  },
126
- $fork: () => createConfigBuilder<Config>(zodSchema, derivedValueCallbacks, initialValues, options),
126
+ $fork: () => createConfigBuilder<Config>(zodSchema, options, derivedValueCallbacks, initialValues),
127
127
  $toJson: () => JSON.stringify(configBuilder.$values(), jsonStringifyReplacer, 2),
128
128
  $validate: () => {
129
129
  try {