UNPKG

3.18 kBJavaScriptView Raw
1"use strict";
2
3const {
4 GraphQLInputObjectType,
5 GraphQLBoolean,
6 GraphQLString,
7 GraphQLInt,
8 GraphQLFloat,
9 GraphQLEnumType,
10 GraphQLNonNull
11} = require(`gatsby/graphql`);
12
13const sharp = require(`./safe-sharp`);
14
15const {
16 Potrace
17} = require(`potrace`);
18
19const ImageFormatType = new GraphQLEnumType({
20 name: `ImageFormat`,
21 values: {
22 NO_CHANGE: {
23 value: ``
24 },
25 JPG: {
26 value: `jpg`
27 },
28 PNG: {
29 value: `png`
30 },
31 WEBP: {
32 value: `webp`
33 }
34 }
35});
36const ImageFitType = new GraphQLEnumType({
37 name: `ImageFit`,
38 values: {
39 COVER: {
40 value: sharp.fit.cover
41 },
42 CONTAIN: {
43 value: sharp.fit.contain
44 },
45 FILL: {
46 value: sharp.fit.fill
47 },
48 INSIDE: {
49 value: sharp.fit.inside
50 },
51 OUTSIDE: {
52 value: sharp.fit.outside
53 }
54 }
55});
56const ImageCropFocusType = new GraphQLEnumType({
57 name: `ImageCropFocus`,
58 values: {
59 CENTER: {
60 value: sharp.gravity.center
61 },
62 NORTH: {
63 value: sharp.gravity.north
64 },
65 NORTHEAST: {
66 value: sharp.gravity.northeast
67 },
68 EAST: {
69 value: sharp.gravity.east
70 },
71 SOUTHEAST: {
72 value: sharp.gravity.southeast
73 },
74 SOUTH: {
75 value: sharp.gravity.south
76 },
77 SOUTHWEST: {
78 value: sharp.gravity.southwest
79 },
80 WEST: {
81 value: sharp.gravity.west
82 },
83 NORTHWEST: {
84 value: sharp.gravity.northwest
85 },
86 ENTROPY: {
87 value: sharp.strategy.entropy
88 },
89 ATTENTION: {
90 value: sharp.strategy.attention
91 }
92 }
93});
94const DuotoneGradientType = new GraphQLInputObjectType({
95 name: `DuotoneGradient`,
96 fields: () => {
97 return {
98 highlight: {
99 type: new GraphQLNonNull(GraphQLString)
100 },
101 shadow: {
102 type: new GraphQLNonNull(GraphQLString)
103 },
104 opacity: {
105 type: GraphQLInt
106 }
107 };
108 }
109});
110const PotraceTurnPolicyType = new GraphQLEnumType({
111 name: `PotraceTurnPolicy`,
112 values: {
113 TURNPOLICY_BLACK: {
114 value: Potrace.TURNPOLICY_BLACK
115 },
116 TURNPOLICY_WHITE: {
117 value: Potrace.TURNPOLICY_WHITE
118 },
119 TURNPOLICY_LEFT: {
120 value: Potrace.TURNPOLICY_LEFT
121 },
122 TURNPOLICY_RIGHT: {
123 value: Potrace.TURNPOLICY_RIGHT
124 },
125 TURNPOLICY_MINORITY: {
126 value: Potrace.TURNPOLICY_MINORITY
127 },
128 TURNPOLICY_MAJORITY: {
129 value: Potrace.TURNPOLICY_MAJORITY
130 }
131 }
132});
133const PotraceType = new GraphQLInputObjectType({
134 name: `Potrace`,
135 fields: () => {
136 return {
137 turnPolicy: {
138 type: PotraceTurnPolicyType
139 },
140 turdSize: {
141 type: GraphQLFloat
142 },
143 alphaMax: {
144 type: GraphQLFloat
145 },
146 optCurve: {
147 type: GraphQLBoolean
148 },
149 optTolerance: {
150 type: GraphQLFloat
151 },
152 threshold: {
153 type: GraphQLInt
154 },
155 blackOnWhite: {
156 type: GraphQLBoolean
157 },
158 color: {
159 type: GraphQLString
160 },
161 background: {
162 type: GraphQLString
163 }
164 };
165 }
166});
167module.exports = {
168 ImageFormatType,
169 ImageFitType,
170 ImageCropFocusType,
171 DuotoneGradientType,
172 PotraceTurnPolicyType,
173 PotraceType
174};
\No newline at end of file