Skip to content

Commit 5b17cf9

Browse files
author
Travis CI
committed
Deploy 830907b to NPM branch
1 parent 33fccf3 commit 5b17cf9

File tree

8 files changed

+62
-82
lines changed

8 files changed

+62
-82
lines changed

index.js.flow

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,9 @@ export type {
165165
GraphQLTypeResolver,
166166
GraphQLUnionTypeConfig,
167167
GraphQLDirectiveConfig,
168+
GraphQLScalarSerializer,
169+
GraphQLScalarValueParser,
170+
GraphQLScalarLiteralParser,
168171
} from './type';
169172

170173
// Parse and operate on GraphQL language source files.

type/definition.js

Lines changed: 14 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -400,45 +400,37 @@ function () {
400400

401401
_defineProperty(this, "description", void 0);
402402

403+
_defineProperty(this, "serialize", void 0);
404+
405+
_defineProperty(this, "parseValue", void 0);
406+
407+
_defineProperty(this, "parseLiteral", void 0);
408+
403409
_defineProperty(this, "astNode", void 0);
404410

405411
_defineProperty(this, "extensionASTNodes", void 0);
406412

407-
_defineProperty(this, "_scalarConfig", void 0);
408-
409413
this.name = config.name;
410414
this.description = config.description;
415+
this.serialize = config.serialize;
416+
417+
this.parseValue = config.parseValue || function (value) {
418+
return value;
419+
};
420+
421+
this.parseLiteral = config.parseLiteral || _valueFromASTUntyped.valueFromASTUntyped;
411422
this.astNode = config.astNode;
412423
this.extensionASTNodes = config.extensionASTNodes;
413-
this._scalarConfig = config;
414424
!(typeof config.name === 'string') ? (0, _invariant.default)(0, 'Must provide name.') : void 0;
415425
!(typeof config.serialize === 'function') ? (0, _invariant.default)(0, "".concat(this.name, " must provide \"serialize\" function. If this custom Scalar ") + 'is also used as an input type, ensure "parseValue" and "parseLiteral" ' + 'functions are also provided.') : void 0;
416426

417427
if (config.parseValue || config.parseLiteral) {
418428
!(typeof config.parseValue === 'function' && typeof config.parseLiteral === 'function') ? (0, _invariant.default)(0, "".concat(this.name, " must provide both \"parseValue\" and \"parseLiteral\" ") + 'functions.') : void 0;
419429
}
420-
} // Serializes an internal value to include in a response.
421-
430+
}
422431

423432
var _proto = GraphQLScalarType.prototype;
424433

425-
_proto.serialize = function serialize(value) {
426-
var serializer = this._scalarConfig.serialize;
427-
return serializer(value);
428-
}; // Parses an externally provided value to use as an input.
429-
430-
431-
_proto.parseValue = function parseValue(value) {
432-
var parser = this._scalarConfig.parseValue;
433-
return parser ? parser(value) : value;
434-
}; // Parses an externally provided literal value to use as an input.
435-
436-
437-
_proto.parseLiteral = function parseLiteral(valueNode, variables) {
438-
var parser = this._scalarConfig.parseLiteral;
439-
return parser ? parser(valueNode, variables) : (0, _valueFromASTUntyped.valueFromASTUntyped)(valueNode, variables);
440-
};
441-
442434
_proto.toString = function toString() {
443435
return this.name;
444436
};

type/definition.js.flow

