Skip to content

Commit 51de159

Browse files
committed
Upgrade versions, RC 10 & Build
1 parent d381068 commit 51de159

File tree

3 files changed

+172
-148
lines changed

3 files changed

+172
-148
lines changed

dist/vuex-orm-graphql.esm.js

Lines changed: 25 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -27042,6 +27042,9 @@ var Schema = /** @class */ (function () {
2704227042
return (Schema.getTypeNameOfField(field).endsWith('TypeConnection'));
2704327043
};
2704427044
Schema.getTypeNameOfField = function (field) {
27045+
if (field.type.kind === 'LIST') {
27046+
return "[" + field.type.ofType.name + "]";
27047+
}
2704527048
var name = field.type.name ||
2704627049
field.type.ofType.name ||
2704727050
field.type.ofType.ofType.name ||
@@ -27089,7 +27092,7 @@ var __generator$1 = (undefined && undefined.__generator) || function (thisArg, b
2708927092
}
2709027093
};
2709127094
var inflection$2 = require('inflection');
27092-
var introspectionQuery = "\nquery Introspection {\n __schema {\n types {\n name\n description\n\n fields(includeDeprecated: true) {\n name\n description\n args {\n name\n description\n type {\n name\n kind\n\n ofType {\n kind\n\n name\n ofType {\n kind\n name\n\n ofType {\n kind\n name\n }\n }\n }\n }\n }\n\n type {\n name\n kind\n\n ofType {\n kind\n\n name\n ofType {\n kind\n name\n\n ofType {\n kind\n name\n }\n }\n }\n }\n }\n\n inputFields {\n name\n description\n\n type {\n name\n kind\n\n ofType {\n kind\n\n name\n ofType {\n kind\n name\n\n ofType {\n kind\n name\n }\n }\n }\n }\n }\n }\n }\n}\n";
27095+
var introspectionQuery = "\nquery Introspection {\n __schema {\n types {\n name\n description\n fields(includeDeprecated: true) {\n name\n description\n args {\n name\n description\n type {\n name\n kind\n\n ofType {\n kind\n\n name\n ofType {\n kind\n name\n\n ofType {\n kind\n name\n }\n }\n }\n }\n }\n\n type {\n name\n kind\n\n ofType {\n kind\n\n name\n ofType {\n kind\n name\n\n ofType {\n kind\n name\n }\n }\n }\n }\n }\n\n inputFields {\n name\n description\n type {\n name\n kind\n\n ofType {\n kind\n\n name\n ofType {\n kind\n name\n\n ofType {\n kind\n name\n }\n }\n }\n }\n }\n }\n }\n}\n";
2709327096
/**
2709427097
* Internal context of the plugin. This class contains all information, the models, database, logger and so on.
2709527098
*
@@ -27275,11 +27278,13 @@ var QueryBuilder = /** @class */ (function () {
2727527278
if (allowIdFields === void 0) { allowIdFields = false; }
2727627279
var context = Context.getInstance();
2727727280
model = context.getModel(model);
27278-
var params = this.buildArguments(model, args, false, filter, allowIdFields);
27281+
name = name ? name : model.pluralName;
27282+
var field = context.schema.getMutation(name, true) || context.schema.getQuery(name, true);
27283+
var params = this.buildArguments(model, args, false, filter, allowIdFields, field);
2727927284
path = path.length === 0 ? [model.singularName] : path;
2728027285
var fields = "\n " + model.getQueryFields().join(' ') + "\n " + this.buildRelationsQuery(model, path) + "\n ";
2728127286
if (multiple) {
27282-
var header = "" + (name ? name : model.pluralName) + params;
27287+
var header = "" + name + params;
2728327288
if (context.connectionQueryMode === 'nodes') {
2728427289
return "\n " + header + " {\n nodes {\n " + fields + "\n }\n }\n ";
2728527290
}
@@ -27325,8 +27330,10 @@ var QueryBuilder = /** @class */ (function () {
2732527330
// name
2732627331
if (!name)
2732727332
name = (multiple ? model.pluralName : model.singularName);
27333+
// field
27334+
var field = context.schema.getMutation(name, true) || context.schema.getQuery(name, true);
2732827335
// build query
27329-
var query = type + " " + upcaseFirstLetter(name) + this.buildArguments(model, args, true, filter) + " {\n" +
27336+
var query = type + " " + upcaseFirstLetter(name) + this.buildArguments(model, args, true, filter, true, field) + " {\n" +
2733027337
(" " + this.buildField(model, multiple, args, [], name, filter, true) + "\n") +
2733127338
"}";
2733227339
return src(query);
@@ -27353,13 +27360,15 @@ var QueryBuilder = /** @class */ (function () {
2735327360
* @param {boolean} signature When true, then this method generates a query signature instead of key/value pairs
2735427361
* @param filter
2735527362
* @param {boolean} allowIdFields If true, ID fields will be included in the arguments list
27363+
* @param {GraphQLField} field Optional. The GraphQL mutation or query field
2735627364
* @returns {String}
2735727365
*/
27358-
QueryBuilder.buildArguments = function (model, args, signature, filter, allowIdFields) {
27366+
QueryBuilder.buildArguments = function (model, args, signature, filter, allowIdFields, field) {
2735927367
var _this = this;
2736027368
if (signature === void 0) { signature = false; }
2736127369
if (filter === void 0) { filter = false; }
2736227370
if (allowIdFields === void 0) { allowIdFields = true; }
27371+
if (field === void 0) { field = null; }
2736327372
if (args === undefined)
2736427373
return '';
2736527374
var returnValue = '';
@@ -27369,17 +27378,24 @@ var QueryBuilder = /** @class */ (function () {
2736927378
var value = args[key];
2737027379
var isForeignKey = model.skipField(key);
2737127380
var skipFieldDueId = (key === 'id' || isForeignKey) && !allowIdFields;
27381+
var schema = Context.getInstance().schema;
27382+
var type = schema.getType(model.singularName + (filter ? 'Filter' : ''));
27383+
var schemaField = (filter ? type.inputFields : type.fields).find(function (f) { return f.name === key; });
27384+
var isConnectionField = schemaField && Schema.getTypeNameOfField(schemaField).endsWith('TypeConnection');
2737227385
// Ignore null fields, ids and connections
27373-
if (value && !(value instanceof Array || skipFieldDueId)) {
27386+
if (value && !skipFieldDueId && !isConnectionField) {
2737427387
var typeOrValue = '';
2737527388
if (signature) {
27376-
var schema = Context.getInstance().schema;
27377-
var type = schema.getType(model.singularName + (filter ? 'Filter' : ''));
27378-
var schemaField = (filter ? type.inputFields : type.fields).find(function (f) { return f.name === key; });
2737927389
if (undefined(value) && value.__type) {
2738027390
// Case 2 (User!)
2738127391
typeOrValue = value.__type + 'Input!';
2738227392
}
27393+
else if (undefined(value) && field) {
27394+
var arg = field.args.find(function (f) { return f.name === key; });
27395+
if (!arg)
27396+
throw new Error("A argument is of type array but it's not possible to determine the type");
27397+
typeOrValue = Schema.getTypeNameOfField(arg) + '!';
27398+
}
2738327399
else if (schemaField && Schema.getTypeNameOfField(schemaField)) {
2738427400
// Case 1, 3 and 4
2738527401
typeOrValue = Schema.getTypeNameOfField(schemaField) + '!';

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@vuex-orm/plugin-graphql",
3-
"version": "1.0.0-rc.9",
3+
"version": "1.0.0-rc.10",
44
"description": "Vuex-ORM Plugin to sync the data against a GraphQL API.",
55
"main": "dist/vuex-orm-graphql.common.js",
66
"module": "dist/vuex-orm-graphql.esm.js",
@@ -62,7 +62,6 @@
6262
"devDependencies": {
6363
"@types/sinon": "^5.0.1",
6464
"apollo-link-schema": "^1.1.0",
65-
"graphql-tools": "^3.0.4",
6665
"babel-core": "^6.26.0",
6766
"babel-loader": "^7.1.2",
6867
"babel-plugin-transform-runtime": "^6.23.0",
@@ -71,6 +70,7 @@
7170
"codecov.io": "^0.1.6",
7271
"expect": "^23.1.0",
7372
"fork-ts-checker-webpack-plugin": "^0.4.2",
73+
"graphql-tools": "^3.0.4",
7474
"istanbul-instrumenter-loader": "^3.0.0",
7575
"mocha": "^5.2.0",
7676
"mocha-webpack": "^2.0.0-beta.0",

0 commit comments

Comments
 (0)