@kubun/graphql 0.3.14 → 0.4.1

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.
@@ -1,7 +1,4 @@
1
1
  import { GraphQLScalarType } from 'graphql';
2
- import type { JSONSchema } from 'json-schema-typed';
3
2
  export declare const GraphQLAttachmentID: GraphQLScalarType<string, string>;
4
- export declare const attachmentIDSchema: JSONSchema.String;
5
3
  export declare const GraphQLDocID: GraphQLScalarType<string, string>;
6
- export declare const docIDSchema: JSONSchema.String;
7
4
  //# sourceMappingURL=identifiers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"identifiers.d.ts","sourceRoot":"","sources":["../src/identifiers.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,iBAAiB,EAAQ,MAAM,SAAS,CAAA;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAWnD,eAAO,MAAM,mBAAmB,mCAW9B,CAAA;AAEF,eAAO,MAAM,kBAAkB,EAAE,UAAU,CAAC,MAI3C,CAAA;AAWD,eAAO,MAAM,YAAY,mCAWvB,CAAA;AAEF,eAAO,MAAM,WAAW,EAAE,UAAU,CAAC,MAIpC,CAAA"}
1
+ {"version":3,"file":"identifiers.d.ts","sourceRoot":"","sources":["../src/identifiers.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,iBAAiB,EAAQ,MAAM,SAAS,CAAA;AAW/D,eAAO,MAAM,mBAAmB,mCAW9B,CAAA;AAWF,eAAO,MAAM,YAAY,mCAWvB,CAAA"}
@@ -20,11 +20,6 @@ export const GraphQLAttachmentID = new GraphQLScalarType({
20
20
  return validateAttachmentID(ast.value);
21
21
  }
22
22
  });
