Skip to content

Commit 18d3f4a

Browse files
committed
fixed test.graphql and codegen.yml
1 parent cee5815 commit 18d3f4a

File tree

2 files changed

+52
-4
lines changed

2 files changed

+52
-4
lines changed

codegen.yml

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,32 @@ generates:
88
plugins:
99
- ./dist/main/index.js:
1010
schema: yup
11-
importFrom: ./types
11+
importFrom: ./types
12+
directives:
13+
required:
14+
msg: required
15+
# This is example using constraint directive.
16+
# see: https://github.com/confuser/graphql-constraint-directive
17+
constraint:
18+
minLength: min # same as ['min', '$1']
19+
maxLength: max
20+
startsWith: ["matches", "/^$1/"]
21+
endsWith: ["matches", "/$1$/"]
22+
contains: ["matches", "/$1/"]
23+
notContains: ["matches", "/^((?!$1).)*$/"]
24+
pattern: ["matches", "/$1/"]
25+
format:
26+
# For example, `@constraint(format: "uri")`. this case $1 will be "uri".
27+
# Therefore the generator generates yup schema `.url()` followed by `uri: 'url'`
28+
# If $1 does not match anywhere, the generator will ignore.
29+
uri: url
30+
email: email
31+
uuid: uuid
32+
# yup does not have `ipv4` API. If you want to add this,
33+
# you need to add the logic using `yup.addMethod`.
34+
# see: https://github.com/jquense/yup#addmethodschematype-schema-name-string-method--schema-void
35+
ipv4: ipv4
36+
min: ["min", "$1 - 1"]
37+
max: ["max", "$1 + 1"]
38+
exclusiveMin: min
39+
exclusiveMax: max

test.graphql

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,8 @@ enum EventOptionType {
5757
}
5858

5959
input EventArgumentInput {
60-
name: String!
61-
value: String!
60+
name: String! @constraint(minLength: 5)
61+
value: String! @constraint(startsWith: "foo")
6262
}
6363

6464
input HTTPInput {
@@ -72,4 +72,24 @@ enum HTTPMethod {
7272
}
7373

7474
scalar Date
75-
scalar URL
75+
scalar URL
76+
77+
# https://github.com/confuser/graphql-constraint-directive
78+
directive @constraint(
79+
# String constraints
80+
minLength: Int
81+
maxLength: Int
82+
startsWith: String
83+
endsWith: String
84+
contains: String
85+
notContains: String
86+
pattern: String
87+
format: String
88+
# Number constraints
89+
min: Float
90+
max: Float
91+
exclusiveMin: Float
92+
exclusiveMax: Float
93+
multipleOf: Float
94+
uniqueTypeName: String
95+
) on INPUT_FIELD_DEFINITION | FIELD_DEFINITION

0 commit comments

Comments
 (0)