giraffeql 2.0.7 → 2.0.10

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/README.md CHANGED
@@ -9,6 +9,8 @@ GiraffeQL is a JSON-friendly method of sending queries between the client and se
9
9
  For more information about GiraffeQL features, check out these wiki links:
10
10
 
11
11
  - [Hello World example](https://github.com/big213/giraffeql/wiki/Getting-Started)
12
+ - [Giraffeql Boilerplate Template](https://github.com/big213/giraffeql-boilerplate)
13
+ - [Giraffeql.com - Website for documenting your giraffes](https://github.com/big213/giraffeql.com)
12
14
  - [Roadmap](https://github.com/big213/giraffeql/wiki/Roadmap)
13
15
 
14
16
  ## License
@@ -2,6 +2,6 @@ import { GiraffeqlBaseError } from "..";
2
2
  export declare class GiraffeqlArgsError extends GiraffeqlBaseError {
3
3
  constructor(params: {
4
4
  message: string;
5
- fieldPath: string[];
5
+ fieldPath?: string[];
6
6
  });
7
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"argsError.js","sourceRoot":"","sources":["../../../src/classes/error/argsError.ts"],"names":[],"mappings":";;;AAAA,0BAAwC;AACxC,MAAa,kBAAmB,SAAQ,sBAAkB;IACxD,YAAY,MAAgD;QAC1D,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;QACtC,KAAK,CAAC;YACJ,SAAS,EAAE,oBAAoB;YAC/B,OAAO;YACP,SAAS;YACT,UAAU,EAAE,GAAG;SAChB,CAAC,CAAC;IACL,CAAC;CACF;AAVD,gDAUC"}
1
+ {"version":3,"file":"argsError.js","sourceRoot":"","sources":["../../../src/classes/error/argsError.ts"],"names":[],"mappings":";;;AAAA,0BAAwC;AACxC,MAAa,kBAAmB,SAAQ,sBAAkB;IACxD,YAAY,MAAiD;QAC3D,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;QACtC,KAAK,CAAC;YACJ,SAAS,EAAE,oBAAoB;YAC/B,OAAO;YACP,SAAS;YACT,UAAU,EAAE,GAAG;SAChB,CAAC,CAAC;IACL,CAAC;CACF;AAVD,gDAUC"}
@@ -1,10 +1,10 @@
1
1
  export declare class GiraffeqlBaseError extends Error {
2
2
  name: string;
3
- fieldPath: string[];
3
+ fieldPath?: string[];
4
4
  statusCode: number;
5
5
  constructor(params: {
6
6
  errorName?: string;
7
- message: string;
7
+ message?: string;
8
8
  fieldPath?: string[];
9
9
  statusCode?: number;
10
10
  });
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.GiraffeqlBaseError = void 0;
4
4
  class GiraffeqlBaseError extends Error {
5
5
  constructor(params) {
6
- const { errorName = "GiraffeqlBaseError", message, fieldPath = [], statusCode = 500, } = params;
6
+ const { errorName = "GiraffeqlBaseError", message = "An unspecified error has occurred", fieldPath, statusCode = 500, } = params;
7
7
  super(message);
8
8
  this.name = errorName;
9
9
  this.fieldPath = fieldPath;
@@ -1 +1 @@
1
- {"version":3,"file":"baseError.js","sourceRoot":"","sources":["../../../src/classes/error/baseError.ts"],"names":[],"mappings":";;;AAAA,MAAa,kBAAmB,SAAQ,KAAK;IAK3C,YAAY,MAKX;QACC,MAAM,EACJ,SAAS,GAAG,oBAAoB,EAChC,OAAO,EACP,SAAS,GAAG,EAAE,EACd,UAAU,GAAG,GAAG,GACjB,GAAG,MAAM,CAAC;QACX,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;QACtB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;CACF;AAtBD,gDAsBC"}
1
+ {"version":3,"file":"baseError.js","sourceRoot":"","sources":["../../../src/classes/error/baseError.ts"],"names":[],"mappings":";;;AAAA,MAAa,kBAAmB,SAAQ,KAAK;IAK3C,YAAY,MAKX;QACC,MAAM,EACJ,SAAS,GAAG,oBAAoB,EAChC,OAAO,GAAG,mCAAmC,EAC7C,SAAS,EACT,UAAU,GAAG,GAAG,GACjB,GAAG,MAAM,CAAC;QACX,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;QACtB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;CACF;AAtBD,gDAsBC"}
@@ -2,6 +2,6 @@ import { GiraffeqlBaseError } from "..";
2
2
  export declare class GiraffeqlQueryError extends GiraffeqlBaseError {
3
3
  constructor(params: {
4
4
  message: string;
5
- fieldPath: string[];
5
+ fieldPath?: string[];
6
6
  });
7
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"queryError.js","sourceRoot":"","sources":["../../../src/classes/error/queryError.ts"],"names":[],"mappings":";;;AAAA,0BAAwC;AACxC,MAAa,mBAAoB,SAAQ,sBAAkB;IACzD,YAAY,MAAgD;QAC1D,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;QACtC,KAAK,CAAC;YACJ,SAAS,EAAE,qBAAqB;YAChC,OAAO;YACP,SAAS;YACT,UAAU,EAAE,GAAG;SAChB,CAAC,CAAC;IACL,CAAC;CACF;AAVD,kDAUC"}
1
+ {"version":3,"file":"queryError.js","sourceRoot":"","sources":["../../../src/classes/error/queryError.ts"],"names":[],"mappings":";;;AAAA,0BAAwC;AACxC,MAAa,mBAAoB,SAAQ,sBAAkB;IACzD,YAAY,MAAiD;QAC3D,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;QACtC,KAAK,CAAC;YACJ,SAAS,EAAE,qBAAqB;YAChC,OAAO;YACP,SAAS;YACT,UAAU,EAAE,GAAG;SAChB,CAAC,CAAC;IACL,CAAC;CACF;AAVD,kDAUC"}
@@ -2,6 +2,6 @@ import { GiraffeqlBaseError } from "..";
2
2
  export declare class GiraffeqlResultError extends GiraffeqlBaseError {
3
3
  constructor(params: {
4
4
  message: string;
5
- fieldPath: string[];
5
+ fieldPath?: string[];
6
6
  });
7
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"resultError.js","sourceRoot":"","sources":["../../../src/classes/error/resultError.ts"],"names":[],"mappings":";;;AAAA,0BAAwC;AACxC,MAAa,oBAAqB,SAAQ,sBAAkB;IAC1D,YAAY,MAAgD;QAC1D,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;QACtC,KAAK,CAAC;YACJ,SAAS,EAAE,sBAAsB;YACjC,OAAO;YACP,SAAS;YACT,UAAU,EAAE,GAAG;SAChB,CAAC,CAAC;IACL,CAAC;CACF;AAVD,oDAUC"}
1
+ {"version":3,"file":"resultError.js","sourceRoot":"","sources":["../../../src/classes/error/resultError.ts"],"names":[],"mappings":";;;AAAA,0BAAwC;AACxC,MAAa,oBAAqB,SAAQ,sBAAkB;IAC1D,YAAY,MAAiD;QAC3D,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;QACtC,KAAK,CAAC;YACJ,SAAS,EAAE,sBAAsB;YACjC,OAAO;YACP,SAAS;YACT,UAAU,EAAE,GAAG;SAChB,CAAC,CAAC;IACL,CAAC;CACF;AAVD,oDAUC"}
@@ -1,6 +1,7 @@
1
- import { GiraffeqlObjectType, GiraffeqlScalarType, GiraffeqlObjectTypeLookup, GiraffeqlInputFieldType } from "../classes";
1
+ import { GiraffeqlObjectType, GiraffeqlScalarType, GiraffeqlObjectTypeLookup, GiraffeqlInputFieldType, GiraffeqlBaseError } from "../classes";
2
2
  import { GiraffeqlResolverNode, ResolverObject, RootResolverDefinition, GiraffeqlProcessorFunction, ObjectTypeDefinitionField, ArrayOptions, StringKeyObject } from "../types";
3
3
  export declare function isObject(ele: unknown): ele is StringKeyObject;
4
+ export declare function processError(err: unknown, fieldPath?: string[]): GiraffeqlBaseError;
4
5
  export declare function validateExternalArgs(args: unknown, argDefinition: GiraffeqlInputFieldType | undefined, fieldPath: string[]): unknown;
5
6
  export declare function validateGiraffeqlResults(giraffeqlResultsNode: unknown, giraffeqlResolverNode: GiraffeqlResolverNode, fieldPath: string[]): Promise<unknown>;
6
7
  export declare function validateResultFields(value: unknown, resolverObject: ResolverObject, fieldPath: string[]): void;
@@ -9,7 +10,7 @@ export declare function generateAnonymousRootResolver(type: GiraffeqlObjectType
9
10
  export declare function generateGiraffeqlResolverTree({ fieldValue, resolverObject, fieldPath, fullTree, validateArgs, }: {
10
11
  fieldValue: unknown;
11
12
  resolverObject: ObjectTypeDefinitionField | RootResolverDefinition;
12
- fieldPath?: string[];
13
+ fieldPath: string[];
13
14
  fullTree?: boolean;
14
15
  validateArgs?: boolean;
15
16
  }): GiraffeqlResolverNode;
@@ -11,7 +11,7 @@ var __rest = (this && this.__rest) || function (s, e) {
11
11
  return t;
12
12
  };
13
13
  Object.defineProperty(exports, "__esModule", { value: true });
14
- exports.processGiraffeqlResolverTree = exports.generateGiraffeqlResolverTree = exports.generateAnonymousRootResolver = exports.validateResultNullish = exports.validateResultFields = exports.validateGiraffeqlResults = exports.validateExternalArgs = exports.isObject = void 0;
14
+ exports.processGiraffeqlResolverTree = exports.generateGiraffeqlResolverTree = exports.generateAnonymousRootResolver = exports.validateResultNullish = exports.validateResultFields = exports.validateGiraffeqlResults = exports.validateExternalArgs = exports.processError = exports.isObject = void 0;
15
15
  const __1 = require("..");
16
16
  const classes_1 = require("../classes");
17
17
  const types_1 = require("../types");
@@ -19,293 +19,321 @@ function isObject(ele) {
19
19
  return Object.prototype.toString.call(ele) === "[object Object]";
20
20
  }
21
21
  exports.isObject = isObject;
22
- // validates and replaces the args, returns the validated args
23
- function validateExternalArgs(args, argDefinition, fieldPath) {
24
- let parsedArgs;
25
- // if no argDefinition and args provided, throw error
26
- if (!argDefinition) {
27
- if (args)
28
- throw new classes_1.GiraffeqlArgsError({
29
- message: `Not expecting any args`,
30
- fieldPath,
31
- });
32
- else
33
- return;
22
+ function processError(err, fieldPath) {
23
+ if (err instanceof classes_1.GiraffeqlBaseError) {
24
+ if (fieldPath)
25
+ err.fieldPath = fieldPath;
26
+ return err;
34
27
  }
35
- // if no arg required and args is undefined, return
36
- if (!argDefinition.definition.required && args === undefined)
37
- return;
38
- // if argDefinition.required and args is undefined, throw err
39
- if (argDefinition.definition.required && args === undefined)
40
- throw new classes_1.GiraffeqlArgsError({
41
- message: `Args is required`,
28
+ else if (err instanceof Error) {
29
+ return new classes_1.GiraffeqlBaseError({
30
+ message: err.message,
42
31
  fieldPath,
43
32
  });
44
- // if !argDefinition.allowNull and args is null, throw err
45
- if (!argDefinition.definition.allowNull && args === null)
46
- throw new classes_1.GiraffeqlArgsError({
47
- message: `Null field is not allowed`,
33
+ }
34
+ else {
35
+ return new classes_1.GiraffeqlBaseError({
48
36
  fieldPath,
49
37
  });
50
- // if array field
51
- if (argDefinition.definition.arrayOptions) {
52
- // if allowNull and not array, must be null
53
- if (argDefinition.definition.allowNull &&
54
- !Array.isArray(args) &&
55
- args !== null) {
56
- throw new classes_1.GiraffeqlArgsError({
57
- message: `Field must be Array or null`,
58
- fieldPath,
59
- });
38
+ }
39
+ }
40
+ exports.processError = processError;
41
+ // validates and replaces the args, returns the validated args
42
+ function validateExternalArgs(args, argDefinition, fieldPath) {
43
+ try {
44
+ let parsedArgs;
45
+ // if no argDefinition and args provided, throw error
46
+ if (!argDefinition) {
47
+ if (args)
48
+ throw new classes_1.GiraffeqlArgsError({
49
+ message: `Not expecting any args`,
50
+ });
51
+ else
52
+ return;
60
53
  }
61
- // if !allowNull and not array, throw err
62
- if (!argDefinition.definition.allowNull && !Array.isArray(args))
54
+ // if no arg required and args is undefined, return
55
+ if (!argDefinition.definition.required && args === undefined)
56
+ return;
57
+ // if argDefinition.required and args is undefined, throw err
58
+ if (argDefinition.definition.required && args === undefined)
63
59
  throw new classes_1.GiraffeqlArgsError({
64
- message: `Array expected`,
65
- fieldPath,
60
+ message: `Args is required`,
66
61
  });
67
- }
68
- let argDefType = argDefinition.definition.type;
69
- // // if lookup field, convert from map
70
- if (argDefType instanceof classes_1.GiraffeqlInputTypeLookup) {
71
- const inputDef = __1.inputTypeDefs.get(argDefType.name);
72
- if (!inputDef)
62
+ // if !argDefinition.allowNull and args is null, throw err
63
+ if (!argDefinition.definition.allowNull && args === null)
73
64
  throw new classes_1.GiraffeqlArgsError({
74
- message: `Unknown inputDef '${argDefType.name}'`,
75
- fieldPath,
65
+ message: `Null field is not allowed`,
76
66
  });
77
- argDefType = inputDef;
78
- }
79
- // if argDefinition.type is inputTypeDefinition
80
- if (argDefType instanceof classes_1.GiraffeqlInputType) {
81
- let argsArray;
82
- const fields = argDefType.definition.fields;
83
- // if args is array and it is supposed to be array, process each array element
84
- if (Array.isArray(args) && argDefinition.definition.arrayOptions) {
85
- // if !allowNullElements and there is a null element, throw err
86
- if (!argDefinition.definition.arrayOptions.allowNullElement &&
87
- args.some((ele) => ele === null)) {
67
+ // if array field
68
+ if (argDefinition.definition.arrayOptions) {
69
+ // if allowNull and not array, must be null
70
+ if (argDefinition.definition.allowNull &&
71
+ !Array.isArray(args) &&
72
+ args !== null) {
88
73
  throw new classes_1.GiraffeqlArgsError({
89
- message: `Null field is not allowed on array element`,
90
- fieldPath,
74
+ message: `Field must be Array or null`,
91
75
  });
92
76
  }
93
- argsArray = args;
77
+ // if !allowNull and not array, throw err
78
+ if (!argDefinition.definition.allowNull && !Array.isArray(args))
79
+ throw new classes_1.GiraffeqlArgsError({
80
+ message: `Array expected`,
81
+ });
94
82
  }
95
- else {
96
- argsArray = [args];
83
+ let argDefType = argDefinition.definition.type;
84
+ // // if lookup field, convert from map
85
+ if (argDefType instanceof classes_1.GiraffeqlInputTypeLookup) {
86
+ const inputDef = __1.inputTypeDefs.get(argDefType.name);
87
+ if (!inputDef)
88
+ throw new classes_1.GiraffeqlArgsError({
89
+ message: `Unknown inputDef '${argDefType.name}'`,
90
+ });
91
+ argDefType = inputDef;
97
92
  }
98
- // process all args
99
- for (const arg of argsArray) {
100
- if (!isObject(arg)) {
101
- if (argDefinition.definition.allowNull && arg !== null) {
93
+ // if argDefinition.type is inputTypeDefinition
94
+ if (argDefType instanceof classes_1.GiraffeqlInputType) {
95
+ let argsArray;
96
+ const fields = argDefType.definition.fields;
97
+ // if args is array and it is supposed to be array, process each array element
98
+ if (Array.isArray(args) && argDefinition.definition.arrayOptions) {
99
+ // if !allowNullElements and there is a null element, throw err
100
+ if (!argDefinition.definition.arrayOptions.allowNullElement &&
101
+ args.some((ele) => ele === null)) {
102
102
  throw new classes_1.GiraffeqlArgsError({
103
- message: `Object or null expected`,
104
- fieldPath,
103
+ message: `Null field is not allowed on array element`,
105
104
  });
106
105
  }
107
- if (!argDefinition.definition.allowNull) {
108
- throw new classes_1.GiraffeqlArgsError({
109
- message: `Object expected`,
110
- fieldPath,
106
+ argsArray = args;
107
+ }
108
+ else {
109
+ argsArray = [args];
110
+ }
111
+ // process all args
112
+ for (const arg of argsArray) {
113
+ if (!isObject(arg)) {
114
+ if (argDefinition.definition.allowNull && arg !== null) {
115
+ throw new classes_1.GiraffeqlArgsError({
116
+ message: `Object or null expected`,
117
+ });
118
+ }
119
+ if (!argDefinition.definition.allowNull) {
120
+ throw new classes_1.GiraffeqlArgsError({
121
+ message: `Object expected`,
122
+ });
123
+ }
124
+ }
125
+ // if arg is null and allowed to be null, do nothing
126
+ if (isObject(arg)) {
127
+ const keysToValidate = new Set(Object.keys(arg));
128
+ Object.entries(fields).forEach(([key, argDef]) => {
129
+ // validate each key of arg
130
+ const validatedArg = validateExternalArgs(arg[key], argDef, fieldPath.concat(key));
131
+ // if key is undefined, make sure it is deleted
132
+ if (validatedArg === undefined)
133
+ delete arg[key];
134
+ else {
135
+ arg[key] = validatedArg;
136
+ }
137
+ keysToValidate.delete(key);
111
138
  });
139
+ // check if any remaining keys to validate (aka unknown args)
140
+ if (keysToValidate.size > 0) {
141
+ throw new classes_1.GiraffeqlArgsError({
142
+ message: `Unknown args '${[...keysToValidate].join(",")}'`,
143
+ });
144
+ }
145
+ // perform validation on results
146
+ if (argDefType.definition.inputsValidator) {
147
+ argDefType.definition.inputsValidator(arg, fieldPath);
148
+ }
112
149
  }
113
150
  }
114
- // if arg is null and allowed to be null, do nothing
115
- if (isObject(arg)) {
116
- const keysToValidate = new Set(Object.keys(arg));
117
- Object.entries(fields).forEach(([key, argDef]) => {
118
- // validate each key of arg
119
- const validatedArg = validateExternalArgs(arg[key], argDef, fieldPath.concat(key));
120
- // if key is undefined, make sure it is deleted
121
- if (validatedArg === undefined)
122
- delete arg[key];
151
+ }
152
+ else {
153
+ // if argDefinition.type is scalarDefinition, attempt to parseValue args
154
+ // replace value if parseValue
155
+ const parseValue = argDefType.definition.parseValue;
156
+ // if arg is null, skip
157
+ if (parseValue && args !== null) {
158
+ try {
159
+ // if arg is an array and supposed to be array, loop through
160
+ if (Array.isArray(args) && argDefinition.definition.arrayOptions) {
161
+ parsedArgs = args.map((ele) => parseValue(ele));
162
+ }
123
163
  else {
124
- arg[key] = validatedArg;
164
+ parsedArgs = parseValue(args);
125
165
  }
126
- keysToValidate.delete(key);
127
- });
128
- // check if any remaining keys to validate (aka unknown args)
129
- if (keysToValidate.size > 0) {
166
+ }
167
+ catch (_a) {
168
+ // transform any errors thrown into GiraffeqlParseError
130
169
  throw new classes_1.GiraffeqlArgsError({
131
- message: `Unknown args '${[...keysToValidate].join(",")}'`,
132
- fieldPath,
170
+ message: `Invalid scalar value for '${argDefType.definition.name}'`,
133
171
  });
134
172
  }
135
- // perform validation on results
136
- if (argDefType.definition.inputsValidator) {
137
- argDefType.definition.inputsValidator(arg, fieldPath);
138
- }
139
173
  }
140
174
  }
141
- }
142
- else {
143
- // if argDefinition.type is scalarDefinition, attempt to parseValue args
144
- // replace value if parseValue
145
- const parseValue = argDefType.definition.parseValue;
146
- // if arg is null, skip
147
- if (parseValue && args !== null) {
148
- try {
149
- // if arg is an array and supposed to be array, loop through
150
- if (Array.isArray(args) && argDefinition.definition.arrayOptions) {
151
- parsedArgs = args.map((ele) => parseValue(ele));
152
- }
153
- else {
154
- parsedArgs = parseValue(args);
155
- }
156
- }
157
- catch (_a) {
158
- // transform any errors thrown into GiraffeqlParseError
159
- throw new classes_1.GiraffeqlArgsError({
160
- message: `Invalid scalar value for '${argDefType.definition.name}'`,
161
- fieldPath: fieldPath,
162
- });
163
- }
175
+ /*
176
+ // if an argsValidator function is available, also run that
177
+ if (argDefinition.argsValidator) {
178
+ argDefinition.argsValidator(parsedArgs, fieldPath);
164
179
  }
180
+ */
181
+ return parsedArgs !== null && parsedArgs !== void 0 ? parsedArgs : args;
165
182
  }
166
- /*
167
- // if an argsValidator function is available, also run that
168
- if (argDefinition.argsValidator) {
169
- argDefinition.argsValidator(parsedArgs, fieldPath);
183
+ catch (err) {
184
+ throw processError(err, fieldPath);
170
185
  }
171
- */
172
- return parsedArgs !== null && parsedArgs !== void 0 ? parsedArgs : args;
173
186
  }
174
187
  exports.validateExternalArgs = validateExternalArgs;
175
188
  // traverses results according to GiraffeqlResolverTree and validates nulls, arrays, extracts results from objs
176
189
  async function validateGiraffeqlResults(giraffeqlResultsNode, giraffeqlResolverNode, fieldPath) {
177
- const nested = giraffeqlResolverNode.nested;
178
- if (nested) {
179
- // if output is null, cut the tree short and return
180
- if (giraffeqlResultsNode === null)
181
- return null;
182
- if (giraffeqlResolverNode.typeDef.arrayOptions) {
183
- if (Array.isArray(giraffeqlResultsNode)) {
184
- return Promise.all(giraffeqlResultsNode.map(async (ele) => {
185
- const arrReturnValue = {};
186
- for (const field in giraffeqlResolverNode.nested) {
187
- arrReturnValue[field] = await validateGiraffeqlResults(ele[field], giraffeqlResolverNode.nested[field], fieldPath.concat(field));
188
- }
189
- return arrReturnValue;
190
- }));
190
+ try {
191
+ const nested = giraffeqlResolverNode.nested;
192
+ if (nested) {
193
+ // if output is null, cut the tree short and return
194
+ if (giraffeqlResultsNode === null) {
195
+ // but first, check if null is allowed. if not, throw err
196
+ if (!giraffeqlResolverNode.typeDef.allowNull) {
197
+ throw new classes_1.GiraffeqlResultError({
198
+ message: `Null output not allowed`,
199
+ });
200
+ }
201
+ return null;
202
+ }
203
+ if (giraffeqlResolverNode.typeDef.arrayOptions) {
204
+ if (Array.isArray(giraffeqlResultsNode)) {
205
+ return Promise.all(giraffeqlResultsNode.map(async (ele) => {
206
+ const arrReturnValue = {};
207
+ for (const field in giraffeqlResolverNode.nested) {
208
+ arrReturnValue[field] = await validateGiraffeqlResults(ele[field], giraffeqlResolverNode.nested[field], fieldPath.concat(field));
209
+ }
210
+ return arrReturnValue;
211
+ }));
212
+ }
213
+ else {
214
+ // if field is not Array or null, throw err
215
+ throw new classes_1.GiraffeqlResultError({
216
+ message: `Expecting array or null`,
217
+ });
218
+ }
191
219
  }
192
220
  else {
193
- // if field is not Array or null, throw err
194
- throw new classes_1.GiraffeqlResultError({
195
- message: `Expecting array or null`,
196
- fieldPath: fieldPath,
197
- });
221
+ const tempReturnValue = {};
222
+ // if no nested fields requested, return empty object
223
+ if (giraffeqlResolverNode.nested &&
224
+ Object.keys(giraffeqlResolverNode.nested).length < 1) {
225
+ return isObject(giraffeqlResultsNode) ? tempReturnValue : null;
226
+ }
227
+ if (!isObject(giraffeqlResultsNode))
228
+ throw new classes_1.GiraffeqlResultError({
229
+ message: `Expecting object`,
230
+ });
231
+ for (const field in giraffeqlResolverNode.nested) {
232
+ tempReturnValue[field] = await validateGiraffeqlResults(giraffeqlResultsNode[field], giraffeqlResolverNode.nested[field], fieldPath.concat(field));
233
+ }
234
+ return tempReturnValue;
198
235
  }
199
236
  }
200
237
  else {
201
- const tempReturnValue = {};
202
- // if no nested fields requested, return empty object
203
- if (giraffeqlResolverNode.nested &&
204
- Object.keys(giraffeqlResolverNode.nested).length < 1) {
205
- return isObject(giraffeqlResultsNode) ? tempReturnValue : null;
206
- }
207
- if (!isObject(giraffeqlResultsNode))
208
- throw new classes_1.GiraffeqlResultError({
209
- message: `Expecting object`,
210
- fieldPath: fieldPath,
211
- });
212
- for (const field in giraffeqlResolverNode.nested) {
213
- tempReturnValue[field] = await validateGiraffeqlResults(giraffeqlResultsNode[field], giraffeqlResolverNode.nested[field], fieldPath.concat(field));
238
+ // check for nulls and ensure array fields are arrays
239
+ validateResultFields(giraffeqlResultsNode, giraffeqlResolverNode.typeDef, fieldPath);
240
+ // if typeDef of field is ScalarDefinition, apply the serialize function to the end result
241
+ let fieldType = giraffeqlResolverNode.typeDef.type;
242
+ if (fieldType instanceof classes_1.GiraffeqlObjectTypeLookup) {
243
+ const typeDef = __1.objectTypeDefs.get(fieldType.name);
244
+ if (!typeDef) {
245
+ throw new classes_1.GiraffeqlQueryError({
246
+ message: `TypeDef '${fieldType.name}' not found`,
247
+ });
248
+ }
249
+ fieldType = typeDef;
214
250
  }
215
- return tempReturnValue;
216
- }
217
- }
218
- else {
219
- // check for nulls and ensure array fields are arrays
220
- validateResultFields(giraffeqlResultsNode, giraffeqlResolverNode.typeDef, fieldPath);
221
- // if typeDef of field is ScalarDefinition, apply the serialize function to the end result
222
- let fieldType = giraffeqlResolverNode.typeDef.type;
223
- if (fieldType instanceof classes_1.GiraffeqlObjectTypeLookup) {
224
- const typeDef = __1.objectTypeDefs.get(fieldType.name);
225
- if (!typeDef) {
226
- throw new classes_1.GiraffeqlQueryError({
227
- message: `TypeDef '${fieldType.name}' not found`,
228
- fieldPath: fieldPath,
229
- });
251
+ if (fieldType instanceof classes_1.GiraffeqlObjectType) {
252
+ return giraffeqlResultsNode;
230
253
  }
231
- fieldType = typeDef;
232
- }
233
- if (fieldType instanceof classes_1.GiraffeqlObjectType) {
234
- return giraffeqlResultsNode;
235
- }
236
- else {
237
- const serializeFn = fieldType.definition.serialize;
238
- // if field is null, skip
239
- if (serializeFn &&
240
- giraffeqlResultsNode !== null &&
241
- giraffeqlResultsNode !== undefined) {
242
- try {
243
- if (Array.isArray(giraffeqlResultsNode) &&
244
- giraffeqlResolverNode.typeDef.arrayOptions) {
245
- const allowNullElement = giraffeqlResolverNode.typeDef.arrayOptions
246
- .allowNullElement;
247
- return giraffeqlResultsNode.map((ele) => {
248
- if (allowNullElement && ele === null)
249
- return null;
250
- return serializeFn(ele);
251
- });
254
+ else {
255
+ const serializeFn = fieldType.definition.serialize;
256
+ // if field is null, skip
257
+ if (serializeFn &&
258
+ giraffeqlResultsNode !== null &&
259
+ giraffeqlResultsNode !== undefined) {
260
+ try {
261
+ if (Array.isArray(giraffeqlResultsNode) &&
262
+ giraffeqlResolverNode.typeDef.arrayOptions) {
263
+ const allowNullElement = giraffeqlResolverNode.typeDef
264
+ .arrayOptions.allowNullElement;
265
+ return giraffeqlResultsNode.map((ele) => {
266
+ if (allowNullElement && ele === null)
267
+ return null;
268
+ return serializeFn(ele);
269
+ });
270
+ }
271
+ else {
272
+ return serializeFn(giraffeqlResultsNode);
273
+ }
252
274
  }
253
- else {
254
- return serializeFn(giraffeqlResultsNode);
275
+ catch (_a) {
276
+ // transform any errors thrown into GiraffeqlParseError
277
+ throw new classes_1.GiraffeqlResultError({
278
+ message: `Invalid scalar value for '${fieldType.definition.name}'`,
279
+ });
255
280
  }
256
281
  }
257
- catch (_a) {
258
- // transform any errors thrown into GiraffeqlParseError
259
- throw new classes_1.GiraffeqlResultError({
260
- message: `Invalid scalar value for '${fieldType.definition.name}'`,
261
- fieldPath: fieldPath,
262
- });
282
+ else {
283
+ return giraffeqlResultsNode;
263
284
  }
264
285
  }
265
- else {
266
- return giraffeqlResultsNode;
267
- }
268
286
  }
269
287
  }
288
+ catch (err) {
289
+ throw processError(err, fieldPath);
290
+ }
270
291
  }
271
292
  exports.validateGiraffeqlResults = validateGiraffeqlResults;
272
293
  // throws an error if a field is not an array when it should be
273
294
  function validateResultFields(value, resolverObject, fieldPath) {
274
- if (resolverObject.arrayOptions) {
275
- if (Array.isArray(value)) {
276
- value.forEach((ele) => {
277
- validateResultNullish(ele, resolverObject, fieldPath, resolverObject.arrayOptions);
278
- });
279
- }
280
- else if (!resolverObject.allowNull) {
281
- throw new classes_1.GiraffeqlResultError({
282
- message: `Array expected`,
283
- fieldPath,
284
- });
295
+ try {
296
+ if (resolverObject.arrayOptions) {
297
+ if (Array.isArray(value)) {
298
+ value.forEach((ele) => {
299
+ validateResultNullish(ele, resolverObject, fieldPath, resolverObject.arrayOptions);
300
+ });
301
+ }
302
+ else if (!resolverObject.allowNull) {
303
+ throw new classes_1.GiraffeqlResultError({
304
+ message: `Array expected`,
305
+ });
306
+ }
307
+ else if (value !== null) {
308
+ // field must be null
309
+ throw new classes_1.GiraffeqlResultError({
310
+ message: `Array or null expected`,
311
+ });
312
+ }
285
313
  }
286
- else if (value !== null) {
287
- // field must be null
288
- throw new classes_1.GiraffeqlResultError({
289
- message: `Array or null expected`,
290
- fieldPath,
291
- });
314
+ else {
315
+ validateResultNullish(value, resolverObject, fieldPath, resolverObject.arrayOptions);
292
316
  }
293
317
  }
294
- else {
295
- validateResultNullish(value, resolverObject, fieldPath, resolverObject.arrayOptions);
318
+ catch (err) {
319
+ throw processError(err, fieldPath);
296
320
  }
297
321
  }
298
322
  exports.validateResultFields = validateResultFields;
299
323
  // throws an error if a field is nullish when it should not be
300
324
  function validateResultNullish(value, resolverObject, fieldPath, arrayOptions) {
301
- const isNullAllowed = arrayOptions
302
- ? arrayOptions.allowNullElement
303
- : resolverObject.allowNull;
304
- if ((value === null || value === undefined) && !isNullAllowed) {
305
- throw new classes_1.GiraffeqlResultError({
306
- message: `Null value not allowed` + (arrayOptions ? " for array element" : ""),
307
- fieldPath,
308
- });
325
+ try {
326
+ const isNullAllowed = arrayOptions
327
+ ? arrayOptions.allowNullElement
328
+ : resolverObject.allowNull;
329
+ if ((value === null || value === undefined) && !isNullAllowed) {
330
+ throw new classes_1.GiraffeqlResultError({
331
+ message: `Null value not allowed` + (arrayOptions ? " for array element" : ""),
332
+ });
333
+ }
334
+ }
335
+ catch (err) {
336
+ throw processError(err, fieldPath);
309
337
  }
310
338
  }
311
339
  exports.validateResultNullish = validateResultNullish;
@@ -320,161 +348,167 @@ function generateAnonymousRootResolver(type) {
320
348
  exports.generateAnonymousRootResolver = generateAnonymousRootResolver;
321
349
  function generateGiraffeqlResolverTree({ fieldValue, resolverObject, fieldPath = [], fullTree = false, validateArgs = false, }) {
322
350
  var _a;
323
- let fieldType = resolverObject.type;
324
- // if string, attempt to convert to TypeDefinition
325
- if (fieldType instanceof classes_1.GiraffeqlObjectTypeLookup) {
326
- const typeDefLookup = __1.objectTypeDefs.get(fieldType.name);
327
- if (!typeDefLookup) {
351
+ try {
352
+ let fieldType = resolverObject.type;
353
+ // if string, attempt to convert to TypeDefinition
354
+ if (fieldType instanceof classes_1.GiraffeqlObjectTypeLookup) {
355
+ const typeDefLookup = __1.objectTypeDefs.get(fieldType.name);
356
+ if (!typeDefLookup) {
357
+ throw new classes_1.GiraffeqlQueryError({
358
+ message: `TypeDef '${fieldType.name}' not found`,
359
+ });
360
+ }
361
+ fieldType = typeDefLookup;
362
+ }
363
+ // define the lookupValue
364
+ const lookupValue = (0, __1.getParams)().lookupValue;
365
+ // field must either be lookupValue OR an object
366
+ // check if field is lookupValue
367
+ const isLookupField = fieldValue === lookupValue || fieldValue === __1.lookupSymbol;
368
+ const isLeafNode = !(fieldType instanceof classes_1.GiraffeqlObjectType);
369
+ // field must either be lookupValue OR an object
370
+ if (!isLookupField && !isObject(fieldValue))
328
371
  throw new classes_1.GiraffeqlQueryError({
329
- message: `TypeDef '${fieldType.name}' not found`,
330
- fieldPath: fieldPath,
372
+ message: `Invalid field RHS`,
331
373
  });
374
+ // if leafNode and nested, MUST be only with __args
375
+ if (isLeafNode && isObject(fieldValue)) {
376
+ if (!("__args" in fieldValue) || Object.keys(fieldValue).length !== 1) {
377
+ throw new classes_1.GiraffeqlQueryError({
378
+ message: `Scalar node can only accept __args and no other field`,
379
+ });
380
+ }
332
381
  }
333
- fieldType = typeDefLookup;
334
- }
335
- // define the lookupValue
336
- const lookupValue = (0, __1.getParams)().lookupValue;
337
- // field must either be lookupValue OR an object
338
- // check if field is lookupValue
339
- const isLookupField = fieldValue === lookupValue || fieldValue === __1.lookupSymbol;
340
- const isLeafNode = !(fieldType instanceof classes_1.GiraffeqlObjectType);
341
- // field must either be lookupValue OR an object
342
- if (!isLookupField && !isObject(fieldValue))
343
- throw new classes_1.GiraffeqlQueryError({
344
- message: `Invalid field RHS`,
345
- fieldPath: fieldPath,
346
- });
347
- // if leafNode and nested, MUST be only with __args
348
- if (isLeafNode && isObject(fieldValue)) {
349
- if (!("__args" in fieldValue) || Object.keys(fieldValue).length !== 1) {
382
+ // if not leafNode and isLookupField, deny
383
+ if (!isLeafNode && isLookupField)
350
384
  throw new classes_1.GiraffeqlQueryError({
351
- message: `Scalar node can only accept __args and no other field`,
352
- fieldPath,
385
+ message: `Resolved node must be an object with nested fields`,
386
+ });
387
+ // if field is scalar and args is required, and not object, throw err
388
+ if (isLeafNode &&
389
+ ((_a = resolverObject.args) === null || _a === void 0 ? void 0 : _a.definition.required) &&
390
+ !isObject(fieldValue)) {
391
+ throw new classes_1.GiraffeqlQueryError({
392
+ message: `Args required`,
353
393
  });
354
394
  }
355
- }
356
- // if not leafNode and isLookupField, deny
357
- if (!isLeafNode && isLookupField)
358
- throw new classes_1.GiraffeqlQueryError({
359
- message: `Resolved node must be an object with nested fields`,
360
- fieldPath,
361
- });
362
- // if field is scalar and args is required, and not object, throw err
363
- if (isLeafNode &&
364
- ((_a = resolverObject.args) === null || _a === void 0 ? void 0 : _a.definition.required) &&
365
- !isObject(fieldValue)) {
366
- throw new classes_1.GiraffeqlQueryError({
367
- message: `Args required`,
368
- fieldPath,
369
- });
370
- }
371
- let nestedNodes = null;
372
- // separate args from query
373
- const _b = isObject(fieldValue)
374
- ? fieldValue
375
- : {}, { __args: args = null } = _b, query = __rest(_b, ["__args"]);
376
- if (isObject(fieldValue)) {
377
- // validate args in-place, if any
378
- if (validateArgs) {
379
- validateExternalArgs(fieldValue.__args, resolverObject.args, fieldPath.concat("__args"));
380
- }
381
- if (!isLeafNode && fieldType instanceof classes_1.GiraffeqlObjectType) {
382
- nestedNodes = {};
383
- // iterate over fields
384
- for (const field in fieldValue) {
385
- const parentsPlusCurrentField = fieldPath.concat(field);
386
- if (field === "__args") {
387
- continue;
388
- }
389
- // if field not in TypeDef, reject
390
- if (!(field in fieldType.definition.fields)) {
391
- throw new classes_1.GiraffeqlQueryError({
392
- message: `Unknown field`,
393
- fieldPath: parentsPlusCurrentField,
394
- });
395
- }
396
- // deny hidden fields
397
- if (fieldType.definition.fields[field].hidden) {
398
- throw new classes_1.GiraffeqlQueryError({
399
- message: `Hidden field`,
400
- fieldPath: parentsPlusCurrentField,
401
- });
395
+ let nestedNodes = null;
396
+ // separate args from query
397
+ const _b = isObject(fieldValue)
398
+ ? fieldValue
399
+ : {}, { __args: args = null } = _b, query = __rest(_b, ["__args"]);
400
+ if (isObject(fieldValue)) {
401
+ // validate args in-place, if any
402
+ if (validateArgs) {
403
+ validateExternalArgs(fieldValue.__args, resolverObject.args, fieldPath.concat("__args"));
404
+ }
405
+ if (!isLeafNode && fieldType instanceof classes_1.GiraffeqlObjectType) {
406
+ nestedNodes = {};
407
+ // iterate over fields
408
+ for (const field in fieldValue) {
409
+ const parentsPlusCurrentField = fieldPath.concat(field);
410
+ if (field === "__args") {
411
+ continue;
412
+ }
413
+ // if field not in TypeDef, reject
414
+ if (!(field in fieldType.definition.fields)) {
415
+ throw new classes_1.GiraffeqlQueryError({
416
+ message: `Unknown field`,
417
+ fieldPath: parentsPlusCurrentField,
418
+ });
419
+ }
420
+ // deny hidden fields
421
+ if (fieldType.definition.fields[field].hidden) {
422
+ throw new classes_1.GiraffeqlQueryError({
423
+ message: `Hidden field`,
424
+ fieldPath: parentsPlusCurrentField,
425
+ });
426
+ }
427
+ // only if no resolver do we recursively add to tree
428
+ // if there is a resolver, the sub-tree should be generated in the resolver
429
+ if (fullTree || !resolverObject.resolver)
430
+ nestedNodes[field] = generateGiraffeqlResolverTree({
431
+ fieldValue: fieldValue[field],
432
+ resolverObject: fieldType.definition.fields[field],
433
+ fieldPath: parentsPlusCurrentField,
434
+ fullTree,
435
+ validateArgs,
436
+ });
402
437
  }
403
- // only if no resolver do we recursively add to tree
404
- // if there is a resolver, the sub-tree should be generated in the resolver
405
- if (fullTree || !resolverObject.resolver)
406
- nestedNodes[field] = generateGiraffeqlResolverTree({
407
- fieldValue: fieldValue[field],
408
- resolverObject: fieldType.definition.fields[field],
409
- fieldPath: parentsPlusCurrentField,
410
- fullTree,
411
- validateArgs,
412
- });
413
438
  }
414
439
  }
440
+ return {
441
+ typeDef: resolverObject,
442
+ query,
443
+ args,
444
+ nested: nestedNodes !== null && nestedNodes !== void 0 ? nestedNodes : undefined,
445
+ };
446
+ }
447
+ catch (err) {
448
+ throw processError(err, fieldPath);
415
449
  }
416
- return {
417
- typeDef: resolverObject,
418
- query,
419
- args,
420
- nested: nestedNodes !== null && nestedNodes !== void 0 ? nestedNodes : undefined,
421
- };
422
450
  }
423
451
  exports.generateGiraffeqlResolverTree = generateGiraffeqlResolverTree;
424
452
  // resolves the queries, and attaches them to the obj (if possible)
425
453
  const processGiraffeqlResolverTree = async ({ giraffeqlResultsNode, giraffeqlResolverNode, parentNode, req, data = {}, fieldPath = [], fullTree = false, }) => {
426
- let results;
427
- // if it is a root resolver, fetch the results first.
428
- if ((0, types_1.isRootResolverDefinition)(giraffeqlResolverNode.typeDef)) {
429
- results = await giraffeqlResolverNode.typeDef.resolver({
430
- req,
431
- fieldPath,
432
- args: giraffeqlResolverNode.args,
433
- query: giraffeqlResolverNode.query,
434
- });
435
- // if full tree not required, return here
436
- if (!fullTree)
437
- return results;
438
- }
439
- else {
440
- results = giraffeqlResultsNode;
441
- }
442
- const resolverFn = giraffeqlResolverNode.typeDef.resolver;
443
- const nested = giraffeqlResolverNode.nested;
444
- // if typeDef is RootResolverDefinition, skip resolving (should already be done)
445
- if (resolverFn && !(0, types_1.isRootResolverDefinition)(giraffeqlResolverNode.typeDef)) {
446
- // if defer, skip resolving
447
- if (giraffeqlResolverNode.typeDef.defer) {
448
- return null;
454
+ try {
455
+ let results;
456
+ // if it is a root resolver, fetch the results first.
457
+ if ((0, types_1.isRootResolverDefinition)(giraffeqlResolverNode.typeDef)) {
458
+ results = await giraffeqlResolverNode.typeDef.resolver({
459
+ req,
460
+ fieldPath,
461
+ args: giraffeqlResolverNode.args,
462
+ query: giraffeqlResolverNode.query,
463
+ });
464
+ // if full tree not required, return here
465
+ if (!fullTree)
466
+ return results;
449
467
  }
450
- return resolverFn({
451
- req,
452
- fieldPath,
453
- args: giraffeqlResolverNode.args,
454
- query: giraffeqlResolverNode.query,
455
- fieldValue: results,
456
- parentValue: parentNode,
457
- data,
458
- });
459
- }
460
- else if (nested && isObject(results)) {
461
- // must be nested field.
462
- const tempReturnValue = results;
463
- for (const field in giraffeqlResolverNode.nested) {
464
- const currentFieldPath = fieldPath.concat(field);
465
- tempReturnValue[field] = await (0, exports.processGiraffeqlResolverTree)({
466
- giraffeqlResultsNode: isObject(results) ? results[field] : null,
467
- parentNode: results,
468
- giraffeqlResolverNode: giraffeqlResolverNode.nested[field],
468
+ else {
469
+ results = giraffeqlResultsNode;
470
+ }
471
+ const resolverFn = giraffeqlResolverNode.typeDef.resolver;
472
+ const nested = giraffeqlResolverNode.nested;
473
+ // if typeDef is RootResolverDefinition, skip resolving (should already be done)
474
+ if (resolverFn &&
475
+ !(0, types_1.isRootResolverDefinition)(giraffeqlResolverNode.typeDef)) {
476
+ // if defer, skip resolving
477
+ if (giraffeqlResolverNode.typeDef.defer) {
478
+ return null;
479
+ }
480
+ return resolverFn({
469
481
  req,
482
+ fieldPath,
483
+ args: giraffeqlResolverNode.args,
484
+ query: giraffeqlResolverNode.query,
485
+ fieldValue: results,
486
+ parentValue: parentNode,
470
487
  data,
471
- fieldPath: currentFieldPath,
472
488
  });
473
489
  }
474
- return tempReturnValue;
490
+ else if (nested && isObject(results)) {
491
+ // must be nested field.
492
+ const tempReturnValue = results;
493
+ for (const field in giraffeqlResolverNode.nested) {
494
+ const currentFieldPath = fieldPath.concat(field);
495
+ tempReturnValue[field] = await (0, exports.processGiraffeqlResolverTree)({
496
+ giraffeqlResultsNode: isObject(results) ? results[field] : null,
497
+ parentNode: results,
498
+ giraffeqlResolverNode: giraffeqlResolverNode.nested[field],
499
+ req,
500
+ data,
501
+ fieldPath: currentFieldPath,
502
+ });
503
+ }
504
+ return tempReturnValue;
505
+ }
506
+ else {
507
+ return results;
508
+ }
475
509
  }
476
- else {
477
- return results;
510
+ catch (err) {
511
+ throw processError(err, fieldPath);
478
512
  }
479
513
  };
480
514
  exports.processGiraffeqlResolverTree = processGiraffeqlResolverTree;
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/helpers/base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/helpers/base.ts"],"names":[],"mappings":"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"}
@@ -11,8 +11,9 @@ function generateNormalResponse(data) {
11
11
  }
12
12
  exports.generateNormalResponse = generateNormalResponse;
13
13
  function generateGiraffeqlResponse(data, error) {
14
+ var _a;
14
15
  return Object.assign({ data: data }, (error && {
15
- error: Object.assign({ message: error.message, type: error.name, fieldPath: error.fieldPath }, ((0, __1.getParams)().debug && { stack: error.stack })),
16
+ error: Object.assign({ message: error.message, type: error.name, fieldPath: (_a = error.fieldPath) !== null && _a !== void 0 ? _a : null }, ((0, __1.getParams)().debug && { stack: error.stack })),
16
17
  }));
17
18
  }
18
19
  //# sourceMappingURL=response.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"response.js","sourceRoot":"","sources":["../../src/helpers/response.ts"],"names":[],"mappings":";;;AACA,0BAA+B;AAG/B,SAAgB,qBAAqB,CACnC,KAAyB;IAEzB,OAAO,yBAAyB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAChD,CAAC;AAJD,sDAIC;AAED,SAAgB,sBAAsB,CAAC,IAAS;IAC9C,OAAO,yBAAyB,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC;AAFD,wDAEC;AAED,SAAS,yBAAyB,CAChC,IAAS,EACT,KAA0B;IAE1B,uBACE,IAAI,EAAE,IAAI,IACP,CAAC,KAAK,IAAI;QACX,KAAK,kBACH,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,SAAS,EAAE,KAAK,CAAC,SAAS,IACvB,CAAC,IAAA,aAAS,GAAE,CAAC,KAAK,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CACjD;KACF,CAAC,EACF;AACJ,CAAC"}
1
+ {"version":3,"file":"response.js","sourceRoot":"","sources":["../../src/helpers/response.ts"],"names":[],"mappings":";;;AACA,0BAA+B;AAG/B,SAAgB,qBAAqB,CACnC,KAAyB;IAEzB,OAAO,yBAAyB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAChD,CAAC;AAJD,sDAIC;AAED,SAAgB,sBAAsB,CAAC,IAAS;IAC9C,OAAO,yBAAyB,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC;AAFD,wDAEC;AAED,SAAS,yBAAyB,CAChC,IAAS,EACT,KAA0B;;IAE1B,uBACE,IAAI,EAAE,IAAI,IACP,CAAC,KAAK,IAAI;QACX,KAAK,kBACH,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,SAAS,EAAE,MAAA,KAAK,CAAC,SAAS,mCAAI,IAAI,IAC/B,CAAC,IAAA,aAAS,GAAE,CAAC,KAAK,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CACjD;KACF,CAAC,EACF;AACJ,CAAC"}
@@ -1,4 +1,7 @@
1
1
  import { Request, Response } from "express";
2
+ import { GiraffeqlBaseError } from "../classes";
2
3
  import type { RootResolverDefinition } from "../types";
3
4
  export declare function createRestRequestHandler(rootResolverObject: RootResolverDefinition, operationName: string): (req: Request, res: Response) => Promise<void>;
4
5
  export declare function createGiraffeqlRequestHandler(): (req: Request, res: Response) => Promise<void>;
6
+ export declare function sendErrorResponse(err: GiraffeqlBaseError, res: Response): Response<any, Record<string, any>>;
7
+ export declare function sendSuccessResponse(results: any, res: Response): void;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createGiraffeqlRequestHandler = exports.createRestRequestHandler = void 0;
3
+ exports.sendSuccessResponse = exports.sendErrorResponse = exports.createGiraffeqlRequestHandler = exports.createRestRequestHandler = void 0;
4
4
  const response_1 = require("./response");
5
5
  const classes_1 = require("../classes");
6
6
  const __1 = require("..");
@@ -54,9 +54,7 @@ function createRestRequestHandler(rootResolverObject, operationName) {
54
54
  sendSuccessResponse(validatedResults, res);
55
55
  }
56
56
  catch (err) {
57
- sendErrorResponse(err instanceof Error
58
- ? err
59
- : new Error("An unspecified error has occurred"), res);
57
+ sendErrorResponse((0, base_1.processError)(err), res);
60
58
  }
61
59
  };
62
60
  }
@@ -68,7 +66,6 @@ function createGiraffeqlRequestHandler() {
68
66
  if (!(0, base_1.isObject)(req.body)) {
69
67
  throw new classes_1.GiraffeqlQueryError({
70
68
  message: `Request body must be object`,
71
- fieldPath: [],
72
69
  });
73
70
  }
74
71
  // req must be an object at this point
@@ -76,7 +73,6 @@ function createGiraffeqlRequestHandler() {
76
73
  if (requestedOperations.length !== 1)
77
74
  throw new classes_1.GiraffeqlQueryError({
78
75
  message: `Exactly 1 root query required`,
79
- fieldPath: [],
80
76
  });
81
77
  const operation = requestedOperations[0];
82
78
  const query = req.body[operation];
@@ -85,7 +81,6 @@ function createGiraffeqlRequestHandler() {
85
81
  if (!rootResolver) {
86
82
  throw new classes_1.GiraffeqlQueryError({
87
83
  message: `Unrecognized giraffeql root query '${operation}'`,
88
- fieldPath: [],
89
84
  });
90
85
  }
91
86
  // validate query in-place
@@ -108,9 +103,7 @@ function createGiraffeqlRequestHandler() {
108
103
  sendSuccessResponse(validatedResults, res);
109
104
  }
110
105
  catch (err) {
111
- sendErrorResponse(err instanceof Error
112
- ? err
113
- : new Error("An unspecified error has occurred"), res);
106
+ sendErrorResponse((0, base_1.processError)(err), res);
114
107
  }
115
108
  };
116
109
  }
@@ -119,20 +112,14 @@ function sendErrorResponse(err, res) {
119
112
  if ((0, __1.getParams)().debug) {
120
113
  console.log(err);
121
114
  }
122
- // if not a GiraffeqlError, wrap it
123
- const validatedError = err instanceof classes_1.GiraffeqlBaseError
124
- ? err
125
- : new classes_1.GiraffeqlBaseError({
126
- errorName: "GiraffeqlGenericError",
127
- message: err.message,
128
- fieldPath: [],
129
- });
130
- const errorResponseObject = (0, response_1.generateErrorResponse)(validatedError);
131
- return res.status(validatedError.statusCode).send(errorResponseObject);
115
+ const errorResponseObject = (0, response_1.generateErrorResponse)(err);
116
+ return res.status(err.statusCode).send(errorResponseObject);
132
117
  }
118
+ exports.sendErrorResponse = sendErrorResponse;
133
119
  function sendSuccessResponse(results, res) {
134
120
  const responseObject = (0, response_1.generateNormalResponse)(results);
135
121
  res.header("Content-Type", "application/json");
136
122
  res.status(200).send(responseObject);
137
123
  }
124
+ exports.sendSuccessResponse = sendSuccessResponse;
138
125
  //# sourceMappingURL=router.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/helpers/router.ts"],"names":[],"mappings":";;;AACA,yCAA2E;AAC3E,wCAIoB;AACpB,0BAA4D;AAC5D,iCAKgB;AAGhB,SAAgB,wBAAwB,CACtC,kBAA0C,EAC1C,aAAqB;IAErB,OAAO,KAAK,WAAW,GAAY,EAAE,GAAa;;QAChD,IAAI;YACF,MAAM,SAAS,GAAG,CAAC,aAAa,CAAC,CAAC;YAElC,MAAM,eAAe,GAAG,MAAA,kBAAkB,CAAC,WAAW,0CAAE,eAAe,CAAC;YAExE,gBAAgB;YAChB,IAAI,IAAI,GAAG,eAAe;gBACxB,CAAC,CAAC,MAAM,eAAe,CAAC,GAAG,CAAC;gBAC5B,CAAC,iCACM,GAAG,CAAC,KAAK,GACT,GAAG,CAAC,MAAM,CACd,CAAC;YAEN,qDAAqD;YACrD,IAAI,IAAA,eAAQ,EAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM;gBAAE,IAAI,GAAG,SAAS,CAAC;YAElE,IAAI,cAAc,CAAC;YAEnB,MAAM,WAAW,GAAG,MAAA,kBAAkB,CAAC,WAAW,0CAAE,KAAK,CAAC;YAC1D,4DAA4D;YAC5D,IACE,kBAAkB,CAAC,IAAI,YAAY,6BAAmB;gBACtD,IAAI,KAAK,SAAS,EAClB;gBACA,cAAc,GAAG;oBACf,MAAM,EAAE,IAAI;iBACb,CAAC;aACH;iBAAM,IAAI,IAAA,eAAQ,EAAC,WAAW,CAAC,EAAE;gBAChC,uBAAuB;gBACvB,cAAc,mCACT,WAAW,KACd,MAAM,EAAE,IAAI,GACb,CAAC;aACH;iBAAM;gBACL,cAAc,GAAG,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,gBAAY,CAAC;aAC9C;YAED,0BAA0B;YAC1B,MAAM,qBAAqB,GAAG,IAAA,oCAA6B,EAAC;gBAC1D,UAAU,EAAE,cAAc;gBAC1B,cAAc,EAAE,kBAAkB;gBAClC,SAAS;gBACT,QAAQ,EAAE,IAAI;gBACd,YAAY,EAAE,IAAI;aACnB,CAAC,CAAC;YAEH,qBAAqB;YACrB,MAAM,OAAO,GAAG,MAAM,IAAA,mCAA4B,EAAC;gBACjD,qBAAqB,EAAE,qBAAqB;gBAC5C,GAAG;gBACH,SAAS;gBACT,QAAQ,EAAE,IAAA,aAAS,GAAE,CAAC,iBAAiB;aACxC,CAAC,CAAC;YAEH,qEAAqE;YACrE,MAAM,gBAAgB,GAAG,MAAM,IAAA,+BAAwB,EACrD,OAAO,EACP,qBAAqB,EACrB,SAAS,CACV,CAAC;YAEF,mBAAmB,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;SAC5C;QAAC,OAAO,GAAY,EAAE;YACrB,iBAAiB,CACf,GAAG,YAAY,KAAK;gBAClB,CAAC,CAAC,GAAG;gBACL,CAAC,CAAC,IAAI,KAAK,CAAC,mCAAmC,CAAC,EAClD,GAAG,CACJ,CAAC;SACH;IACH,CAAC,CAAC;AACJ,CAAC;AA5ED,4DA4EC;AAED,SAAgB,6BAA6B;IAC3C,OAAO,KAAK,WAAW,GAAY,EAAE,GAAa;QAChD,IAAI;YACF,wDAAwD;YACxD,IAAI,CAAC,IAAA,eAAQ,EAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBACvB,MAAM,IAAI,6BAAmB,CAAC;oBAC5B,OAAO,EAAE,6BAA6B;oBACtC,SAAS,EAAE,EAAE;iBACd,CAAC,CAAC;aACJ;YAED,sCAAsC;YACtC,MAAM,mBAAmB,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAElD,IAAI,mBAAmB,CAAC,MAAM,KAAK,CAAC;gBAClC,MAAM,IAAI,6BAAmB,CAAC;oBAC5B,OAAO,EAAE,+BAA+B;oBACxC,SAAS,EAAE,EAAE;iBACd,CAAC,CAAC;YAEL,MAAM,SAAS,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC;YACzC,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAClC,MAAM,SAAS,GAAG,CAAC,SAAS,CAAC,CAAC;YAE9B,MAAM,YAAY,GAAG,iBAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAElD,IAAI,CAAC,YAAY,EAAE;gBACjB,MAAM,IAAI,6BAAmB,CAAC;oBAC5B,OAAO,EAAE,sCAAsC,SAAS,GAAG;oBAC3D,SAAS,EAAE,EAAE;iBACd,CAAC,CAAC;aACJ;YAED,0BAA0B;YAC1B,MAAM,qBAAqB,GAAG,IAAA,oCAA6B,EAAC;gBAC1D,UAAU,EAAE,KAAK;gBACjB,cAAc,EAAE,YAAY,CAAC,UAAU;gBACvC,SAAS;gBACT,QAAQ,EAAE,IAAI;gBACd,YAAY,EAAE,IAAI;aACnB,CAAC,CAAC;YAEH,0BAA0B;YAC1B,MAAM,OAAO,GAAG,MAAM,IAAA,mCAA4B,EAAC;gBACjD,qBAAqB,EAAE,qBAAqB;gBAC5C,GAAG;gBACH,SAAS;gBACT,QAAQ,EAAE,IAAA,aAAS,GAAE,CAAC,iBAAiB;aACxC,CAAC,CAAC;YAEH,qEAAqE;YACrE,MAAM,gBAAgB,GAAG,MAAM,IAAA,+BAAwB,EACrD,OAAO,EACP,qBAAqB,EACrB,SAAS,CACV,CAAC;YAEF,mBAAmB,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;SAC5C;QAAC,OAAO,GAAY,EAAE;YACrB,iBAAiB,CACf,GAAG,YAAY,KAAK;gBAClB,CAAC,CAAC,GAAG;gBACL,CAAC,CAAC,IAAI,KAAK,CAAC,mCAAmC,CAAC,EAClD,GAAG,CACJ,CAAC;SACH;IACH,CAAC,CAAC;AACJ,CAAC;AAnED,sEAmEC;AAED,SAAS,iBAAiB,CAAC,GAAU,EAAE,GAAa;IAClD,IAAI,IAAA,aAAS,GAAE,CAAC,KAAK,EAAE;QACrB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;KAClB;IAED,mCAAmC;IACnC,MAAM,cAAc,GAClB,GAAG,YAAY,4BAAkB;QAC/B,CAAC,CAAC,GAAG;QACL,CAAC,CAAC,IAAI,4BAAkB,CAAC;YACrB,SAAS,EAAE,uBAAuB;YAClC,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,SAAS,EAAE,EAAE;SACd,CAAC,CAAC;IAET,MAAM,mBAAmB,GAAG,IAAA,gCAAqB,EAAC,cAAc,CAAC,CAAC;IAElE,OAAO,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;AACzE,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAY,EAAE,GAAa;IACtD,MAAM,cAAc,GAAG,IAAA,iCAAsB,EAAC,OAAO,CAAC,CAAC;IAEvD,GAAG,CAAC,MAAM,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;IAC/C,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AACvC,CAAC"}
1
+ {"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/helpers/router.ts"],"names":[],"mappings":"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"}
package/lib/index.d.ts CHANGED
@@ -2,6 +2,7 @@ import type { Express } from "express";
2
2
  import { GiraffeqlObjectType, GiraffeqlRootResolverType, GiraffeqlInputType, GiraffeqlScalarType } from "./classes";
3
3
  import type { Params } from "./types";
4
4
  export { TsSchemaGenerator } from "./classes/schema";
5
+ export { sendErrorResponse, sendSuccessResponse } from "./helpers/router";
5
6
  export { GiraffeqlArgsError, GiraffeqlBaseError, GiraffeqlQueryError, GiraffeqlResultError, GiraffeqlInitializationError, GiraffeqlObjectType, GiraffeqlInputType, GiraffeqlRootResolverType, GiraffeqlScalarType, GiraffeqlInputTypeLookup, GiraffeqlObjectTypeLookup, GiraffeqlInputFieldType, } from "./classes";
6
7
  export { RootResolverDefinition, ObjectTypeDefinition, InputFieldDefinition, InputTypeDefinition, ScalarDefinition, GiraffeqlResolverNode, ResolverFunction, RootResolverFunction, ObjectTypeDefinitionField, ArrayOptions, isRootResolverDefinition, StringKeyObject, } from "./types";
7
8
  export declare const lookupSymbol: unique symbol;
package/lib/index.js CHANGED
@@ -1,10 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.generateAnonymousRootResolver = exports.validateResultFields = exports.validateExternalArgs = exports.processGiraffeqlResolverTree = exports.generateGiraffeqlResolverTree = exports.BaseScalars = exports.getParams = exports.initializeGiraffeql = exports.rootResolvers = exports.scalarTypeDefs = exports.inputTypeDefs = exports.objectTypeDefs = exports.lookupSymbol = exports.isRootResolverDefinition = exports.GiraffeqlInputFieldType = exports.GiraffeqlObjectTypeLookup = exports.GiraffeqlInputTypeLookup = exports.GiraffeqlScalarType = exports.GiraffeqlRootResolverType = exports.GiraffeqlInputType = exports.GiraffeqlObjectType = exports.GiraffeqlInitializationError = exports.GiraffeqlResultError = exports.GiraffeqlQueryError = exports.GiraffeqlBaseError = exports.GiraffeqlArgsError = exports.TsSchemaGenerator = void 0;
3
+ exports.generateAnonymousRootResolver = exports.validateResultFields = exports.validateExternalArgs = exports.processGiraffeqlResolverTree = exports.generateGiraffeqlResolverTree = exports.BaseScalars = exports.getParams = exports.initializeGiraffeql = exports.rootResolvers = exports.scalarTypeDefs = exports.inputTypeDefs = exports.objectTypeDefs = exports.lookupSymbol = exports.isRootResolverDefinition = exports.GiraffeqlInputFieldType = exports.GiraffeqlObjectTypeLookup = exports.GiraffeqlInputTypeLookup = exports.GiraffeqlScalarType = exports.GiraffeqlRootResolverType = exports.GiraffeqlInputType = exports.GiraffeqlObjectType = exports.GiraffeqlInitializationError = exports.GiraffeqlResultError = exports.GiraffeqlQueryError = exports.GiraffeqlBaseError = exports.GiraffeqlArgsError = exports.sendSuccessResponse = exports.sendErrorResponse = exports.TsSchemaGenerator = void 0;
4
4
  const router_1 = require("./helpers/router");
5
5
  const classes_1 = require("./classes");
6
6
  var schema_1 = require("./classes/schema");
7
7
  Object.defineProperty(exports, "TsSchemaGenerator", { enumerable: true, get: function () { return schema_1.TsSchemaGenerator; } });
8
+ var router_2 = require("./helpers/router");
9
+ Object.defineProperty(exports, "sendErrorResponse", { enumerable: true, get: function () { return router_2.sendErrorResponse; } });
10
+ Object.defineProperty(exports, "sendSuccessResponse", { enumerable: true, get: function () { return router_2.sendSuccessResponse; } });
8
11
  var classes_2 = require("./classes");
9
12
  Object.defineProperty(exports, "GiraffeqlArgsError", { enumerable: true, get: function () { return classes_2.GiraffeqlArgsError; } });
10
13
  Object.defineProperty(exports, "GiraffeqlBaseError", { enumerable: true, get: function () { return classes_2.GiraffeqlBaseError; } });
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AACA,6CAG0B;AAE1B,uCAMmB;AAInB,2CAAqD;AAA5C,2GAAA,iBAAiB,OAAA;AAE1B,qCAamB;AAZjB,6GAAA,kBAAkB,OAAA;AAClB,6GAAA,kBAAkB,OAAA;AAClB,8GAAA,mBAAmB,OAAA;AACnB,+GAAA,oBAAoB,OAAA;AACpB,uHAAA,4BAA4B,OAAA;AAC5B,8GAAA,mBAAmB,OAAA;AACnB,6GAAA,kBAAkB,OAAA;AAClB,oHAAA,yBAAyB,OAAA;AACzB,8GAAA,mBAAmB,OAAA;AACnB,mHAAA,wBAAwB,OAAA;AACxB,oHAAA,yBAAyB,OAAA;AACzB,kHAAA,uBAAuB,OAAA;AAGzB,iCAaiB;AAFf,iHAAA,wBAAwB,OAAA;AAI1B,IAAI,cAAgC,CAAC;AAErC,2BAA2B;AACd,QAAA,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;AAEhC,QAAA,cAAc,GAAqC,IAAI,GAAG,EAAE,CAAC;AAC7D,QAAA,aAAa,GAAoC,IAAI,GAAG,EAAE,CAAC;AAC3D,QAAA,cAAc,GAAqC,IAAI,GAAG,EAAE,CAAC;AAE7D,QAAA,aAAa,GAA2C,IAAI,GAAG,EAAE,CAAC;AAE/E,SAAgB,mBAAmB,CACjC,GAAY,EACZ,EACE,KAAK,GAAG,KAAK,EACb,WAAW,GAAG,IAAI,EAClB,KAAK,GAAG,YAAY,EACpB,iBAAiB,GAAG,IAAI,MACd,EAAE;IAEd,oCAAoC;IACpC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;QACvB,MAAM,IAAI,sCAA4B,CAAC;YACrC,OAAO,EAAE,yBAAyB;SACnC,CAAC,CAAC;KACJ;IAED,cAAc,GAAG;QACf,KAAK;QACL,WAAW;QACX,KAAK;QACL,iBAAiB;KAClB,CAAC;IAEF,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,IAAA,sCAA6B,GAAE,CAAC,CAAC;IAEjD,wEAAwE;IACxE,qBAAa,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;QAClC,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;QAChD,IAAI,CAAC,WAAW;YAAE,OAAO;QAEzB,IAAI,WAAW,CAAC,KAAK,KAAK,KAAK;YAC7B,MAAM,IAAI,sCAA4B,CAAC;gBACrC,OAAO,EAAE,yCAAyC,KAAK,GAAG;aAC3D,CAAC,CAAC;QAEL,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,CACrB,WAAW,CAAC,KAAK,EACjB,IAAA,iCAAwB,EAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,CAC/C,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,GAAW,EAAE,KAAc;QAC5D,qCAAqC;QACrC,IAAI,OAAO,KAAK,KAAK,WAAW,EAAE;YAChC,OAAO,IAAI,CAAC;SACb;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;AACL,CAAC;AAhDD,kDAgDC;AAED,SAAgB,SAAS;IACvB,IAAI,CAAC,cAAc,EAAE;QACnB,MAAM,IAAI,sCAA4B,CAAC;YACrC,OAAO,EAAE,wCAAwC;SAClD,CAAC,CAAC;KACJ;IACD,OAAO,cAAc,CAAC;AACxB,CAAC;AAPD,8BAOC;AAED,2CAAyC;AAEzC,uCAMwB;AALtB,qHAAA,6BAA6B,OAAA;AAC7B,oHAAA,4BAA4B,OAAA;AAC5B,4GAAA,oBAAoB,OAAA;AACpB,4GAAA,oBAAoB,OAAA;AACpB,qHAAA,6BAA6B,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -17,7 +17,7 @@ export interface GiraffeqlResponse {
17
17
  export interface GiraffeqlError {
18
18
  message: string;
19
19
  type: string;
20
- fieldPath?: string[];
20
+ fieldPath?: string[] | null;
21
21
  stack?: string;
22
22
  }
23
23
  export interface Params {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "giraffeql",
3
- "version": "2.0.7",
3
+ "version": "2.0.10",
4
4
  "description": "Methods and APIs for querying backends using JSON",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",