@kubun/graphql 0.2.2 → 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/schema.d.ts +1 -0
- package/lib/schema.d.ts.map +1 -1
- package/lib/schema.js +27 -21
- package/package.json +2 -2
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":"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,EAEhB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,WAAW,EAEhB,KAAK,SAAS,EACf,MAAM,iBAAiB,CAAA;AAExB,OAAO,EAEL,eAAe,EAEf,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAI1B,sBAAsB,EACtB,KAAK,gBAAgB,EAErB,oBAAoB,EACpB,WAAW,EACX,cAAc,EACd,iBAAiB,EACjB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,aAAa,EAKd,MAAM,SAAS,CAAA;AAChB,OAAO,EACL,KAAK,UAAU,EACf,KAAK,mBAAmB,EAIzB,MAAM,eAAe,CAAA;AAmCtB,wBAAgB,MAAM,CAAC,IAAI,EAAE,gBAAgB,iDAE5C;AA6FD,eAAO,MAAM,cAAc,wBAUzB,CAAA;AAUF,MAAM,MAAM,YAAY,GAAG;IACzB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,YAAY,GAAG,IAAI,CAAA;CAC1B,CAAA;AAED,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAEjD,MAAM,MAAM,sBAAsB,CAAC,OAAO,SAAS,WAAW,GAAG,WAAW,IAAI;IAC9E,aAAa,EAAE,oBAAoB,CAAA;IACnC,SAAS,EAAE,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAC/C,UAAU,EAAE,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;CACjD,CAAA;AAED,MAAM,MAAM,iBAAiB,CAC3B,QAAQ,SAAS,YAAY,GAAG,YAAY,EAC5C,OAAO,SAAS,WAAW,GAAG,WAAW,IACvC,sBAAsB,CAAC,OAAO,CAAC,GAAG;IACpC,aAAa,EAAE,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACjD,gBAAgB,EAAE,iBAAiB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;IAC1D,iBAAiB,EAAE,oBAAoB,CAAA;IACvC,gBAAgB,EAAE,iBAAiB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;IACtD,WAAW,EAAE,qBAAqB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;CACrD,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,MAAM,EAAE,oBAAoB,CAAA;CAC7B,CAAA;AAED,qBAAa,aAAa,CACxB,QAAQ,SAAS,YAAY,GAAG,YAAY,EAC5C,OAAO,SAAS,WAAW,GAAG,WAAW,EACzC,WAAW,SAAS,iBAAiB,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,iBAAiB,CAAC,QAAQ,EAAE,OAAO,CAAC;IAG/F,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,YAAY,EAAE,WAAW,GAAG,SAAS,CAAA;IACrC,OAAO,EAAE,oBAAoB,CAAA;IAC7B,WAAW,EAAE,qBAAqB,CAAK;IACvC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAK;IACzD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAuB;IAChE,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAA6C;IAClG,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAK;gBAEzD,MAAM,EAAE,mBAAmB;IAqBvC,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI;IAIhC,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAIhE,iBAAiB,CACrB,KAAK,EAAE,MAAM,GAAG,IAAI,EACpB,IAAI,EAAE,mBAAmB,EACzB,GAAG,EAAE,OAAO,GACX,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAI1B,WAAW,CACf,KAAK,EAAE,MAAM,GAAG,IAAI,EACpB,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,EAClB,GAAG,EAAE,OAAO,GACX,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAI3B,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,GAAG,IAAI;IAI1D,KAAK,IAAI,aAAa;IAiCtB,eAAe,IAAI,WAAW;IAO9B,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,iBAAiB;IAWnE,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS;IAQ1C,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,SAAK,GAAG,gBAAgB;IAwCvF,uBAAuB,IAAI,WAAW;IAiItC,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,iBAAiB,CAAC,QAAQ,EAAE,OAAO,CAAC;IA+BhE,mBAAmB,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,IAAI;IAgC3D,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,SAAK,GAAG,gBAAgB;IAqC3E,2BAA2B,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,SAAK,GAAG,gBAAgB,GAAG,IAAI;IAcnF,uBAAuB,CACrB,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,mBAAmB,GAAG,WAAW,EACzC,UAAU,SAAK,EACf,UAAU,UAAQ;IAmCpB,wBAAwB,CACtB,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,mBAAmB,GAAG,WAAW,EACzC,UAAU,SAAK,EACf,UAAU,UAAQ;IA4BpB,wBAAwB,CACtB,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,EACzB,aAAa,CAAC,EAAE,MAAM,GACrB,sBAAsB;IA4BzB,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,SAAK,GAAG,iBAAiB;IAiBlF,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,UAAQ,GAAG,iBAAiB;IAkBjF,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,SAAK,GAAG,WAAW,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;IAOhG,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,SAAK,GAAG,iBAAiB;IAKjF,kBAAkB,CAChB,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,mBAAmB,GAAG,WAAW,EACzC,KAAK,CAAC,EAAE,aAAa,GACpB,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IA6ExD,YAAY,CACV,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,OAAO,GACf,eAAe,GAAG,iBAAiB,GAAG,iBAAiB;IAa1D,kBAAkB,CAAC,MAAM,EAAE,iBAAiB,EAAE,OAAO,EAAE,OAAO;IAqB9D,gBAAgB,CAAC,MAAM,EAAE,eAAe;IAQxC,kBAAkB,CAAC,MAAM,EAAE,iBAAiB;CAO7C"}
|
package/lib/schema.js
CHANGED
|
@@ -19,6 +19,9 @@ const STRING_TITLES = {
|
|
|
19
19
|
docid: GraphQLDocID,
|
|
20
20
|
jsonobject: GraphQLJSONObject
|
|
21
21
|
};
|
|
22
|
+
function getReferenceID(path) {
|
|
23
|
+
return path.slice(REFERENCE_PREFIX.length);
|
|
24
|
+
}
|
|
22
25
|
function isList(type) {
|
|
23
26
|
return isListType(type) || isNonNullType(type) && isListType(type.ofType);
|
|
24
27
|
}
|
|
@@ -284,23 +287,24 @@ export class SchemaBuilder {
|
|
|
284
287
|
return this._definitions;
|
|
285
288
|
}
|
|
286
289
|
_getReference(path, parentName) {
|
|
287
|
-
const id = path
|
|
290
|
+
const id = getReferenceID(path);
|
|
288
291
|
const type = this._types[id];
|
|
289
292
|
if (type != null) {
|
|
290
293
|
return type;
|
|
291
294
|
}
|
|
292
|
-
const schema = this.
|
|
293
|
-
if (schema == null) {
|
|
294
|
-
throw new Error(`Could not find reference: ${id}`);
|
|
295
|
-
}
|
|
295
|
+
const schema = this._getReferenceSchema(id);
|
|
296
296
|
return this._buildReference(id, schema, parentName);
|
|
297
297
|
}
|
|
298
|
-
|
|
299
|
-
const id = path.slice(REFERENCE_PREFIX.length);
|
|
298
|
+
_getReferenceSchema(id) {
|
|
300
299
|
const schema = this._references[id];
|
|
301
300
|
if (schema == null) {
|
|
302
301
|
throw new Error(`Could not find reference: ${id}`);
|
|
303
302
|
}
|
|
303
|
+
return schema;
|
|
304
|
+
}
|
|
305
|
+
_getReferenceInput(path, isPartial, parentName = '') {
|
|
306
|
+
const id = getReferenceID(path);
|
|
307
|
+
const schema = this._getReferenceSchema(id);
|
|
304
308
|
if (schema.type === 'array') {
|
|
305
309
|
const itemType = this._getReferenceInput(schema.items.$ref, false, schema.title);
|
|
306
310
|
return new GraphQLList(new GraphQLNonNull(itemType));
|
|
@@ -513,13 +517,18 @@ export class SchemaBuilder {
|
|
|
513
517
|
const setFields = {};
|
|
514
518
|
const updateFields = {};
|
|
515
519
|
for (const [key, value] of Object.entries(model.schema.properties)){
|
|
516
|
-
const
|
|
520
|
+
const path = value.$ref;
|
|
521
|
+
const setType = this._getReferenceInput(path, false);
|
|
517
522
|
setFields[key] = {
|
|
518
523
|
type: model.schema.required.includes(key) ? new GraphQLNonNull(setType) : setType
|
|
519
524
|
};
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
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
|
+
}
|
|
523
532
|
}
|
|
524
533
|
const name = this._aliases[id];
|
|
525
534
|
this._inputObjects[id] = new GraphQLInputObjectType({
|
|
@@ -532,11 +541,8 @@ export class SchemaBuilder {
|
|
|
532
541
|
});
|
|
533
542
|
}
|
|
534
543
|
_buildReferenceFilterInput(path, parentName = '') {
|
|
535
|
-
const id = path
|
|
536
|
-
const schema = this.
|
|
537
|
-
if (schema == null) {
|
|
538
|
-
throw new Error(`Could not find reference: ${id}`);
|
|
539
|
-
}
|
|
544
|
+
const id = getReferenceID(path);
|
|
545
|
+
const schema = this._getReferenceSchema(id);
|
|
540
546
|
if (schema.type === 'object') {
|
|
541
547
|
return this._buildObjectFilterInput(id, schema, parentName);
|
|
542
548
|
}
|
|
@@ -571,11 +577,8 @@ export class SchemaBuilder {
|
|
|
571
577
|
return this._inputObjects[filter.name];
|
|
572
578
|
}
|
|
573
579
|
_buildReferenceOrderByInput(path, parentName = '') {
|
|
574
|
-
const id = path
|
|
575
|
-
const schema = this.
|
|
576
|
-
if (schema == null) {
|
|
577
|
-
throw new Error(`Could not find reference: ${id}`);
|
|
578
|
-
}
|
|
580
|
+
const id = getReferenceID(path);
|
|
581
|
+
const schema = this._getReferenceSchema(id);
|
|
579
582
|
switch(schema.type){
|
|
580
583
|
case 'array':
|
|
581
584
|
return null;
|
|
@@ -799,6 +802,9 @@ export class SchemaBuilder {
|
|
|
799
802
|
return fields;
|
|
800
803
|
}
|
|
801
804
|
_buildString(schema, asInput) {
|
|
805
|
+
if (schema.const != null) {
|
|
806
|
+
return GraphQLString;
|
|
807
|
+
}
|
|
802
808
|
if (schema.enum != null) {
|
|
803
809
|
return this._buildEnumString(schema);
|
|
804
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"
|