@kubun/graphql 0.2.1 → 0.2.3
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/lib/scalars.d.ts +1 -1
- package/lib/scalars.d.ts.map +1 -1
- package/lib/schema.d.ts +1 -0
- package/lib/schema.d.ts.map +1 -1
- package/lib/schema.js +30 -23
- package/package.json +2 -2
package/lib/scalars.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ export declare const bigIntSchema: JSONSchema.Integer;
|
|
|
4
4
|
export declare const didSchema: JSONSchema.String;
|
|
5
5
|
export declare const dateTimeSchema: JSONSchema.String;
|
|
6
6
|
export declare const durationSchema: JSONSchema.String;
|
|
7
|
-
export declare const jsonObjectSchema: JSONSchema.
|
|
7
|
+
export declare const jsonObjectSchema: JSONSchema.Object<any>;
|
|
8
8
|
export declare const latitudeSchema: JSONSchema.Number;
|
|
9
9
|
export declare const localDateSchema: JSONSchema.String;
|
|
10
10
|
export declare const localDateTimeSchema: JSONSchema.String;
|
package/lib/scalars.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scalars.d.ts","sourceRoot":"","sources":["../src/scalars.ts"],"names":[],"mappings":"AAiBA,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,gBAAgB,
|
|
1
|
+
{"version":3,"file":"scalars.d.ts","sourceRoot":"","sources":["../src/scalars.ts"],"names":[],"mappings":"AAiBA,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,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/schema.d.ts
CHANGED
|
@@ -45,6 +45,7 @@ export declare class SchemaBuilder<Document extends DocumentType = DocumentType,
|
|
|
45
45
|
build(): GraphQLSchema;
|
|
46
46
|
_getDefinitions(): Definitions;
|
|
47
47
|
_getReference(path: string, parentName?: string): GraphQLOutputType;
|
|
48
|
+
_getReferenceSchema(id: string): TypeModel;
|
|
48
49
|
_getReferenceInput(path: string, isPartial: boolean, parentName?: string): GraphQLInputType;
|
|
49
50
|
_buildSharedDefinitions(): Definitions;
|
|
50
51
|
_buildDocument(id: string): GraphQLObjectType<Document, Context>;
|
package/lib/schema.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAyC,MAAM,WAAW,CAAA;AAC/E,OAAO,EACL,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,WAAW,EAEhB,KAAK,qBAAqB,EAC1B,KAAK,WAAW,
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
|
package/lib/schema.js
CHANGED
|
@@ -3,7 +3,7 @@ import { REFERENCE_PREFIX } from '@kubun/protocol';
|
|
|
3
3
|
import { pascalCase } from 'change-case';
|
|
4
4
|
import { GraphQLBoolean, GraphQLEnumType, GraphQLFloat, GraphQLID, GraphQLInputObjectType, GraphQLInt, GraphQLInterfaceType, GraphQLList, GraphQLNonNull, GraphQLObjectType, GraphQLSchema, GraphQLString, isEnumType, isListType, isNonNullType } from 'graphql';
|
|
5
5
|
import { connectionArgs, connectionDefinitions, nodeDefinitions } from 'graphql-relay';
|
|
6
|
-
import { GraphQLDID, GraphQLDuration, GraphQLJSON, GraphQLURL } from 'graphql-scalars';
|
|
6
|
+
import { GraphQLDID, GraphQLDuration, GraphQLJSON, GraphQLJSONObject, GraphQLURL } from 'graphql-scalars';
|
|
7
7
|
import { GraphQLAttachmentID, GraphQLDocID } from './identifiers.js';
|
|
8
8
|
import { getUniqueDocValue } from './utils.js';
|
|
9
9
|
const STRING_FORMATS = {
|
|
@@ -16,8 +16,12 @@ const STRING_FORMATS = {
|
|
|
16
16
|
const STRING_TITLES = {
|
|
17
17
|
attachmentid: GraphQLAttachmentID,
|
|
18
18
|
did: GraphQLDID,
|
|
19
|
-
docid: GraphQLDocID
|
|
19
|
+
docid: GraphQLDocID,
|
|
20
|
+
jsonobject: GraphQLJSONObject
|
|
20
21
|
};
|
|
22
|
+
function getReferenceID(path) {
|
|
23
|
+
return path.slice(REFERENCE_PREFIX.length);
|
|
24
|
+
}
|
|
21
25
|
function isList(type) {
|
|
22
26
|
return isListType(type) || isNonNullType(type) && isListType(type.ofType);
|
|
23
27
|
}
|
|
@@ -283,23 +287,24 @@ export class SchemaBuilder {
|
|
|
283
287
|
return this._definitions;
|
|
284
288
|
}
|
|
285
289
|
_getReference(path, parentName) {
|
|
286
|
-
const id = path
|
|
290
|
+
const id = getReferenceID(path);
|
|
287
291
|
const type = this._types[id];
|
|
288
292
|
if (type != null) {
|
|
289
293
|
return type;
|
|
290
294
|
}
|
|
291
|
-
const schema = this.
|
|
292
|
-
if (schema == null) {
|
|
293
|
-
throw new Error(`Could not find reference: ${id}`);
|
|
294
|
-
}
|
|
295
|
+
const schema = this._getReferenceSchema(id);
|
|
295
296
|
return this._buildReference(id, schema, parentName);
|
|
296
297
|
}
|
|
297
|
-
|
|
298
|
-
const id = path.slice(REFERENCE_PREFIX.length);
|
|
298
|
+
_getReferenceSchema(id) {
|
|
299
299
|
const schema = this._references[id];
|
|
300
300
|
if (schema == null) {
|
|
301
301
|
throw new Error(`Could not find reference: ${id}`);
|
|
302
302
|
}
|
|
303
|
+
return schema;
|
|
304
|
+
}
|
|
305
|
+
_getReferenceInput(path, isPartial, parentName = '') {
|
|
306
|
+
const id = getReferenceID(path);
|
|
307
|
+
const schema = this._getReferenceSchema(id);
|
|
303
308
|
if (schema.type === 'array') {
|
|
304
309
|
const itemType = this._getReferenceInput(schema.items.$ref, false, schema.title);
|
|
305
310
|
return new GraphQLList(new GraphQLNonNull(itemType));
|
|
@@ -512,13 +517,18 @@ export class SchemaBuilder {
|
|
|
512
517
|
const setFields = {};
|
|
513
518
|
const updateFields = {};
|
|
514
519
|
for (const [key, value] of Object.entries(model.schema.properties)){
|
|
515
|
-
const
|
|
520
|
+
const path = value.$ref;
|
|
521
|
+
const setType = this._getReferenceInput(path, false);
|
|
516
522
|
setFields[key] = {
|
|
517
523
|
type: model.schema.required.includes(key) ? new GraphQLNonNull(setType) : setType
|
|
518
524
|
};
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
525
|
+
const id = getReferenceID(path);
|
|
526
|
+
const schema = this._getReferenceSchema(id);
|
|
527
|
+
if (schema.const == null) {
|
|
528
|
+
updateFields[key] = {
|
|
529
|
+
type: this._getReferenceInput(path, true)
|
|
530
|
+
};
|
|
531
|
+
}
|
|
522
532
|
}
|
|
523
533
|
const name = this._aliases[id];
|
|
524
534
|
this._inputObjects[id] = new GraphQLInputObjectType({
|
|
@@ -531,11 +541,8 @@ export class SchemaBuilder {
|
|
|
531
541
|
});
|
|
532
542
|
}
|
|
533
543
|
_buildReferenceFilterInput(path, parentName = '') {
|
|
534
|
-
const id = path
|
|
535
|
-
const schema = this.
|
|
536
|
-
if (schema == null) {
|
|
537
|
-
throw new Error(`Could not find reference: ${id}`);
|
|
538
|
-
}
|
|
544
|
+
const id = getReferenceID(path);
|
|
545
|
+
const schema = this._getReferenceSchema(id);
|
|
539
546
|
if (schema.type === 'object') {
|
|
540
547
|
return this._buildObjectFilterInput(id, schema, parentName);
|
|
541
548
|
}
|
|
@@ -570,11 +577,8 @@ export class SchemaBuilder {
|
|
|
570
577
|
return this._inputObjects[filter.name];
|
|
571
578
|
}
|
|
572
579
|
_buildReferenceOrderByInput(path, parentName = '') {
|
|
573
|
-
const id = path
|
|
574
|
-
const schema = this.
|
|
575
|
-
if (schema == null) {
|
|
576
|
-
throw new Error(`Could not find reference: ${id}`);
|
|
577
|
-
}
|
|
580
|
+
const id = getReferenceID(path);
|
|
581
|
+
const schema = this._getReferenceSchema(id);
|
|
578
582
|
switch(schema.type){
|
|
579
583
|
case 'array':
|
|
580
584
|
return null;
|
|
@@ -798,6 +802,9 @@ export class SchemaBuilder {
|
|
|
798
802
|
return fields;
|
|
799
803
|
}
|
|
800
804
|
_buildString(schema, asInput) {
|
|
805
|
+
if (schema.const != null) {
|
|
806
|
+
return GraphQLString;
|
|
807
|
+
}
|
|
801
808
|
if (schema.enum != null) {
|
|
802
809
|
return this._buildEnumString(schema);
|
|
803
810
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kubun/graphql",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.3",
|
|
4
4
|
"license": "see LICENSE.md",
|
|
5
5
|
"keywords": [],
|
|
6
6
|
"type": "module",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"graphql-scalars": "^1.24.2",
|
|
23
23
|
"multiformats": "^13.3.2",
|
|
24
24
|
"@kubun/id": "^0.2.0",
|
|
25
|
-
"@kubun/protocol": "^0.2.
|
|
25
|
+
"@kubun/protocol": "^0.2.4"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
28
|
"json-schema-typed": "^8.0.1"
|