@effect-app/infra 4.0.0-beta.247 → 4.0.0-beta.249
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/CHANGELOG.md +24 -0
- package/dist/ContextProvider.d.ts +34 -0
- package/dist/ContextProvider.d.ts.map +1 -0
- package/dist/ContextProvider.js +40 -0
- package/dist/Emailer/Sendgrid.d.ts +109 -145
- package/dist/Emailer/Sendgrid.d.ts.map +1 -1
- package/dist/Emailer/Sendgrid.js +4 -3
- package/dist/Emailer/fake.d.ts +2 -2
- package/dist/Emailer/fake.d.ts.map +1 -1
- package/dist/Emailer/fake.js +2 -2
- package/dist/QueueMaker/SQLQueue.d.ts +2 -2
- package/dist/QueueMaker/SQLQueue.d.ts.map +1 -1
- package/dist/QueueMaker/SQLQueue.js +4 -4
- package/dist/QueueMaker/memQueue.d.ts +2 -2
- package/dist/QueueMaker/memQueue.d.ts.map +1 -1
- package/dist/QueueMaker/memQueue.js +4 -4
- package/dist/QueueMaker/sbqueue.d.ts +2 -2
- package/dist/QueueMaker/sbqueue.d.ts.map +1 -1
- package/dist/QueueMaker/sbqueue.js +4 -4
- package/dist/RequestFiberSet.js +2 -2
- package/dist/{adapters/SQL → SQL}/Model.d.ts +2 -2
- package/dist/SQL/Model.d.ts.map +1 -0
- package/dist/SQL/Model.js +469 -0
- package/dist/{adapters/SQL.d.ts → SQL.d.ts} +1 -1
- package/dist/SQL.d.ts.map +1 -0
- package/dist/{adapters/SQL.js → SQL.js} +1 -1
- package/dist/{adapters/ServiceBus.d.ts → ServiceBus.d.ts} +1 -1
- package/dist/ServiceBus.d.ts.map +1 -0
- package/dist/ServiceBus.js +108 -0
- package/dist/Store/ContextMapContainer.d.ts +2 -2
- package/dist/Store/ContextMapContainer.d.ts.map +1 -1
- package/dist/Store/ContextMapContainer.js +2 -2
- package/dist/Store/Cosmos/query.d.ts +4 -4
- package/dist/Store/Cosmos/query.d.ts.map +1 -1
- package/dist/Store/Cosmos/query.js +1 -1
- package/dist/Store/Cosmos.d.ts +2 -2
- package/dist/Store/Cosmos.d.ts.map +1 -1
- package/dist/Store/Cosmos.js +3 -3
- package/dist/Store/Disk.d.ts +3 -3
- package/dist/Store/Disk.d.ts.map +1 -1
- package/dist/Store/Disk.js +2 -2
- package/dist/Store/Memory.d.ts +3 -3
- package/dist/Store/Memory.d.ts.map +1 -1
- package/dist/Store/Memory.js +2 -2
- package/dist/Store/SQL/Pg.d.ts +2 -2
- package/dist/Store/SQL/Pg.d.ts.map +1 -1
- package/dist/Store/SQL/Pg.js +2 -2
- package/dist/Store/SQL/query.d.ts +3 -3
- package/dist/Store/SQL/query.d.ts.map +1 -1
- package/dist/Store/SQL/query.js +1 -1
- package/dist/Store/SQL.d.ts +3 -3
- package/dist/Store/SQL.d.ts.map +1 -1
- package/dist/Store/SQL.js +2 -2
- package/dist/Store/codeFilter.d.ts +4 -4
- package/dist/Store/codeFilter.d.ts.map +1 -1
- package/dist/Store/codeFilter.js +1 -1
- package/dist/Store/index.d.ts +3 -4
- package/dist/Store/index.d.ts.map +1 -1
- package/dist/Store/index.js +2 -3
- package/dist/Store/utils.d.ts +2 -2
- package/dist/Store/utils.d.ts.map +1 -1
- package/dist/Store/utils.js +1 -1
- package/dist/{api/codec.d.ts → codec.d.ts} +1 -1
- package/dist/codec.d.ts.map +1 -0
- package/dist/codec.js +5 -0
- package/dist/{adapters/cosmos-client.d.ts → cosmos-client.d.ts} +1 -1
- package/dist/cosmos-client.d.ts.map +1 -0
- package/dist/cosmos-client.js +11 -0
- package/dist/errorReporter.d.ts +1 -1
- package/dist/errorReporter.d.ts.map +1 -1
- package/dist/errorReporter.js +2 -2
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/{api/internal → internal}/RequestContextMiddleware.d.ts +2 -2
- package/dist/internal/RequestContextMiddleware.d.ts.map +1 -0
- package/dist/internal/RequestContextMiddleware.js +46 -0
- package/dist/{api/internal → internal}/auth.d.ts +1 -1
- package/dist/internal/auth.d.ts.map +1 -0
- package/dist/internal/auth.js +180 -0
- package/dist/{api/internal → internal}/events.d.ts +1 -1
- package/dist/internal/events.d.ts.map +1 -0
- package/dist/internal/events.js +49 -0
- package/dist/{api/internal → internal}/health.d.ts +1 -1
- package/dist/internal/health.d.ts.map +1 -0
- package/dist/internal/health.js +5 -0
- package/dist/layerUtils.d.ts +32 -0
- package/dist/layerUtils.d.ts.map +1 -0
- package/dist/layerUtils.js +17 -0
- package/dist/logger/jsonLogger.d.ts +1 -1
- package/dist/logger/jsonLogger.d.ts.map +1 -1
- package/dist/logger/jsonLogger.js +2 -2
- package/dist/logger/logFmtLogger.d.ts +1 -1
- package/dist/logger/logFmtLogger.d.ts.map +1 -1
- package/dist/logger/logFmtLogger.js +2 -2
- package/dist/logger/shared.d.ts +2 -2
- package/dist/logger/shared.d.ts.map +1 -1
- package/dist/logger/shared.js +2 -2
- package/dist/logger.d.ts +1 -1
- package/dist/{adapters/memQueue.d.ts → memQueue.d.ts} +1 -1
- package/dist/memQueue.d.ts.map +1 -0
- package/dist/memQueue.js +21 -0
- package/dist/{api/middlewares.d.ts → middlewares.d.ts} +1 -1
- package/dist/middlewares.d.ts.map +1 -0
- package/dist/{api/middlewares.js → middlewares.js} +1 -1
- package/dist/{adapters/mongo-client.d.ts → mongo-client.d.ts} +1 -1
- package/dist/mongo-client.d.ts.map +1 -0
- package/dist/mongo-client.js +15 -0
- package/dist/{adapters/redis-client.d.ts → redis-client.d.ts} +1 -1
- package/dist/redis-client.d.ts.map +1 -0
- package/dist/redis-client.js +98 -0
- package/dist/reportError.d.ts +4 -0
- package/dist/reportError.d.ts.map +1 -0
- package/dist/reportError.js +28 -0
- package/dist/{api/routing → routing}/middleware/RouterMiddleware.d.ts +1 -1
- package/dist/routing/middleware/RouterMiddleware.d.ts.map +1 -0
- package/dist/{api/routing → routing}/middleware/RouterMiddleware.js +1 -1
- package/dist/{api/routing → routing}/middleware/middleware.d.ts +2 -2
- package/dist/routing/middleware/middleware.d.ts.map +1 -0
- package/dist/routing/middleware/middleware.js +128 -0
- package/dist/{api/routing → routing}/middleware.d.ts +1 -1
- package/dist/routing/middleware.d.ts.map +1 -0
- package/dist/{api/routing → routing}/middleware.js +1 -1
- package/dist/{api/routing → routing}/schema/jwt.d.ts +1 -1
- package/dist/routing/schema/jwt.d.ts.map +1 -0
- package/dist/routing/schema/jwt.js +13 -0
- package/dist/routing/tsort.d.ts +8 -0
- package/dist/routing/tsort.d.ts.map +1 -0
- package/dist/routing/tsort.js +51 -0
- package/dist/{api/routing → routing}/utils.d.ts +1 -1
- package/dist/routing/utils.d.ts.map +1 -0
- package/dist/routing/utils.js +45 -0
- package/dist/routing.d.ts +184 -0
- package/dist/routing.d.ts.map +1 -0
- package/dist/{api/routing.js → routing.js} +1 -1
- package/dist/{api/setupRequest.d.ts → setupRequest.d.ts} +2 -2
- package/dist/setupRequest.d.ts.map +1 -0
- package/dist/setupRequest.js +70 -0
- package/dist/{api/util.d.ts → util.d.ts} +1 -1
- package/dist/util.d.ts.map +1 -0
- package/dist/util.js +14 -0
- package/examples/query.ts +2 -2
- package/package.json +84 -200
- package/src/Emailer/Sendgrid.ts +20 -5
- package/src/Emailer/fake.ts +1 -1
- package/src/QueueMaker/SQLQueue.ts +3 -3
- package/src/QueueMaker/memQueue.ts +3 -3
- package/src/QueueMaker/sbqueue.ts +3 -3
- package/src/RequestFiberSet.ts +1 -1
- package/src/{adapters/SQL → SQL}/Model.ts +1 -1
- package/src/{adapters/ServiceBus.ts → ServiceBus.ts} +1 -1
- package/src/Store/ContextMapContainer.ts +1 -1
- package/src/Store/Cosmos/query.ts +3 -3
- package/src/Store/Cosmos.ts +4 -4
- package/src/Store/Disk.ts +2 -2
- package/src/Store/Memory.ts +4 -4
- package/src/Store/SQL/Pg.ts +3 -3
- package/src/Store/SQL/query.ts +2 -2
- package/src/Store/SQL.ts +3 -3
- package/src/Store/codeFilter.ts +3 -3
- package/src/Store/index.ts +2 -4
- package/src/Store/utils.ts +1 -1
- package/src/errorReporter.ts +1 -1
- package/src/index.ts +2 -1
- package/src/{api/internal → internal}/RequestContextMiddleware.ts +3 -3
- package/src/{api/internal → internal}/events.ts +2 -2
- package/src/{api/layerUtils.ts → layerUtils.ts} +1 -1
- package/src/logger/jsonLogger.ts +1 -1
- package/src/logger/logFmtLogger.ts +1 -1
- package/src/logger/shared.ts +1 -1
- package/src/{adapters/redis-client.ts → redis-client.ts} +1 -1
- package/src/{api/reportError.ts → reportError.ts} +1 -1
- package/src/{api/routing → routing}/middleware/middleware.ts +4 -4
- package/src/{api/routing.ts → routing.ts} +13 -13
- package/src/{api/setupRequest.ts → setupRequest.ts} +3 -3
- package/test/auth.test.ts +1 -1
- package/test/contextProvider.test.ts +1 -1
- package/test/controller.test.ts +3 -3
- package/test/cosmos-query.test.ts +1 -1
- package/test/dist/controller.test.d.ts.map +1 -1
- package/test/dist/query.test.d.ts.map +1 -1
- package/test/dist/rawQuery.test.d.ts.map +1 -1
- package/test/layerUtils.test.ts +1 -1
- package/test/query.test.ts +4 -4
- package/test/rawQuery.test.ts +4 -4
- package/test/repository-ext.test.ts +3 -3
- package/test/router-generator.test.ts +3 -3
- package/test/routing-interruptibility.test.ts +2 -2
- package/test/rpc-context-map-streaming.test.ts +3 -3
- package/test/rpc-e2e-invalidation.test.ts +2 -2
- package/test/rpc-multi-middleware.test.ts +1 -1
- package/test/rpc-stream-fullstack.test.ts +2 -2
- package/test/validateSample.test.ts +3 -3
- package/dist/Emailer/service.d.ts +0 -64
- package/dist/Emailer/service.d.ts.map +0 -1
- package/dist/Emailer/service.js +0 -7
- package/dist/Emailer.d.ts +0 -2
- package/dist/Emailer.d.ts.map +0 -1
- package/dist/Emailer.js +0 -2
- package/dist/Model/Repository/Registry.d.ts +0 -21
- package/dist/Model/Repository/Registry.d.ts.map +0 -1
- package/dist/Model/Repository/Registry.js +0 -18
- package/dist/Model/Repository/ext.d.ts +0 -60
- package/dist/Model/Repository/ext.d.ts.map +0 -1
- package/dist/Model/Repository/ext.js +0 -122
- package/dist/Model/Repository/internal/internal.d.ts +0 -62
- package/dist/Model/Repository/internal/internal.d.ts.map +0 -1
- package/dist/Model/Repository/internal/internal.js +0 -398
- package/dist/Model/Repository/legacy.d.ts +0 -21
- package/dist/Model/Repository/legacy.d.ts.map +0 -1
- package/dist/Model/Repository/legacy.js +0 -2
- package/dist/Model/Repository/makeRepo.d.ts +0 -53
- package/dist/Model/Repository/makeRepo.d.ts.map +0 -1
- package/dist/Model/Repository/makeRepo.js +0 -27
- package/dist/Model/Repository/service.d.ts +0 -97
- package/dist/Model/Repository/service.d.ts.map +0 -1
- package/dist/Model/Repository/service.js +0 -2
- package/dist/Model/Repository/validation.d.ts +0 -71
- package/dist/Model/Repository/validation.d.ts.map +0 -1
- package/dist/Model/Repository/validation.js +0 -32
- package/dist/Model/Repository.d.ts +0 -7
- package/dist/Model/Repository.d.ts.map +0 -1
- package/dist/Model/Repository.js +0 -7
- package/dist/Model/dsl.d.ts +0 -33
- package/dist/Model/dsl.d.ts.map +0 -1
- package/dist/Model/dsl.js +0 -43
- package/dist/Model/filter/filterApi.d.ts +0 -30
- package/dist/Model/filter/filterApi.d.ts.map +0 -1
- package/dist/Model/filter/filterApi.js +0 -2
- package/dist/Model/filter/types/errors.d.ts +0 -29
- package/dist/Model/filter/types/errors.d.ts.map +0 -1
- package/dist/Model/filter/types/errors.js +0 -2
- package/dist/Model/filter/types/fields.d.ts +0 -15
- package/dist/Model/filter/types/fields.d.ts.map +0 -1
- package/dist/Model/filter/types/fields.js +0 -2
- package/dist/Model/filter/types/path/common.d.ts +0 -316
- package/dist/Model/filter/types/path/common.d.ts.map +0 -1
- package/dist/Model/filter/types/path/common.js +0 -2
- package/dist/Model/filter/types/path/eager.d.ts +0 -95
- package/dist/Model/filter/types/path/eager.d.ts.map +0 -1
- package/dist/Model/filter/types/path/eager.js +0 -31
- package/dist/Model/filter/types/path/index.d.ts +0 -4
- package/dist/Model/filter/types/path/index.d.ts.map +0 -1
- package/dist/Model/filter/types/path/index.js +0 -3
- package/dist/Model/filter/types/utils.d.ts +0 -79
- package/dist/Model/filter/types/utils.d.ts.map +0 -1
- package/dist/Model/filter/types/utils.js +0 -2
- package/dist/Model/filter/types/validator.d.ts +0 -30
- package/dist/Model/filter/types/validator.d.ts.map +0 -1
- package/dist/Model/filter/types/validator.js +0 -2
- package/dist/Model/filter/types.d.ts +0 -5
- package/dist/Model/filter/types.d.ts.map +0 -1
- package/dist/Model/filter/types.js +0 -7
- package/dist/Model/query/dsl.d.ts +0 -446
- package/dist/Model/query/dsl.d.ts.map +0 -1
- package/dist/Model/query/dsl.js +0 -339
- package/dist/Model/query/new-kid-interpreter.d.ts +0 -136
- package/dist/Model/query/new-kid-interpreter.d.ts.map +0 -1
- package/dist/Model/query/new-kid-interpreter.js +0 -336
- package/dist/Model/query.d.ts +0 -15
- package/dist/Model/query.d.ts.map +0 -1
- package/dist/Model/query.js +0 -3
- package/dist/Model.d.ts +0 -5
- package/dist/Model.d.ts.map +0 -1
- package/dist/Model.js +0 -5
- package/dist/QueueMaker/service.d.ts +0 -13
- package/dist/QueueMaker/service.d.ts.map +0 -1
- package/dist/QueueMaker/service.js +0 -4
- package/dist/RequestContext.d.ts +0 -103
- package/dist/RequestContext.d.ts.map +0 -1
- package/dist/RequestContext.js +0 -49
- package/dist/Store/service.d.ts +0 -138
- package/dist/Store/service.d.ts.map +0 -1
- package/dist/Store/service.js +0 -95
- package/dist/Store.d.ts +0 -2
- package/dist/Store.d.ts.map +0 -1
- package/dist/Store.js +0 -2
- package/dist/adapters/SQL/Model.d.ts.map +0 -1
- package/dist/adapters/SQL/Model.js +0 -469
- package/dist/adapters/SQL.d.ts.map +0 -1
- package/dist/adapters/ServiceBus.d.ts.map +0 -1
- package/dist/adapters/ServiceBus.js +0 -108
- package/dist/adapters/cosmos-client.d.ts.map +0 -1
- package/dist/adapters/cosmos-client.js +0 -11
- package/dist/adapters/index.d.ts +0 -8
- package/dist/adapters/index.d.ts.map +0 -1
- package/dist/adapters/index.js +0 -8
- package/dist/adapters/logger.d.ts +0 -9
- package/dist/adapters/logger.d.ts.map +0 -1
- package/dist/adapters/logger.js +0 -3
- package/dist/adapters/memQueue.d.ts.map +0 -1
- package/dist/adapters/memQueue.js +0 -21
- package/dist/adapters/mongo-client.d.ts.map +0 -1
- package/dist/adapters/mongo-client.js +0 -15
- package/dist/adapters/redis-client.d.ts.map +0 -1
- package/dist/adapters/redis-client.js +0 -98
- package/dist/api/ContextProvider.d.ts +0 -34
- package/dist/api/ContextProvider.d.ts.map +0 -1
- package/dist/api/ContextProvider.js +0 -40
- package/dist/api/codec.d.ts.map +0 -1
- package/dist/api/codec.js +0 -5
- package/dist/api/internal/RequestContextMiddleware.d.ts.map +0 -1
- package/dist/api/internal/RequestContextMiddleware.js +0 -46
- package/dist/api/internal/auth.d.ts.map +0 -1
- package/dist/api/internal/auth.js +0 -180
- package/dist/api/internal/events.d.ts.map +0 -1
- package/dist/api/internal/events.js +0 -49
- package/dist/api/internal/health.d.ts.map +0 -1
- package/dist/api/internal/health.js +0 -5
- package/dist/api/layerUtils.d.ts +0 -32
- package/dist/api/layerUtils.d.ts.map +0 -1
- package/dist/api/layerUtils.js +0 -17
- package/dist/api/middlewares.d.ts.map +0 -1
- package/dist/api/reportError.d.ts +0 -4
- package/dist/api/reportError.d.ts.map +0 -1
- package/dist/api/reportError.js +0 -28
- package/dist/api/routing/middleware/RouterMiddleware.d.ts.map +0 -1
- package/dist/api/routing/middleware/middleware.d.ts.map +0 -1
- package/dist/api/routing/middleware/middleware.js +0 -128
- package/dist/api/routing/middleware.d.ts.map +0 -1
- package/dist/api/routing/schema/jwt.d.ts.map +0 -1
- package/dist/api/routing/schema/jwt.js +0 -13
- package/dist/api/routing/tsort.d.ts +0 -8
- package/dist/api/routing/tsort.d.ts.map +0 -1
- package/dist/api/routing/tsort.js +0 -51
- package/dist/api/routing/utils.d.ts.map +0 -1
- package/dist/api/routing/utils.js +0 -45
- package/dist/api/routing.d.ts +0 -184
- package/dist/api/routing.d.ts.map +0 -1
- package/dist/api/setupRequest.d.ts.map +0 -1
- package/dist/api/setupRequest.js +0 -70
- package/dist/api/util.d.ts.map +0 -1
- package/dist/api/util.js +0 -14
- package/src/Emailer/service.ts +0 -62
- package/src/Emailer.ts +0 -1
- package/src/Model/Repository/Registry.ts +0 -34
- package/src/Model/Repository/ext.ts +0 -375
- package/src/Model/Repository/internal/internal.ts +0 -692
- package/src/Model/Repository/legacy.ts +0 -29
- package/src/Model/Repository/makeRepo.ts +0 -144
- package/src/Model/Repository/service.ts +0 -639
- package/src/Model/Repository/validation.ts +0 -31
- package/src/Model/Repository.ts +0 -6
- package/src/Model/dsl.ts +0 -129
- package/src/Model/filter/filterApi.ts +0 -60
- package/src/Model/filter/types/errors.ts +0 -47
- package/src/Model/filter/types/fields.ts +0 -50
- package/src/Model/filter/types/path/common.ts +0 -404
- package/src/Model/filter/types/path/eager.ts +0 -297
- package/src/Model/filter/types/path/index.ts +0 -4
- package/src/Model/filter/types/utils.ts +0 -128
- package/src/Model/filter/types/validator.ts +0 -46
- package/src/Model/filter/types.ts +0 -6
- package/src/Model/query/dsl.ts +0 -2546
- package/src/Model/query/new-kid-interpreter.ts +0 -484
- package/src/Model/query.ts +0 -13
- package/src/Model.ts +0 -4
- package/src/QueueMaker/service.ts +0 -19
- package/src/RequestContext.ts +0 -62
- package/src/Store/service.ts +0 -233
- package/src/Store.ts +0 -1
- package/src/adapters/index.ts +0 -7
- package/src/adapters/logger.ts +0 -3
- /package/src/{api/ContextProvider.ts → ContextProvider.ts} +0 -0
- /package/src/{adapters/SQL.ts → SQL.ts} +0 -0
- /package/src/{api/codec.ts → codec.ts} +0 -0
- /package/src/{adapters/cosmos-client.ts → cosmos-client.ts} +0 -0
- /package/src/{api/internal → internal}/auth.ts +0 -0
- /package/src/{api/internal → internal}/health.ts +0 -0
- /package/src/{adapters/memQueue.ts → memQueue.ts} +0 -0
- /package/src/{api/middlewares.ts → middlewares.ts} +0 -0
- /package/src/{adapters/mongo-client.ts → mongo-client.ts} +0 -0
- /package/src/{api/routing → routing}/middleware/RouterMiddleware.ts +0 -0
- /package/src/{api/routing → routing}/middleware.ts +0 -0
- /package/src/{api/routing → routing}/schema/jwt.ts +0 -0
- /package/src/{api/routing → routing}/tsort.ts +0 -0
- /package/src/{api/routing → routing}/utils.ts +0 -0
- /package/src/{api/util.ts → util.ts} +0 -0
|
@@ -1,297 +0,0 @@
|
|
|
1
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
-
import { expectTypeOf } from "@effect/vitest"
|
|
3
|
-
import type { FieldValues } from "../fields.js"
|
|
4
|
-
import type { BrowserNativeObject, Equals, IsLiteral, IsNever, Primitive } from "../utils.js"
|
|
5
|
-
|
|
6
|
-
import type { ArrayKey, IsTuple, TupleKeys } from "./common.js"
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Helper type for recursively constructing paths through a type.
|
|
10
|
-
* See {@link Path}
|
|
11
|
-
*/
|
|
12
|
-
type PathImpl<K extends string | number, V> = V extends
|
|
13
|
-
| Primitive
|
|
14
|
-
| BrowserNativeObject ? `${K}`
|
|
15
|
-
: `${K}` | `${K}.${Path<V>}`
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* Type which eagerly collects all paths through a type
|
|
19
|
-
* @typeParam T - type which should be introspected
|
|
20
|
-
* @example
|
|
21
|
-
* ```
|
|
22
|
-
* Path<{foo: {bar: string}}> = 'foo' | 'foo.bar'
|
|
23
|
-
* ```
|
|
24
|
-
*/
|
|
25
|
-
export type Path<T> = T extends ReadonlyArray<infer V> ? IsTuple<T> extends true ? {
|
|
26
|
-
[K in TupleKeys<T>]-?: PathImpl<K & string, T[K]> | "length"
|
|
27
|
-
}[TupleKeys<T>]
|
|
28
|
-
: PathImpl<ArrayKey, V> | "length"
|
|
29
|
-
: {
|
|
30
|
-
[K in keyof T]-?: PathImpl<K & string, T[K]>
|
|
31
|
-
}[keyof T]
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* See {@link Path}
|
|
35
|
-
*/
|
|
36
|
-
export type FieldPath<TFieldValues extends FieldValues> = Path<TFieldValues>
|
|
37
|
-
|
|
38
|
-
/**
|
|
39
|
-
* Type to evaluate the type which the given path points to.
|
|
40
|
-
* @typeParam T - deeply nested type which is indexed by the path
|
|
41
|
-
* @typeParam P - path into the deeply nested type
|
|
42
|
-
* @example
|
|
43
|
-
* ```
|
|
44
|
-
* PathValue<{foo: {bar: string}}, 'foo.bar'> = string
|
|
45
|
-
* PathValue<[number, string], '1'> = string
|
|
46
|
-
* ```
|
|
47
|
-
*/
|
|
48
|
-
/* dprint-ignore-start */
|
|
49
|
-
export type PathValue<T, P extends Path<T>> =
|
|
50
|
-
T extends any
|
|
51
|
-
? P extends `${infer K}.${infer R}`
|
|
52
|
-
? K extends keyof T
|
|
53
|
-
? R extends Path<T[K]>
|
|
54
|
-
? PathValue<T[K], R>
|
|
55
|
-
: never
|
|
56
|
-
: K extends `${ArrayKey}`
|
|
57
|
-
? T extends ReadonlyArray<infer V>
|
|
58
|
-
? PathValue<V, R & Path<V>>
|
|
59
|
-
: never
|
|
60
|
-
: never
|
|
61
|
-
: P extends keyof T
|
|
62
|
-
? T[P]
|
|
63
|
-
: P extends `${ArrayKey}`
|
|
64
|
-
? T extends ReadonlyArray<infer V>
|
|
65
|
-
? V
|
|
66
|
-
: never
|
|
67
|
-
: never
|
|
68
|
-
: never
|
|
69
|
-
/* dprint-ignore-end */
|
|
70
|
-
|
|
71
|
-
/**
|
|
72
|
-
* See {@link PathValue}
|
|
73
|
-
*/
|
|
74
|
-
export type FieldPathValue<
|
|
75
|
-
TFieldValues extends FieldValues,
|
|
76
|
-
TFieldPath extends FieldPath<TFieldValues>
|
|
77
|
-
> = PathValue<TFieldValues, TFieldPath>
|
|
78
|
-
|
|
79
|
-
/* dprint-ignore-start */
|
|
80
|
-
export type SetPathValue<T, P extends Path<T>, X> =
|
|
81
|
-
T extends any
|
|
82
|
-
? P extends `${infer K}.${infer R}`
|
|
83
|
-
? K extends keyof T
|
|
84
|
-
? R extends Path<T[K]>
|
|
85
|
-
? { [_ in keyof T]: _ extends K ? SetPathValue<T[K], R, X> : T[_] }
|
|
86
|
-
: never
|
|
87
|
-
: K extends `${ArrayKey}`
|
|
88
|
-
? T extends ReadonlyArray<infer V>
|
|
89
|
-
? { [_ in keyof T]: SetPathValue<V, R & Path<V>, X> }
|
|
90
|
-
: never
|
|
91
|
-
: never
|
|
92
|
-
: P extends keyof T
|
|
93
|
-
? { [_ in keyof T]: _ extends P ? X : T[_] }
|
|
94
|
-
: P extends `${ArrayKey}`
|
|
95
|
-
? T extends ReadonlyArray<any>
|
|
96
|
-
? { [_ in keyof T]: X }
|
|
97
|
-
: never
|
|
98
|
-
: never
|
|
99
|
-
: never
|
|
100
|
-
/* dprint-ignore-end */
|
|
101
|
-
|
|
102
|
-
export type SetFieldPathValue<
|
|
103
|
-
TFieldValues extends FieldValues,
|
|
104
|
-
TFieldPath extends FieldPath<TFieldValues>,
|
|
105
|
-
X
|
|
106
|
-
> = SetPathValue<TFieldValues, TFieldPath, X>
|
|
107
|
-
|
|
108
|
-
/* dprint-ignore-start */
|
|
109
|
-
export type RefinePathValue<T, P extends Path<T>, X extends string | number | boolean | null | bigint, Exclde extends boolean = false> =
|
|
110
|
-
T extends any
|
|
111
|
-
// recursive cases
|
|
112
|
-
? P extends `${infer K}.${infer R}`
|
|
113
|
-
? K extends keyof T
|
|
114
|
-
? R extends Path<T[K]>
|
|
115
|
-
? { [_ in keyof T]: _ extends K ? RefinePathValue<T[K], R, X, Exclde> : T[_] }
|
|
116
|
-
: never
|
|
117
|
-
: K extends `${ArrayKey}`
|
|
118
|
-
? T extends ReadonlyArray<infer V>
|
|
119
|
-
? { [_ in keyof T]: RefinePathValue<V, R & Path<V>, X, Exclde> }
|
|
120
|
-
: never
|
|
121
|
-
: never
|
|
122
|
-
// base cases
|
|
123
|
-
: P extends keyof T
|
|
124
|
-
? X extends T[P]
|
|
125
|
-
? ({ [_ in keyof T]: _ extends P
|
|
126
|
-
? Equals<
|
|
127
|
-
Exclde,
|
|
128
|
-
true,
|
|
129
|
-
Exclude<T[_], X>,
|
|
130
|
-
IsLiteral<T[_], X, Equals<X, null, null, NonNullable<T[_]>>>
|
|
131
|
-
>
|
|
132
|
-
: T[_]
|
|
133
|
-
}) extends infer $T
|
|
134
|
-
? Equals<IsNever<$T[P & keyof $T]>, true, never, $T>
|
|
135
|
-
: never
|
|
136
|
-
: Equals<Exclde, true, T, never>
|
|
137
|
-
: P extends `${ArrayKey}`
|
|
138
|
-
? T extends ReadonlyArray<infer V>
|
|
139
|
-
? X extends V
|
|
140
|
-
? { [_ in keyof T]: Equals<
|
|
141
|
-
Exclde,
|
|
142
|
-
true,
|
|
143
|
-
Exclude<T[_], X>,
|
|
144
|
-
IsLiteral<T[_], X, Equals<X, null, null, NonNullable<T[_]>>>
|
|
145
|
-
> }
|
|
146
|
-
: never
|
|
147
|
-
: never
|
|
148
|
-
: never
|
|
149
|
-
: never
|
|
150
|
-
/* dprint-ignore-end */
|
|
151
|
-
|
|
152
|
-
export type EraseNeverContainingUnionElements<T> = T extends any ? {
|
|
153
|
-
[K in keyof T]: IsNever<T[K]> extends true ? true : false
|
|
154
|
-
} extends infer $NC ? true extends $NC[keyof $NC] ? never : T
|
|
155
|
-
: never : never
|
|
156
|
-
|
|
157
|
-
export type RefineFieldPathValue<
|
|
158
|
-
TFieldValues extends FieldValues,
|
|
159
|
-
TFieldPath extends FieldPath<TFieldValues>,
|
|
160
|
-
X extends string | number | boolean | null | bigint,
|
|
161
|
-
Exclde extends boolean = false
|
|
162
|
-
> = EraseNeverContainingUnionElements<RefinePathValue<TFieldValues, TFieldPath, X, Exclde>>
|
|
163
|
-
|
|
164
|
-
export namespace RefinePathValueTests {
|
|
165
|
-
type test1 = RefineFieldPathValue<{ a: { b: "tag1"; v1: string } | { b: "tag2"; v2: number } }, "a.b", "tag1">
|
|
166
|
-
expectTypeOf<test1>().toEqualTypeOf<{ a: { b: "tag1"; v1: string } }>()
|
|
167
|
-
|
|
168
|
-
type test2 = RefineFieldPathValue<{ b: "tag1"; v1: string } | { b: "tag2"; v2: number }, "b", "tag1">
|
|
169
|
-
expectTypeOf<test2>().toEqualTypeOf<{ b: "tag1"; v1: string }>()
|
|
170
|
-
|
|
171
|
-
type test3 = RefineFieldPathValue<{ b: "tag1" | "tag2" }, "b", "tag1">
|
|
172
|
-
expectTypeOf<test3>().toEqualTypeOf<{ b: "tag1" }>()
|
|
173
|
-
|
|
174
|
-
type test4 = RefineFieldPathValue<{ b: ("tag1" | "tag2")[] }, `b.${number}`, "tag1">
|
|
175
|
-
expectTypeOf<test4>().toEqualTypeOf<{ b: "tag1"[] }>()
|
|
176
|
-
|
|
177
|
-
type test5 = RefineFieldPathValue<{ b: "tag1"; v1: unknown } | { b: "tag2"; v2: unknown }, "b", "tag1">
|
|
178
|
-
expectTypeOf<test5>().toEqualTypeOf<{ b: "tag1"; v1: unknown }>()
|
|
179
|
-
|
|
180
|
-
type test6 = RefineFieldPathValue<
|
|
181
|
-
{ a: { b: "tag1"; v1: string } | { b: "tag2"; v2: number } } | { something: "else " },
|
|
182
|
-
"a.b",
|
|
183
|
-
"tag2"
|
|
184
|
-
>
|
|
185
|
-
expectTypeOf<test6>().toEqualTypeOf<{ a: { b: "tag2"; v2: number } }>()
|
|
186
|
-
|
|
187
|
-
type test7 = RefineFieldPathValue<{ b: string | null }, "b", "tag1">
|
|
188
|
-
expectTypeOf<test7>().toEqualTypeOf<{ b: string }>()
|
|
189
|
-
|
|
190
|
-
type test8 = RefineFieldPathValue<{ b: string | null }, "b", null>
|
|
191
|
-
expectTypeOf<test8>().toEqualTypeOf<{ b: null }>()
|
|
192
|
-
|
|
193
|
-
type test1E = RefineFieldPathValue<{ a: { b: "tag1"; v1: string } | { b: "tag2"; v2: number } }, "a.b", "tag1", true>
|
|
194
|
-
expectTypeOf<test1E>().toEqualTypeOf<{ a: { b: "tag2"; v2: number } }>()
|
|
195
|
-
|
|
196
|
-
type test2E = RefineFieldPathValue<{ b: "tag1"; v1: string } | { b: "tag2"; v2: number }, "b", "tag2", true>
|
|
197
|
-
expectTypeOf<test2E>().toEqualTypeOf<{ b: "tag1"; v1: string }>()
|
|
198
|
-
|
|
199
|
-
type test3E = RefineFieldPathValue<{ b: "tag1" | "tag2" | null }, "b", null, true>
|
|
200
|
-
expectTypeOf<test3E>().toEqualTypeOf<{ b: "tag1" | "tag2" }>()
|
|
201
|
-
|
|
202
|
-
type test4E = RefineFieldPathValue<{ b: ("tag1" | "tag2")[] }, `b.${number}`, "tag1", true>
|
|
203
|
-
expectTypeOf<test4E>().toEqualTypeOf<{ b: "tag2"[] }>()
|
|
204
|
-
|
|
205
|
-
type test5E = RefineFieldPathValue<{ b: "tag1"; v1: unknown } | { b: "tag2"; v2: unknown }, "b", "tag1", true>
|
|
206
|
-
expectTypeOf<test5E>().toEqualTypeOf<{ b: "tag2"; v2: unknown }>()
|
|
207
|
-
|
|
208
|
-
type test6E = RefineFieldPathValue<
|
|
209
|
-
{ a: { b: "tag1"; v1: string } | { b: "tag2"; v2: number } } | { something: "else " },
|
|
210
|
-
"a.b",
|
|
211
|
-
"tag2",
|
|
212
|
-
true
|
|
213
|
-
>
|
|
214
|
-
expectTypeOf<test6E>().toEqualTypeOf<{ a: { b: "tag1"; v1: string } }>()
|
|
215
|
-
|
|
216
|
-
type test10 = RefineFieldPathValue<
|
|
217
|
-
| { nested: { a: string; _tag: "a" } | { b: number; _tag: "b" }; _tag: "ab" }
|
|
218
|
-
| { nested: { b: number; _tag: "b" } | { c: boolean; _tag: "c" }; _tag: "bc" },
|
|
219
|
-
"nested._tag",
|
|
220
|
-
"a"
|
|
221
|
-
>
|
|
222
|
-
|
|
223
|
-
expectTypeOf<test10>().toEqualTypeOf<{
|
|
224
|
-
nested: {
|
|
225
|
-
a: string
|
|
226
|
-
_tag: "a"
|
|
227
|
-
}
|
|
228
|
-
_tag: "ab"
|
|
229
|
-
}>()
|
|
230
|
-
}
|
|
231
|
-
|
|
232
|
-
export namespace SetFieldPathValueTests {
|
|
233
|
-
type test1 = SetFieldPathValue<{ foo: { bar: string[] } }, `foo.bar`, boolean>
|
|
234
|
-
expectTypeOf<test1>().toEqualTypeOf<{ foo: { bar: boolean } }>()
|
|
235
|
-
|
|
236
|
-
type test1a = SetFieldPathValue<{ foo: { bar: string[]; baz: 12 } }, `foo.bar`, boolean>
|
|
237
|
-
expectTypeOf<test1a>().toEqualTypeOf<{ foo: { bar: boolean; baz: 12 } }>()
|
|
238
|
-
|
|
239
|
-
type test2 = SetFieldPathValue<{ foo: { bar: string[] } }, `foo.bar.${number}`, boolean>
|
|
240
|
-
expectTypeOf<test2>().toEqualTypeOf<{ foo: { bar: boolean[] } }>()
|
|
241
|
-
|
|
242
|
-
type test2a = SetFieldPathValue<{ foo: { bar: readonly string[]; baz: 3 }; ban: 123 }, `foo.bar.${number}`, boolean>
|
|
243
|
-
expectTypeOf<test2a>().toEqualTypeOf<{ foo: { bar: readonly boolean[]; baz: 3 }; ban: 123 }>()
|
|
244
|
-
|
|
245
|
-
type test2b = SetFieldPathValue<
|
|
246
|
-
{ foo: { bar: readonly { a: 1; b: 2 }[]; baz: 3 }; ban: 123 },
|
|
247
|
-
`foo.bar.${number}.b`,
|
|
248
|
-
"b"
|
|
249
|
-
>
|
|
250
|
-
expectTypeOf<test2b>().toEqualTypeOf<{ foo: { bar: readonly { a: 1; b: "b" }[]; baz: 3 }; ban: 123 }>()
|
|
251
|
-
|
|
252
|
-
type test3 = SetFieldPathValue<{ foo: ["a", "b"] }, `foo.0`, boolean>
|
|
253
|
-
expectTypeOf<test3>().toEqualTypeOf<{ foo: [boolean, "b"] }>()
|
|
254
|
-
|
|
255
|
-
type test3a = SetFieldPathValue<{ foo: [{ a: 123 }, "b"] }, `foo.0.a`, boolean>
|
|
256
|
-
expectTypeOf<test3a>().toEqualTypeOf<{ foo: [{ a: boolean }, "b"] }>()
|
|
257
|
-
}
|
|
258
|
-
|
|
259
|
-
/**
|
|
260
|
-
* Type to evaluate the type which the given paths point to.
|
|
261
|
-
* @typeParam TFieldValues - field values which are indexed by the paths
|
|
262
|
-
* @typeParam TPath - paths into the deeply nested field values
|
|
263
|
-
* @example
|
|
264
|
-
* ```
|
|
265
|
-
* FieldPathValues<{foo: {bar: string}}, ['foo', 'foo.bar']>
|
|
266
|
-
* = [{bar: string}, string]
|
|
267
|
-
* ```
|
|
268
|
-
*/
|
|
269
|
-
export type FieldPathValues<
|
|
270
|
-
TFieldValues extends FieldValues,
|
|
271
|
-
TPath extends FieldPath<TFieldValues>[] | readonly FieldPath<TFieldValues>[]
|
|
272
|
-
> =
|
|
273
|
-
& {}
|
|
274
|
-
& {
|
|
275
|
-
[K in keyof TPath]: FieldPathValue<
|
|
276
|
-
TFieldValues,
|
|
277
|
-
TPath[K] & FieldPath<TFieldValues>
|
|
278
|
-
>
|
|
279
|
-
}
|
|
280
|
-
|
|
281
|
-
/**
|
|
282
|
-
* Type which eagerly collects all paths through a fieldType that matches a give type
|
|
283
|
-
* @typeParam TFieldValues - field values which are indexed by the paths
|
|
284
|
-
* @typeParam TValue - the value you want to match into each type
|
|
285
|
-
* @example
|
|
286
|
-
* ```typescript
|
|
287
|
-
* FieldPathByValue<{foo: {bar: number}, baz: number, bar: string}, number>
|
|
288
|
-
* = 'foo.bar' | 'baz'
|
|
289
|
-
* ```
|
|
290
|
-
*/
|
|
291
|
-
export type FieldPathByValue<TFieldValues extends FieldValues, TValue> = {
|
|
292
|
-
[Key in FieldPath<TFieldValues>]: FieldPathValue<
|
|
293
|
-
TFieldValues,
|
|
294
|
-
Key
|
|
295
|
-
> extends TValue ? Key
|
|
296
|
-
: never
|
|
297
|
-
}[FieldPath<TFieldValues>]
|
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
declare const $NestedValue: unique symbol
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* @deprecated to be removed in the next major version
|
|
5
|
-
*/
|
|
6
|
-
export type NestedValue<TValue extends object = object> = {
|
|
7
|
-
[$NestedValue]: never
|
|
8
|
-
} & TValue
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* @deprecated to be removed in the next major version
|
|
12
|
-
*/
|
|
13
|
-
export type UnpackNestedValue<T> = T extends NestedValue<infer U> ? U
|
|
14
|
-
: T extends Date | FileList | File | Blob ? T
|
|
15
|
-
: T extends object ? { [K in keyof T]: UnpackNestedValue<T[K]> }
|
|
16
|
-
: T
|
|
17
|
-
|
|
18
|
-
/*
|
|
19
|
-
Projects that React Hook Form installed don't include the DOM library need these interfaces to compile.
|
|
20
|
-
React Native applications is no DOM available. The JavaScript runtime is ES6/ES2015 only.
|
|
21
|
-
These definitions allow such projects to compile with only --lib ES6.
|
|
22
|
-
|
|
23
|
-
Warning: all of these interfaces are empty.
|
|
24
|
-
If you want type definitions for various properties, you need to add `--lib DOM` (via command line or tsconfig.json).
|
|
25
|
-
*/
|
|
26
|
-
|
|
27
|
-
export type Noop = () => void
|
|
28
|
-
|
|
29
|
-
interface File extends Blob {
|
|
30
|
-
readonly lastModified: number
|
|
31
|
-
readonly name: string
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
interface FileList {
|
|
35
|
-
readonly length: number
|
|
36
|
-
item(index: number): File | null
|
|
37
|
-
[index: number]: File
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
export type Primitive =
|
|
41
|
-
| null
|
|
42
|
-
| undefined
|
|
43
|
-
| string
|
|
44
|
-
| number
|
|
45
|
-
| boolean
|
|
46
|
-
| symbol
|
|
47
|
-
| bigint
|
|
48
|
-
|
|
49
|
-
export type BrowserNativeObject = Date | FileList | File
|
|
50
|
-
|
|
51
|
-
export type EmptyObject = { [K in string | number]: never }
|
|
52
|
-
|
|
53
|
-
export type NonUndefined<T> = T extends undefined ? never : T
|
|
54
|
-
|
|
55
|
-
export type LiteralUnion<T extends U, U extends Primitive> =
|
|
56
|
-
| T
|
|
57
|
-
| (U & { _?: never })
|
|
58
|
-
|
|
59
|
-
export type DeepPartial<T> = T extends BrowserNativeObject | NestedValue ? T
|
|
60
|
-
: { [K in keyof T]?: DeepPartial<T[K]> }
|
|
61
|
-
|
|
62
|
-
export type DeepPartialSkipArrayKey<T> = T extends
|
|
63
|
-
| BrowserNativeObject
|
|
64
|
-
| NestedValue ? T
|
|
65
|
-
: T extends ReadonlyArray<any> ? { [K in keyof T]: DeepPartialSkipArrayKey<T[K]> }
|
|
66
|
-
: { [K in keyof T]?: DeepPartialSkipArrayKey<T[K]> }
|
|
67
|
-
|
|
68
|
-
/**
|
|
69
|
-
* Checks whether the type is any
|
|
70
|
-
* See {@link https://stackoverflow.com/a/49928360/3406963}
|
|
71
|
-
* @typeParam T - type which may be any
|
|
72
|
-
* ```
|
|
73
|
-
* IsAny<any> = true
|
|
74
|
-
* IsAny<string> = false
|
|
75
|
-
* ```
|
|
76
|
-
*/
|
|
77
|
-
export type IsAny<T> = 0 extends 1 & T ? true : false
|
|
78
|
-
|
|
79
|
-
/**
|
|
80
|
-
* Checks whether the type is never
|
|
81
|
-
* @typeParam T - type which may be never
|
|
82
|
-
* ```
|
|
83
|
-
* IsAny<never> = true
|
|
84
|
-
* IsAny<string> = false
|
|
85
|
-
* ```
|
|
86
|
-
*/
|
|
87
|
-
export type IsNever<T> = [T] extends [never] ? true : false
|
|
88
|
-
|
|
89
|
-
export type DeepMap<T, TValue> = IsAny<T> extends true ? any
|
|
90
|
-
: T extends BrowserNativeObject | NestedValue ? TValue
|
|
91
|
-
: T extends object ? { [K in keyof T]: DeepMap<NonUndefined<T[K]>, TValue> }
|
|
92
|
-
: TValue
|
|
93
|
-
|
|
94
|
-
export type IsFlatObject<T extends object> = Extract<
|
|
95
|
-
Exclude<T[keyof T], NestedValue | Date | FileList>,
|
|
96
|
-
any[] | object
|
|
97
|
-
> extends never ? true
|
|
98
|
-
: false
|
|
99
|
-
|
|
100
|
-
export type Merge<A, B> = {
|
|
101
|
-
[K in keyof A | keyof B]?: K extends keyof A & keyof B ? [A[K], B[K]] extends [object, object] ? Merge<A[K], B[K]>
|
|
102
|
-
: A[K] | B[K]
|
|
103
|
-
: K extends keyof A ? A[K]
|
|
104
|
-
: K extends keyof B ? B[K]
|
|
105
|
-
: never
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
export type Resolve<T> =
|
|
109
|
-
& {
|
|
110
|
-
[K in keyof T]: Resolve<T[K]>
|
|
111
|
-
}
|
|
112
|
-
& {}
|
|
113
|
-
|
|
114
|
-
export type ResolveFirstLevel<T> =
|
|
115
|
-
& {
|
|
116
|
-
[K in keyof T]: T[K]
|
|
117
|
-
}
|
|
118
|
-
& {}
|
|
119
|
-
|
|
120
|
-
export type Cast<T, U> = T extends U ? T : U
|
|
121
|
-
|
|
122
|
-
export type IsLiteral<T, True, False> = string extends T ? False : number extends T ? False : True
|
|
123
|
-
|
|
124
|
-
export type Extends<T, U, True, False> = T extends U ? True : False
|
|
125
|
-
|
|
126
|
-
export type IsEqual<T, U> = (<_>() => _ extends T ? 1 : 2) extends (<_>() => _ extends U ? 1 : 2) ? true : false
|
|
127
|
-
|
|
128
|
-
export type Equals<T, U, True, False> = IsEqual<T, U> extends true ? True : False
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import type { Message } from "./errors.js"
|
|
2
|
-
import type { FieldValues, InternalFieldName } from "./fields.js"
|
|
3
|
-
import type { FieldPath, FieldPathValue } from "./path/index.js"
|
|
4
|
-
|
|
5
|
-
export type ValidationValue = boolean | number | string | RegExp
|
|
6
|
-
|
|
7
|
-
export type ValidationRule<
|
|
8
|
-
TValidationValue extends ValidationValue = ValidationValue
|
|
9
|
-
> = TValidationValue | ValidationValueMessage<TValidationValue>
|
|
10
|
-
|
|
11
|
-
export type ValidationValueMessage<
|
|
12
|
-
TValidationValue extends ValidationValue = ValidationValue
|
|
13
|
-
> = {
|
|
14
|
-
value: TValidationValue
|
|
15
|
-
message: Message
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
export type ValidateResult = Message | Message[] | boolean | undefined
|
|
19
|
-
|
|
20
|
-
export type Validate<TFieldValue> = (
|
|
21
|
-
value: TFieldValue
|
|
22
|
-
) => ValidateResult | Promise<ValidateResult>
|
|
23
|
-
|
|
24
|
-
export type RegisterOptions<
|
|
25
|
-
TFieldValues extends FieldValues = FieldValues,
|
|
26
|
-
TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>
|
|
27
|
-
> = Partial<{
|
|
28
|
-
required: Message | ValidationRule<boolean>
|
|
29
|
-
min: ValidationRule<number | string>
|
|
30
|
-
max: ValidationRule<number | string>
|
|
31
|
-
maxLength: ValidationRule<number>
|
|
32
|
-
minLength: ValidationRule<number>
|
|
33
|
-
pattern: ValidationRule<RegExp>
|
|
34
|
-
validate:
|
|
35
|
-
| Validate<FieldPathValue<TFieldValues, TFieldName>>
|
|
36
|
-
| Record<string, Validate<FieldPathValue<TFieldValues, TFieldName>>>
|
|
37
|
-
valueAsNumber: boolean
|
|
38
|
-
valueAsDate: boolean
|
|
39
|
-
value: FieldPathValue<TFieldValues, TFieldName>
|
|
40
|
-
setValueAs: (value: any) => any
|
|
41
|
-
shouldUnregister?: boolean
|
|
42
|
-
onChange?: (event: any) => void
|
|
43
|
-
onBlur?: (event: any) => void
|
|
44
|
-
disabled: boolean
|
|
45
|
-
deps: InternalFieldName | InternalFieldName[]
|
|
46
|
-
}>
|