23
- export const attachmentIDSchema = {
24
- type: 'string',
25
- title: 'AttachmentID',
26
- pattern: '^k[0-9a-z]{10,120}$'
27
- };
28
23
  function validateDocID(input) {
29
24
  if (typeof input !== 'string') {
30
25
  throw new GraphQLError(`Invalid DocumentID input: ${input}`);
@@ -45,8 +40,3 @@ export const GraphQLDocID = new GraphQLScalarType({
45
40
  return validateDocID(ast.value);
46
41
  }
47
42
  });
48
- export const docIDSchema = {
49
- type: 'string',
50
- title: 'DocID',
51
- pattern: '^k[0-9a-z]{10,120}$'
52
- };
package/lib/index.d.ts CHANGED
@@ -1,7 +1,6 @@
1
1
  export type { Context, MutationContext, QueryContext, ReadContextParams, ReadOnlyContext, SubscriptionContext, } from './context.js';
2
2
  export { createReadContext } from './context.js';
3
3
  export { GraphQLAttachmentID, GraphQLDocID } from './identifiers.js';
4
- export * as scalars from './scalars.js';
5
4
  export type { SchemaBuilderParams, SharedDefinitions, } from './schema.js';
6
5
  export { createSchema, SchemaBuilder } from './schema.js';
7
6
  export type * from './types.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,OAAO,EACP,eAAe,EACf,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,mBAAmB,GACpB,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAChD,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AACpE,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,YAAY,EACV,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AACzD,mBAAmB,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,OAAO,EACP,eAAe,EACf,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,mBAAmB,GACpB,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAChD,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AACpE,YAAY,EACV,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AACzD,mBAAmB,YAAY,CAAA"}
package/lib/index.js CHANGED
@@ -1,4 +1,3 @@
1
1
  export { createReadContext } from './context.js';
2
2
  export { GraphQLAttachmentID, GraphQLDocID } from './identifiers.js';
3
- export * as scalars from './scalars.js';
4
3
  export { createSchema, SchemaBuilder } from './schema.js';
package/lib/schema.d.ts CHANGED
@@ -58,14 +58,14 @@ export declare class SchemaBuilder {
58
58
  _buildObjectOrderByInput(id: string, schema: DocumentModelSchema | ObjectModel, parentName?: string, isDocument?: boolean): GraphQLInputObjectType;
59
59
  _buildSetInputObjectType(id: string, withFields: Array<string>, relationField?: string): GraphQLInputObjectType;
60
60
  _buildReference(id: string, schema: TypeModel, parentName?: string): GraphQLOutputType;
61
- _buildScalar(id: string, schema: ScalarModel, parentName?: string, asInput?: boolean): GraphQLScalarType;
61
+ _buildScalar(id: string, schema: ScalarModel, parentName?: string): GraphQLScalarType;
62
62
  _buildArray(schema: ArrayModel, parentName?: string): GraphQLList<GraphQLNonNull<GraphQLOutputType>>;
63
63
  _buildObject(id: string, schema: ObjectModel, parentName?: string): GraphQLObjectType;
64
64
  _buildObjectFields(id: string, schema: DocumentModelSchema | ObjectModel, parentName?: string): GraphQLFieldConfigMap<Record<string, unknown>, Context>;
65
65
  _buildRelationFields(fields: GraphQLFieldConfigMap<DocumentNode, Context>, fieldName: string, relation: RelationField): void;
66
66
  _buildRelationSubscriptions(fields: GraphQLFieldConfigMap<unknown, Context>, modelID: string, fieldName: string, relation: RelationField): void;
67
- _buildString(id: string, schema: StringModel, parentName: string, asInput: boolean): GraphQLEnumType | GraphQLObjectType | GraphQLScalarType;
68
- _buildCustomString(id: string, schema: StringCustomModel, asInput: boolean): GraphQLScalarType<unknown, unknown> | GraphQLObjectType<string, Context> | GraphQLObjectType<AttachmentID, Context>;
67
+ _buildString(schema: StringModel, parentName: string): GraphQLEnumType | GraphQLObjectType | GraphQLScalarType;
68
+ _buildCustomString(schema: StringCustomModel): GraphQLScalarType<unknown, unknown>;
69
69
  _buildEnumString(schema: StringEnumModel, parentName?: string): GraphQLEnumType;
70
70
  _buildFormatString(schema: StringFormatModel): GraphQLScalarType<unknown, unknown>;
71
71
  }
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
package/lib/schema.js CHANGED
@@ -19,13 +19,6 @@ const STRING_TITLES = {
19
19
  did: GraphQLDID,
20
20
  docid: GraphQLDocID
21
21
  };
22
- const EXPANDED_STRING_SCALARS = [
23
- 'attachmentid',
24
- 'did'
25
- ];
26
- function isExpandedStringScalar(title) {
27
- return EXPANDED_STRING_SCALARS.includes(title.toLowerCase());
28
- }
29
22
  function getReferenceID(path) {
30
23
  return path.slice(REFERENCE_PREFIX.length);
31
24
  }
@@ -256,10 +249,10 @@ export class SchemaBuilder {
256
249
  }
257
250
  // Extract inverse relations
258
251
  for (const [fieldName, meta] of Object.entries(model.fieldsMeta)){
259
- if (meta.relationModel != null) {
252
+ if (meta.type === 'document' && meta.model != null) {
260
253
  const relationRefID = getReferenceID(model.schema.properties[fieldName]?.$ref);
261
254
  const isList = this._getReferenceSchema(relationRefID).type === 'array';
262
- const relationID = getGlobalID(meta.relationModel, modelID).toString();
255
+ const relationID = getGlobalID(meta.model, modelID).toString();
263
256
  this._relationsTo[relationID] ??= {};
264
257
  this._relationsTo[relationID][fieldName] ??= [];
265
258
  this._relationsTo[relationID][fieldName].push({
@@ -427,7 +420,7 @@ export class SchemaBuilder {
427
420
  this._inputObjects[inputID] = input;
428
421
  return input;
429
422
  }
430
- return this._buildScalar(id, schema, parentName, true);
423
+ return this._buildScalar(id, schema, parentName);
431
424
  }
432
425
  _buildSharedDefinitions() {
433
426
  const nodeDefs = nodeDefinitions(async (id, ctx)=>{
@@ -709,50 +702,97 @@ export class SchemaBuilder {
709
702
  }
710
703
  };
711
704
  for (const [key, field] of Object.entries(dataObject.getFields())){
712
- const relationModel = model.fieldsMeta[key]?.relationModel;
713
- if (typeof relationModel !== 'undefined') {
714
- let relationModelID;
715
- let relationType;
716
- if (relationModel === null) {
717
- relationModelID = null;
718
- relationType = definitions.documentInterface;
719
- } else {
720
- relationModelID = getGlobalID(relationModel, id).toString();
721
- relationType = this._buildDocument(relationModelID);
722
- }
723
- if (isList(field.type)) {
724
- // TODO: add suport for filters?
725
- fields[`${key}Documents`] = {
726
- type: new GraphQLNonNull(toOuputList(relationType)),
727
- resolve: async (doc, _args, ctx)=>{
728
- const relationIDs = doc.data?.[key] ?? [];
729
- return relationIDs.length ? await ctx.resolveList(this.getModelIDs(relationModelID), relationIDs) : [];
705
+ const meta = model.fieldsMeta[key];
706
+ if (meta == null) {
707
+ continue;
708
+ }
709
+ switch(meta.type){
710
+ case 'account':
711
+ {
712
+ if (isList(field.type)) {
713
+ fields[`${key}Accounts`] = {
714
+ type: new GraphQLNonNull(toOuputList(definitions.accountObject)),
715
+ resolve: (doc)=>doc.data?.[key] ?? []
716
+ };
717
+ } else {
718
+ fields[`${key}Account`] = {
719
+ type: definitions.accountObject,
720
+ resolve: (doc)=>doc.data?.[key] ?? null
721
+ };
730
722
  }
731
- };
732
- } else {
733
- fields[`${key}Document`] = {
734
- type: relationType,
735
- resolve: async (doc, _args, ctx)=>{
736
- const relationID = doc.data?.[key];
737
- return relationID ? await ctx.loadDocument(relationID) : null;
723
+ break;
724
+ }
725
+ case 'attachment':
726
+ {
727
+ if (isList(field.type)) {
728
+ fields[`${key}Attachments`] = {
729
+ type: new GraphQLNonNull(toOuputList(definitions.attachmentObject)),
730
+ resolve: (doc)=>{
731
+ const ids = doc.data?.[key] ?? [];
732
+ return ids.map(AttachmentID.fromString);
733
+ }
734
+ };
735
+ } else {
736
+ fields[`${key}Attachment`] = {
737
+ type: definitions.attachmentObject,
738
+ resolve: (doc)=>{
739
+ const id = doc.data?.[key];
740
+ return id ? AttachmentID.fromString(id) : null;
741
+ }
742
+ };
738
743
  }
739
- };
740
- }
741
- }
742
- for (const iid of model.interfaces ?? []){
743
- const interfaceID = getGlobalID(iid, id).toString();
744
- for (const [fieldName, relations] of Object.entries(this._relationsTo[interfaceID] ?? {})){
745
- for (const relation of relations){
746
- this._buildRelationFields(fields, fieldName, relation);
744
+ break;
745
+ }
746
+ case 'document':
747
+ {
748
+ const relationModel = meta.model;
749
+ if (typeof relationModel === 'undefined') {
750
+ continue;
751
+ }
752
+ let relationModelID;
753
+ let relationType;
754
+ if (relationModel === null) {
755
+ relationModelID = null;
756
+ relationType = definitions.documentInterface;
757
+ } else {
758
+ relationModelID = getGlobalID(relationModel, id).toString();
759
+ relationType = this._buildDocument(relationModelID);
760
+ }
761
+ if (isList(field.type)) {
762
+ // TODO: add suport for filters?
763
+ fields[`${key}Documents`] = {
764
+ type: new GraphQLNonNull(toOuputList(relationType)),
765
+ resolve: async (doc, _args, ctx)=>{
766
+ const relationIDs = doc.data?.[key] ?? [];
767
+ return relationIDs.length ? await ctx.resolveList(this.getModelIDs(relationModelID), relationIDs) : [];
768
+ }
769
+ };
770
+ } else {
771
+ fields[`${key}Document`] = {
772
+ type: relationType,
773
+ resolve: async (doc, _args, ctx)=>{
774
+ const relationID = doc.data?.[key];
775
+ return relationID ? await ctx.loadDocument(relationID) : null;
776
+ }
777
+ };
778
+ }
779
+ break;
747
780
  }
748
- }
749
781
  }
750
- for (const [fieldName, relations] of Object.entries(this._relationsTo[id] ?? {})){
782
+ }
783
+ for (const iid of model.interfaces ?? []){
784
+ const interfaceID = getGlobalID(iid, id).toString();
785
+ for (const [fieldName, relations] of Object.entries(this._relationsTo[interfaceID] ?? {})){
751
786
  for (const relation of relations){
752
787
  this._buildRelationFields(fields, fieldName, relation);
753
788
  }
754
789
  }
755
790
  }
791
+ for (const [fieldName, relations] of Object.entries(this._relationsTo[id] ?? {})){
792
+ for (const relation of relations){
793
+ this._buildRelationFields(fields, fieldName, relation);
794
+ }
795
+ }
756
796
  return fields;
757
797
  }
758
798
  _buildDocumentDataObject(id, model, name) {
@@ -841,7 +881,7 @@ export class SchemaBuilder {
841
881
  }
842
882
  });
843
883
  }
844
- const scalar = this._buildScalar(id, schema, refParentName, true);
884
+ const scalar = this._buildScalar(id, schema, refParentName);
845
885
  const knownFilter = VALUE_FILTER_INPUT_TYPES[scalar.name];
846
886
  if (knownFilter != null) {
847
887
  return this._inputObjects[knownFilter];
@@ -983,11 +1023,9 @@ export class SchemaBuilder {
983
1023
  return this._buildScalar(id, schema, parentName);
984
1024
  }
985
1025
  }
986
- _buildScalar(id, schema, parentName = '', asInput = false) {
987
- // Use input key for expanded string scalars
988
- const key = asInput && schema.type === 'string' && schema.title != null && isExpandedStringScalar(schema.title) ? `${id}-input` : id;
989
- if (this._types[key] != null) {
990
- return this._types[key];
1026
+ _buildScalar(id, schema, parentName = '') {
1027
+ if (this._types[id] != null) {
1028
+ return this._types[id];
991
1029
  }
992
1030
  switch(schema.type){
993
1031
  case 'boolean':
@@ -1000,10 +1038,10 @@ export class SchemaBuilder {
1000
1038
  this._types[id] = GraphQLFloat;
1001
1039
  break;
1002
1040
  case 'string':
1003
- this._buildString(id, schema, parentName, asInput);
1041
+ this._types[id] = this._buildString(schema, parentName);
1004
1042
  break;
1005
1043
  }
1006
- return this._types[key];
1044
+ return this._types[id];
1007
1045
  }
1008
1046
  _buildArray(schema, parentName = '') {
1009
1047
  const itemRef = schema.items.$ref;
@@ -1106,48 +1144,28 @@ export class SchemaBuilder {
1106
1144
  }
1107
1145
  };
1108
1146
  }
1109
- _buildString(id, schema, parentName, asInput) {
1147
+ _buildString(schema, parentName) {
1110
1148
  if (schema.const != null) {
1111
- this._types[id] = GraphQLString;
1112
1149
  return GraphQLString;
1113
1150
  }
1114
1151
  if (schema.enum != null) {
1115
- this._types[id] = this._buildEnumString(schema, parentName);
1116
- return this._types[id];
1152
+ return this._buildEnumString(schema, parentName);
1117
1153
  }
1118
1154
  if (schema.format != null) {
1119
- this._types[id] = this._buildFormatString(schema);
1120
- return this._types[id];
1155
+ return this._buildFormatString(schema);
1121
1156
  }
1122
- return this._buildCustomString(id, schema, asInput);
1157
+ return this._buildCustomString(schema);
1123
1158
  }
1124
- _buildCustomString(id, schema, asInput) {
1159
+ _buildCustomString(schema) {
1125
1160
  if (schema.title == null) {
1126
1161
  // Plain string type
1127
- this._types[id] = GraphQLString;
1128
1162
  return GraphQLString;
1129
1163
  }
1130
- const definitions = this._getDefinitions();
1131
1164
  const title = schema.title.toLowerCase();
1132
- if (title === 'attachmentid') {
1133
- if (asInput) {
1134
- this._types[`${id}-input`] = GraphQLID;
1135
- return GraphQLID;
1136
- }
1137
- this._types[id] = definitions.attachmentObject;
1138
- return definitions.attachmentObject;
1165
+ if (title === 'attachmentid' || title === 'did') {
1166
+ return GraphQLID;
1139
1167
  }
1140
- if (title === 'did') {
1141
- if (asInput) {
1142
- this._types[`${id}-input`] = GraphQLID;
1143
- return GraphQLID;
1144
- }
1145
- this._types[id] = definitions.accountObject;
1146
- return definitions.accountObject;
1147
- }
1148
- const scalar = STRING_TITLES[title] ?? GraphQLString;
1149
- this._types[id] = scalar;
1150
- return scalar;
1168
+ return STRING_TITLES[title] ?? GraphQLString;
1151
1169
  }
1152
1170
  _buildEnumString(schema, parentName = '') {
1153
1171
  const name = pascalCase(parentName + schema.title);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kubun/graphql",
3
- "version": "0.3.14",
3
+ "version": "0.4.1",
4
4
  "license": "see LICENSE.md",
5
5
  "keywords": [],
6
6
  "type": "module",
@@ -22,12 +22,11 @@
22
22
  "graphql-relay": "^0.10.2",
23
23
  "graphql-scalars": "^1.25.0",
24
24
  "multiformats": "^13.4.2",
25
- "@kubun/id": "^0.3.1",
26
- "@kubun/protocol": "^0.3.9"
25
+ "@kubun/protocol": "^0.4.0",
26
+ "@kubun/id": "^0.4.0"
27
27
  },
28
28
  "devDependencies": {
29
- "json-schema-typed": "^8.0.2",
30
- "@kubun/db": "^0.3.6"
29
+ "@kubun/db": "^0.4.0"
31
30
  },
32
31
  "scripts": {
33
32
  "build:clean": "del lib",
package/lib/scalars.d.ts DELETED
@@ -1,18 +0,0 @@
1
- import type { JSONSchema } from 'json-schema-typed';
2
- export { attachmentIDSchema, docIDSchema } from './identifiers.js';
3
- export declare const bigIntSchema: JSONSchema.Integer;
4
- export declare const didSchema: JSONSchema.String;
5
- export declare const dateTimeSchema: JSONSchema.String;
6
- export declare const durationSchema: JSONSchema.String;
7
- export declare const emailAddressSchema: JSONSchema.String;
8
- export declare const jsonObjectSchema: JSONSchema.Object<any>;
9
- export declare const latitudeSchema: JSONSchema.Number;
10
- export declare const localDateSchema: JSONSchema.String;
11
- export declare const localDateTimeSchema: JSONSchema.String;
12
- export declare const localTimeSchema: JSONSchema.String;
13
- export declare const localeSchema: JSONSchema.String;
14
- export declare const longitudeSchema: JSONSchema.Number;
15
- export declare const timeZoneSchema: JSONSchema.String;
16
- export declare const urlSchema: JSONSchema.String;
17
- export declare const utcOffsetSchema: JSONSchema.String;
18
- //# sourceMappingURL=scalars.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scalars.d.ts","sourceRoot":"","sources":["../src/scalars.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAEnD,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAMlE,eAAO,MAAM,YAAY,oBAAwD,CAAA;AACjF,eAAO,MAAM,SAAS,mBAAiC,CAAA;AACvD,eAAO,MAAM,cAAc,mBAAsC,CAAA;AACjE,eAAO,MAAM,cAAc,mBAAsC,CAAA;AACjE,eAAO,MAAM,kBAAkB,mBAA0C,CAAA;AACzE,eAAO,MAAM,gBAAgB,wBAA2D,CAAA;AACxF,eAAO,MAAM,cAAc,mBAAyD,CAAA;AACpF,eAAO,MAAM,eAAe,mBAAuC,CAAA;AACnE,eAAO,MAAM,mBAAmB,mBAA2C,CAAA;AAC3E,eAAO,MAAM,eAAe,mBAAuC,CAAA;AACnE,eAAO,MAAM,YAAY,mBAAoC,CAAA;AAC7D,eAAO,MAAM,eAAe,mBAA0D,CAAA;AACtF,eAAO,MAAM,cAAc,mBAAsC,CAAA;AACjE,eAAO,MAAM,SAAS,mBAAiC,CAAA;AACvD,eAAO,MAAM,eAAe,mBAAuC,CAAA"}
package/lib/scalars.js DELETED
@@ -1,23 +0,0 @@
1
- import { GraphQLBigInt, GraphQLDateTime, GraphQLDID, GraphQLDuration, GraphQLEmailAddress, GraphQLJSONObject, GraphQLLatitude, GraphQLLocalDate, GraphQLLocalDateTime, GraphQLLocale, GraphQLLocalTime, GraphQLLongitude, GraphQLTimeZone, GraphQLURL, GraphQLUtcOffset } from 'graphql-scalars';
2
- export { attachmentIDSchema, docIDSchema } from './identifiers.js';
3
- function createScalarSchema(type) {
4
- return {
5
- ...type.extensions.jsonSchema,
6
- title: type.name
7
- };
8
- }
9
- export const bigIntSchema = createScalarSchema(GraphQLBigInt);
10
- export const didSchema = createScalarSchema(GraphQLDID);
11
- export const dateTimeSchema = createScalarSchema(GraphQLDateTime);
12
- export const durationSchema = createScalarSchema(GraphQLDuration);
13
- export const emailAddressSchema = createScalarSchema(GraphQLEmailAddress);
14
- export const jsonObjectSchema = createScalarSchema(GraphQLJSONObject);
15
- export const latitudeSchema = createScalarSchema(GraphQLLatitude);
16
- export const localDateSchema = createScalarSchema(GraphQLLocalDate);
17
- export const localDateTimeSchema = createScalarSchema(GraphQLLocalDateTime);
18
- export const localTimeSchema = createScalarSchema(GraphQLLocalTime);
19
- export const localeSchema = createScalarSchema(GraphQLLocale);
20
- export const longitudeSchema = createScalarSchema(GraphQLLongitude);
21
- export const timeZoneSchema = createScalarSchema(GraphQLTimeZone);
22
- export const urlSchema = createScalarSchema(GraphQLURL);
23
- export const utcOffsetSchema = createScalarSchema(GraphQLUtcOffset);