Lines changed: 19 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -535,17 +535,20 @@ function resolveThunk<+T>(thunk: Thunk<T>): T {
535535
export class GraphQLScalarType {
536536
name: string;
537537
description: ?string;
538+
serialize: GraphQLScalarSerializer<*>;
539+
parseValue: GraphQLScalarValueParser<*>;
540+
parseLiteral: GraphQLScalarLiteralParser<*>;
538541
astNode: ?ScalarTypeDefinitionNode;
539542
extensionASTNodes: ?$ReadOnlyArray<ScalarTypeExtensionNode>;
540543

541-
_scalarConfig: GraphQLScalarTypeConfig<*, *>;
542-
543544
constructor(config: GraphQLScalarTypeConfig<*, *>): void {
544545
this.name = config.name;
545546
this.description = config.description;
547+
this.serialize = config.serialize;
548+
this.parseValue = config.parseValue || (value => value);
549+
this.parseLiteral = config.parseLiteral || valueFromASTUntyped;
546550
this.astNode = config.astNode;
547551
this.extensionASTNodes = config.extensionASTNodes;
548-
this._scalarConfig = config;
549552
invariant(typeof config.name === 'string', 'Must provide name.');
550553
invariant(
551554
typeof config.serialize === 'function',
@@ -563,26 +566,6 @@ export class GraphQLScalarType {
563566
}
564567
}
565568

566-
// Serializes an internal value to include in a response.
567-
serialize(value: mixed): mixed {
568-
const serializer = this._scalarConfig.serialize;
569-
return serializer(value);
570-
}
571-
572-
// Parses an externally provided value to use as an input.
573-
parseValue(value: mixed): mixed {
574-
const parser = this._scalarConfig.parseValue;
575-
return parser ? parser(value) : value;
576-
}
577-
578-
// Parses an externally provided literal value to use as an input.
579-
parseLiteral(valueNode: ValueNode, variables: ?ObjMap<mixed>): mixed {
580-
const parser = this._scalarConfig.parseLiteral;
581-
return parser
582-
? parser(valueNode, variables)
583-
: valueFromASTUntyped(valueNode, variables);
584-
}
585-
586569
toString(): string {
587570
return this.name;
588571
}
@@ -592,17 +575,24 @@ export class GraphQLScalarType {
592575
defineToStringTag(GraphQLScalarType);
593576
defineToJSON(GraphQLScalarType);
594577

578+
export type GraphQLScalarSerializer<TExternal> = (value: mixed) => ?TExternal;
579+
export type GraphQLScalarValueParser<TInternal> = (value: mixed) => ?TInternal;
580+
export type GraphQLScalarLiteralParser<TInternal> = (
581+
valueNode: ValueNode,
582+
variables: ?ObjMap<mixed>,
583+
) => ?TInternal;
584+
595585
export type GraphQLScalarTypeConfig<TInternal, TExternal> = {|
596586
name: string,
597587
description?: ?string,
588+
// Serializes an internal value to include in a response.
589+
serialize: GraphQLScalarSerializer<TExternal>,
590+
// Parses an externally provided value to use as an input.
591+
parseValue?: GraphQLScalarValueParser<TInternal>,
592+
// Parses an externally provided literal value to use as an input.
593+
parseLiteral?: GraphQLScalarLiteralParser<TInternal>,
598594
astNode?: ?ScalarTypeDefinitionNode,
599595
extensionASTNodes?: ?$ReadOnlyArray<ScalarTypeExtensionNode>,
600-
serialize: (value: mixed) => ?TExternal,
601-
parseValue?: (value: mixed) => ?TInternal,
602-
parseLiteral?: (
603-
valueNode: ValueNode,
604-
variables: ?ObjMap<mixed>,
605-
) => ?TInternal,
606596
|};
607597

608598
/**

type/definition.mjs

Lines changed: 14 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -315,45 +315,37 @@ function () {
315315

316316
_defineProperty(this, "description", void 0);
317317

318+
_defineProperty(this, "serialize", void 0);
319+
320+
_defineProperty(this, "parseValue", void 0);
321+
322+
_defineProperty(this, "parseLiteral", void 0);
323+
318324
_defineProperty(this, "astNode", void 0);
319325

320326
_defineProperty(this, "extensionASTNodes", void 0);
321327

322-
_defineProperty(this, "_scalarConfig", void 0);
323-
324328
this.name = config.name;
325329
this.description = config.description;
330+
this.serialize = config.serialize;
331+
332+
this.parseValue = config.parseValue || function (value) {
333+
return value;
334+
};
335+
336+
this.parseLiteral = config.parseLiteral || valueFromASTUntyped;
326337
this.astNode = config.astNode;
327338
this.extensionASTNodes = config.extensionASTNodes;
328-
this._scalarConfig = config;
329339
!(typeof config.name === 'string') ? invariant(0, 'Must provide name.') : void 0;
330340
!(typeof config.serialize === 'function') ? invariant(0, "".concat(this.name, " must provide \"serialize\" function. If this custom Scalar ") + 'is also used as an input type, ensure "parseValue" and "parseLiteral" ' + 'functions are also provided.') : void 0;
331341

332342
if (config.parseValue || config.parseLiteral) {
333343
!(typeof config.parseValue === 'function' && typeof config.parseLiteral === 'function') ? invariant(0, "".concat(this.name, " must provide both \"parseValue\" and \"parseLiteral\" ") + 'functions.') : void 0;
334344
}
335-
} // Serializes an internal value to include in a response.
336-
345+
}
337346

338347
var _proto = GraphQLScalarType.prototype;
339348

340-
_proto.serialize = function serialize(value) {
341-
var serializer = this._scalarConfig.serialize;
342-
return serializer(value);
343-
}; // Parses an externally provided value to use as an input.
344-
345-
346-
_proto.parseValue = function parseValue(value) {
347-
var parser = this._scalarConfig.parseValue;
348-
return parser ? parser(value) : value;
349-
}; // Parses an externally provided literal value to use as an input.
350-
351-
352-
_proto.parseLiteral = function parseLiteral(valueNode, variables) {
353-
var parser = this._scalarConfig.parseLiteral;
354-
return parser ? parser(valueNode, variables) : valueFromASTUntyped(valueNode, variables);
355-
};
356-
357349
_proto.toString = function toString() {
358350
return this.name;
359351
};

type/index.js.flow

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,9 @@ export type {
152152
GraphQLScalarTypeConfig,
153153
GraphQLTypeResolver,
154154
GraphQLUnionTypeConfig,
155+
GraphQLScalarSerializer,
156+
GraphQLScalarValueParser,
157+
GraphQLScalarLiteralParser,
155158
} from './definition';
156159

157160
export { validateSchema, assertValidSchema } from './validate';

utilities/extendSchema.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -354,9 +354,9 @@ function extendSchema(schema, documentAST, options) {
354354
description: type.description,
355355
astNode: type.astNode,
356356
extensionASTNodes: extensionASTNodes,
357-
serialize: type._scalarConfig.serialize,
358-
parseValue: type._scalarConfig.parseValue,
359-
parseLiteral: type._scalarConfig.parseLiteral
357+
serialize: type.serialize,
358+
parseValue: type.parseValue,
359+
parseLiteral: type.parseLiteral
360360
});
361361
}
362362

utilities/extendSchema.js.flow

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -439,9 +439,9 @@ export function extendSchema(
439439
description: type.description,
440440
astNode: type.astNode,
441441
extensionASTNodes,
442-
serialize: type._scalarConfig.serialize,
443-
parseValue: type._scalarConfig.parseValue,
444-
parseLiteral: type._scalarConfig.parseLiteral,
442+
serialize: type.serialize,
443+
parseValue: type.parseValue,
444+
parseLiteral: type.parseLiteral,
445445
});
446446
}
447447

utilities/extendSchema.mjs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -333,9 +333,9 @@ export function extendSchema(schema, documentAST, options) {
333333
description: type.description,
334334
astNode: type.astNode,
335335
extensionASTNodes: extensionASTNodes,
336-
serialize: type._scalarConfig.serialize,
337-
parseValue: type._scalarConfig.parseValue,
338-
parseLiteral: type._scalarConfig.parseLiteral
336+
serialize: type.serialize,
337+
parseValue: type.parseValue,
338+
parseLiteral: type.parseLiteral
339339
});
340340
}
341341

0 commit comments

Comments
 (0)