@commitspark/graphql-api 1.0.0-beta.1 → 1.0.0-beta.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/CHANGELOG.md +15 -0
- package/README.md +3 -3
- package/dist/cjs/client.js +1 -1
- package/dist/cjs/client.js.map +1 -1
- package/dist/cjs/graphql/errors.js +32 -0
- package/dist/cjs/graphql/errors.js.map +1 -0
- package/dist/cjs/graphql/queries-mutations-generator.js +10 -8
- package/dist/cjs/graphql/queries-mutations-generator.js.map +1 -1
- package/dist/cjs/graphql/resolvers/field-resolvers/entry-reference-resolver.js +4 -1
- package/dist/cjs/graphql/resolvers/field-resolvers/entry-reference-resolver.js.map +1 -1
- package/dist/cjs/graphql/resolvers/field-resolvers/field-default-value-resolver.js +15 -3
- package/dist/cjs/graphql/resolvers/field-resolvers/field-default-value-resolver.js.map +1 -1
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.js +10 -13
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.js.map +1 -1
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.js +5 -6
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.js.map +1 -1
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.js +5 -4
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.js.map +1 -1
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/{query-all-resolver.js → query-every-resolver.js} +4 -4
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/query-every-resolver.js.map +1 -0
- package/dist/cjs/graphql/schema-generator.js +7 -2
- package/dist/cjs/graphql/schema-generator.js.map +1 -1
- package/dist/cjs/graphql/schema-root-type-generator.js +1 -1
- package/dist/cjs/graphql/schema-root-type-generator.js.map +1 -1
- package/dist/cjs/graphql/schema-utils/entry-reference-util.js +26 -18
- package/dist/cjs/graphql/schema-utils/entry-reference-util.js.map +1 -1
- package/dist/cjs/graphql/schema-utils/union-type-util.js +9 -4
- package/dist/cjs/graphql/schema-utils/union-type-util.js.map +1 -1
- package/dist/cjs/index.js +3 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/persistence/persistence.js +11 -14
- package/dist/cjs/persistence/persistence.js.map +1 -1
- package/dist/esm/client.js +1 -1
- package/dist/esm/client.js.map +1 -1
- package/dist/esm/graphql/errors.js +28 -0
- package/dist/esm/graphql/errors.js.map +1 -0
- package/dist/esm/graphql/queries-mutations-generator.js +10 -8
- package/dist/esm/graphql/queries-mutations-generator.js.map +1 -1
- package/dist/esm/graphql/resolvers/field-resolvers/entry-reference-resolver.js +4 -1
- package/dist/esm/graphql/resolvers/field-resolvers/entry-reference-resolver.js.map +1 -1
- package/dist/esm/graphql/resolvers/field-resolvers/field-default-value-resolver.js +15 -3
- package/dist/esm/graphql/resolvers/field-resolvers/field-default-value-resolver.js.map +1 -1
- package/dist/esm/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.js +11 -14
- package/dist/esm/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.js.map +1 -1
- package/dist/esm/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.js +6 -7
- package/dist/esm/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.js.map +1 -1
- package/dist/esm/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.js +5 -4
- package/dist/esm/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.js.map +1 -1
- package/dist/esm/graphql/resolvers/query-mutation-resolvers/{query-all-resolver.js → query-every-resolver.js} +2 -2
- package/dist/esm/graphql/resolvers/query-mutation-resolvers/query-every-resolver.js.map +1 -0
- package/dist/esm/graphql/schema-generator.js +7 -2
- package/dist/esm/graphql/schema-generator.js.map +1 -1
- package/dist/esm/graphql/schema-root-type-generator.js +1 -1
- package/dist/esm/graphql/schema-root-type-generator.js.map +1 -1
- package/dist/esm/graphql/schema-utils/entry-reference-util.js +27 -19
- package/dist/esm/graphql/schema-utils/entry-reference-util.js.map +1 -1
- package/dist/esm/graphql/schema-utils/union-type-util.js +9 -4
- package/dist/esm/graphql/schema-utils/union-type-util.js.map +1 -1
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/persistence/persistence.js +11 -14
- package/dist/esm/persistence/persistence.js.map +1 -1
- package/dist/tsconfig.build.cjs.tsbuildinfo +1 -1
- package/dist/tsconfig.build.esm.tsbuildinfo +1 -1
- package/dist/tsconfig.build.types.tsbuildinfo +1 -1
- package/dist/types/graphql/errors.d.ts +20 -0
- package/dist/types/graphql/errors.d.ts.map +1 -0
- package/dist/types/graphql/queries-mutations-generator.d.ts +1 -1
- package/dist/types/graphql/queries-mutations-generator.d.ts.map +1 -1
- package/dist/types/graphql/resolvers/field-resolvers/entry-reference-resolver.d.ts.map +1 -1
- package/dist/types/graphql/resolvers/field-resolvers/field-default-value-resolver.d.ts.map +1 -1
- package/dist/types/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.d.ts.map +1 -1
- package/dist/types/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.d.ts.map +1 -1
- package/dist/types/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.d.ts.map +1 -1
- package/dist/types/graphql/resolvers/query-mutation-resolvers/query-every-resolver.d.ts +5 -0
- package/dist/types/graphql/resolvers/query-mutation-resolvers/query-every-resolver.d.ts.map +1 -0
- package/dist/types/graphql/schema-generator.d.ts.map +1 -1
- package/dist/types/graphql/schema-utils/entry-reference-util.d.ts.map +1 -1
- package/dist/types/graphql/schema-utils/union-type-util.d.ts +2 -2
- package/dist/types/graphql/schema-utils/union-type-util.d.ts.map +1 -1
- package/dist/types/index.d.ts +2 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/persistence/persistence.d.ts.map +1 -1
- package/package.json +12 -4
- package/src/client.ts +1 -1
- package/src/graphql/errors.ts +43 -0
- package/src/graphql/queries-mutations-generator.ts +12 -10
- package/src/graphql/resolvers/field-resolvers/entry-reference-resolver.ts +8 -1
- package/src/graphql/resolvers/field-resolvers/field-default-value-resolver.ts +23 -5
- package/src/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.ts +22 -14
- package/src/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.ts +12 -8
- package/src/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.ts +9 -4
- package/src/graphql/resolvers/query-mutation-resolvers/{query-all-resolver.ts → query-every-resolver.ts} +1 -1
- package/src/graphql/schema-generator.ts +7 -2
- package/src/graphql/schema-root-type-generator.ts +1 -1
- package/src/graphql/schema-utils/entry-reference-util.ts +44 -22
- package/src/graphql/schema-utils/union-type-util.ts +20 -7
- package/src/index.ts +2 -1
- package/src/persistence/persistence.ts +13 -15
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/query-all-resolver.js.map +0 -1
- package/dist/esm/graphql/resolvers/query-mutation-resolvers/query-all-resolver.js.map +0 -1
- package/dist/types/graphql/resolvers/query-mutation-resolvers/query-all-resolver.d.ts +0 -5
- package/dist/types/graphql/resolvers/query-mutation-resolvers/query-all-resolver.d.ts.map +0 -1
|
@@ -2,17 +2,22 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getUnionTypeNameFromFieldValue = getUnionTypeNameFromFieldValue;
|
|
4
4
|
exports.getUnionValue = getUnionValue;
|
|
5
|
+
const errors_1 = require("../errors");
|
|
5
6
|
function getUnionTypeNameFromFieldValue(fieldValue) {
|
|
6
|
-
if (typeof fieldValue !== 'object') {
|
|
7
|
-
throw
|
|
7
|
+
if (typeof fieldValue !== 'object' || fieldValue === null) {
|
|
8
|
+
throw (0, errors_1.createError)(`Expected object value in order to determine union type name.`, errors_1.ErrorCode.BAD_REPOSITORY_DATA, {
|
|
9
|
+
fieldValue: fieldValue,
|
|
10
|
+
});
|
|
8
11
|
}
|
|
9
12
|
// Based on our @oneOf directive, we expect only one field whose name
|
|
10
13
|
// corresponds to the concrete type's name.
|
|
11
14
|
return Object.keys(fieldValue)[0];
|
|
12
15
|
}
|
|
13
16
|
function getUnionValue(fieldValue) {
|
|
14
|
-
if (typeof fieldValue !== 'object') {
|
|
15
|
-
throw
|
|
17
|
+
if (typeof fieldValue !== 'object' || fieldValue === null) {
|
|
18
|
+
throw (0, errors_1.createError)(`Expected object value in order to determine union value.`, errors_1.ErrorCode.BAD_REPOSITORY_DATA, {
|
|
19
|
+
fieldValue: fieldValue,
|
|
20
|
+
});
|
|
16
21
|
}
|
|
17
22
|
const firstKey = Object.keys(fieldValue)[0];
|
|
18
23
|
return fieldValue[firstKey];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"union-type-util.js","sourceRoot":"","sources":["../../../../src/graphql/schema-utils/union-type-util.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"union-type-util.js","sourceRoot":"","sources":["../../../../src/graphql/schema-utils/union-type-util.ts"],"names":[],"mappings":";;AAGA,wEAcC;AAED,sCAaC;AA/BD,sCAAkD;AAElD,SAAgB,8BAA8B,CAAC,UAAmB;IAChE,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QAC1D,MAAM,IAAA,oBAAW,EACf,8DAA8D,EAC9D,kBAAS,CAAC,mBAAmB,EAC7B;YACE,UAAU,EAAE,UAAU;SACvB,CACF,CAAA;IACH,CAAC;IAED,qEAAqE;IACrE,2CAA2C;IAC3C,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;AACnC,CAAC;AAED,SAAgB,aAAa,CAAC,UAAmB;IAC/C,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QAC1D,MAAM,IAAA,oBAAW,EACf,0DAA0D,EAC1D,kBAAS,CAAC,mBAAmB,EAC7B;YACE,UAAU,EAAE,UAAU;SACvB,CACF,CAAA;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;IAC3C,OAAQ,UAAwC,CAAC,QAAQ,CAAC,CAAA;AAC5D,CAAC"}
|
package/dist/cjs/index.js
CHANGED
|
@@ -9,8 +9,11 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.ErrorCode = void 0;
|
|
12
13
|
exports.createClient = createClient;
|
|
13
14
|
const client_1 = require("./client");
|
|
15
|
+
const errors_1 = require("./graphql/errors");
|
|
16
|
+
Object.defineProperty(exports, "ErrorCode", { enumerable: true, get: function () { return errors_1.ErrorCode; } });
|
|
14
17
|
function createClient(gitAdapter) {
|
|
15
18
|
return __awaiter(this, void 0, void 0, function* () {
|
|
16
19
|
return {
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAwBA,oCAKC;AA7BD,qCAOiB;AAEjB,6CAA2D;AAaT,0FAbzC,kBAAS,OAayC;AAE3D,SAAsB,YAAY,CAAC,UAAsB;;QACvD,OAAO;YACL,WAAW,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,IAAA,oBAAW,EAAC,UAAU,EAAE,GAAG,EAAE,OAAO,CAAC;YACpE,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAA,kBAAS,EAAC,UAAU,EAAE,GAAG,CAAC;SAC/C,CAAA;IACH,CAAC;CAAA"}
|
|
@@ -13,16 +13,15 @@ exports.getTypeById = getTypeById;
|
|
|
13
13
|
exports.findById = findById;
|
|
14
14
|
exports.findByType = findByType;
|
|
15
15
|
exports.findByTypeId = findByTypeId;
|
|
16
|
-
const
|
|
16
|
+
const errors_1 = require("../graphql/errors");
|
|
17
17
|
function getTypeById(gitAdapter, commitHash, id) {
|
|
18
18
|
return __awaiter(this, void 0, void 0, function* () {
|
|
19
19
|
const allEntries = yield gitAdapter.getEntries(commitHash);
|
|
20
20
|
const requestedEntry = allEntries.find((entry) => entry.id === id);
|
|
21
21
|
if (requestedEntry === undefined) {
|
|
22
|
-
throw
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
},
|
|
22
|
+
throw (0, errors_1.createError)(`No entry with id "${id}" exists.`, errors_1.ErrorCode.NOT_FOUND, {
|
|
23
|
+
argumentName: 'id',
|
|
24
|
+
argumentValue: id,
|
|
26
25
|
});
|
|
27
26
|
}
|
|
28
27
|
return requestedEntry.metadata.type;
|
|
@@ -33,10 +32,9 @@ function findById(gitAdapter, commitHash, id) {
|
|
|
33
32
|
const allEntries = yield gitAdapter.getEntries(commitHash);
|
|
34
33
|
const requestedEntry = allEntries.find((entry) => entry.id === id);
|
|
35
34
|
if (requestedEntry === undefined) {
|
|
36
|
-
throw
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
},
|
|
35
|
+
throw (0, errors_1.createError)(`No entry with id "${id}" exists.`, errors_1.ErrorCode.NOT_FOUND, {
|
|
36
|
+
argumentName: 'id',
|
|
37
|
+
argumentValue: id,
|
|
40
38
|
});
|
|
41
39
|
}
|
|
42
40
|
return requestedEntry;
|
|
@@ -53,11 +51,10 @@ function findByTypeId(gitAdapter, commitHash, type, id) {
|
|
|
53
51
|
const allEntries = yield gitAdapter.getEntries(commitHash);
|
|
54
52
|
const requestedEntry = allEntries.find((entry) => entry.id === id && entry.metadata.type === type);
|
|
55
53
|
if (requestedEntry === undefined) {
|
|
56
|
-
throw
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
},
|
|
54
|
+
throw (0, errors_1.createError)(`No entry of type "${type}" with id "${id}" exists.`, errors_1.ErrorCode.NOT_FOUND, {
|
|
55
|
+
typeName: type,
|
|
56
|
+
argumentName: 'id',
|
|
57
|
+
argumentValue: id,
|
|
61
58
|
});
|
|
62
59
|
}
|
|
63
60
|
return requestedEntry;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"persistence.js","sourceRoot":"","sources":["../../../src/persistence/persistence.ts"],"names":[],"mappings":";;;;;;;;;;;AAGA,
|
|
1
|
+
{"version":3,"file":"persistence.js","sourceRoot":"","sources":["../../../src/persistence/persistence.ts"],"names":[],"mappings":";;;;;;;;;;;AAGA,kCAeC;AAED,4BAeC;AAED,gCAOC;AAED,oCAuBC;AApED,8CAA0D;AAE1D,SAAsB,WAAW,CAC/B,UAAsB,EACtB,UAAkB,EAClB,EAAU;;QAEV,MAAM,UAAU,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,CAAA;QAC1D,MAAM,cAAc,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,KAAY,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;QACzE,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YACjC,MAAM,IAAA,oBAAW,EAAC,qBAAqB,EAAE,WAAW,EAAE,kBAAS,CAAC,SAAS,EAAE;gBACzE,YAAY,EAAE,IAAI;gBAClB,aAAa,EAAE,EAAE;aAClB,CAAC,CAAA;QACJ,CAAC;QAED,OAAO,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAA;IACrC,CAAC;CAAA;AAED,SAAsB,QAAQ,CAC5B,UAAsB,EACtB,UAAkB,EAClB,EAAU;;QAEV,MAAM,UAAU,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,CAAA;QAC1D,MAAM,cAAc,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,KAAY,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;QACzE,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YACjC,MAAM,IAAA,oBAAW,EAAC,qBAAqB,EAAE,WAAW,EAAE,kBAAS,CAAC,SAAS,EAAE;gBACzE,YAAY,EAAE,IAAI;gBAClB,aAAa,EAAE,EAAE;aAClB,CAAC,CAAA;QACJ,CAAC;QAED,OAAO,cAAc,CAAA;IACvB,CAAC;CAAA;AAED,SAAsB,UAAU,CAC9B,UAAsB,EACtB,UAAkB,EAClB,IAAY;;QAEZ,MAAM,UAAU,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,CAAA;QAC1D,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,KAAY,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;IAC1E,CAAC;CAAA;AAED,SAAsB,YAAY,CAChC,UAAsB,EACtB,UAAkB,EAClB,IAAY,EACZ,EAAU;;QAEV,MAAM,UAAU,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,CAAA;QAC1D,MAAM,cAAc,GAAG,UAAU,CAAC,IAAI,CACpC,CAAC,KAAY,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,IAAI,CAClE,CAAA;QACD,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YACjC,MAAM,IAAA,oBAAW,EACf,qBAAqB,IAAI,cAAc,EAAE,WAAW,EACpD,kBAAS,CAAC,SAAS,EACnB;gBACE,QAAQ,EAAE,IAAI;gBACd,YAAY,EAAE,IAAI;gBAClB,aAAa,EAAE,EAAE;aAClB,CACF,CAAA;QACH,CAAC;QAED,OAAO,cAAc,CAAA;IACvB,CAAC;CAAA"}
|
package/dist/esm/client.js
CHANGED
|
@@ -43,7 +43,7 @@ export const getSchema = async (gitAdapter, ref) => {
|
|
|
43
43
|
};
|
|
44
44
|
const typeDefinitionStrings = (await generateSchema(context)).typeDefs;
|
|
45
45
|
if (!Array.isArray(typeDefinitionStrings)) {
|
|
46
|
-
throw new Error('
|
|
46
|
+
throw new Error('Expected array of typeDefinition strings.');
|
|
47
47
|
}
|
|
48
48
|
return {
|
|
49
49
|
ref: context.getCurrentRef(),
|
package/dist/esm/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAA;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAO3D,OAAO,EACL,YAAY,GAGb,MAAM,gBAAgB,CAAA;AAWvB,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAI9B,UAAsB,EACtB,GAAW,EACX,OAAyD,EACjB,EAAE;IAC1C,IAAI,UAAU,GAAG,MAAM,UAAU,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAA;IAC1D,MAAM,OAAO,GAAkB;QAC7B,MAAM,EAAE,GAAG;QACX,UAAU,EAAE,UAAU;QACtB,aAAa;YACX,OAAO,UAAU,CAAA;QACnB,CAAC;QACD,aAAa,CAAC,MAAc;YAC1B,UAAU,GAAG,MAAM,CAAA;QACrB,CAAC;KACF,CAAA;IAED,MAAM,kBAAkB,GACtB,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAA;IAEnC,MAAM,YAAY,GAAG,IAAI,YAAY,CAAgB;QACnD,GAAG,kBAAkB;KACtB,CAAC,CAAA;IAEF,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,gBAAgB,CAChD,OAAO,EACP;QACE,YAAY,EAAE,OAAO;KACtB,CACF,CAAA;IAED,MAAM,YAAY,CAAC,IAAI,EAAE,CAAA;IAEzB,OAAO;QACL,GAAG,EAAE,OAAO,CAAC,aAAa,EAAE;QAC5B,IAAI,EACF,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;QAC3E,MAAM,EACJ,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ;YAC3B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM;YACjC,CAAC,CAAC,SAAS;KAChB,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,EAC5B,UAAsB,EACtB,GAAW,EACc,EAAE;IAC3B,IAAI,UAAU,GAAG,MAAM,UAAU,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAA;IAC1D,MAAM,OAAO,GAAkB;QAC7B,MAAM,EAAE,GAAG;QACX,UAAU,EAAE,UAAU;QACtB,aAAa;YACX,OAAO,UAAU,CAAA;QACnB,CAAC;QACD,aAAa,CAAC,MAAc;YAC1B,UAAU,GAAG,MAAM,CAAA;QACrB,CAAC;KACF,CAAA;IAED,MAAM,qBAAqB,GAAG,CAAC,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAA;IACtE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAA;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAO3D,OAAO,EACL,YAAY,GAGb,MAAM,gBAAgB,CAAA;AAWvB,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAI9B,UAAsB,EACtB,GAAW,EACX,OAAyD,EACjB,EAAE;IAC1C,IAAI,UAAU,GAAG,MAAM,UAAU,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAA;IAC1D,MAAM,OAAO,GAAkB;QAC7B,MAAM,EAAE,GAAG;QACX,UAAU,EAAE,UAAU;QACtB,aAAa;YACX,OAAO,UAAU,CAAA;QACnB,CAAC;QACD,aAAa,CAAC,MAAc;YAC1B,UAAU,GAAG,MAAM,CAAA;QACrB,CAAC;KACF,CAAA;IAED,MAAM,kBAAkB,GACtB,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAA;IAEnC,MAAM,YAAY,GAAG,IAAI,YAAY,CAAgB;QACnD,GAAG,kBAAkB;KACtB,CAAC,CAAA;IAEF,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,gBAAgB,CAChD,OAAO,EACP;QACE,YAAY,EAAE,OAAO;KACtB,CACF,CAAA;IAED,MAAM,YAAY,CAAC,IAAI,EAAE,CAAA;IAEzB,OAAO;QACL,GAAG,EAAE,OAAO,CAAC,aAAa,EAAE;QAC5B,IAAI,EACF,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;QAC3E,MAAM,EACJ,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ;YAC3B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM;YACjC,CAAC,CAAC,SAAS;KAChB,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,EAC5B,UAAsB,EACtB,GAAW,EACc,EAAE;IAC3B,IAAI,UAAU,GAAG,MAAM,UAAU,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAA;IAC1D,MAAM,OAAO,GAAkB;QAC7B,MAAM,EAAE,GAAG;QACX,UAAU,EAAE,UAAU;QACtB,aAAa;YACX,OAAO,UAAU,CAAA;QACnB,CAAC;QACD,aAAa,CAAC,MAAc;YAC1B,UAAU,GAAG,MAAM,CAAA;QACrB,CAAC;KACF,CAAA;IAED,MAAM,qBAAqB,GAAG,CAAC,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAA;IACtE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAA;IAC9D,CAAC;IAED,OAAO;QACL,GAAG,EAAE,OAAO,CAAC,aAAa,EAAE;QAC5B,IAAI,EAAE,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC;KACvC,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { GraphQLError } from 'graphql';
|
|
2
|
+
export var ErrorCode;
|
|
3
|
+
(function (ErrorCode) {
|
|
4
|
+
ErrorCode["BAD_USER_INPUT"] = "BAD_USER_INPUT";
|
|
5
|
+
ErrorCode["NOT_FOUND"] = "NOT_FOUND";
|
|
6
|
+
ErrorCode["BAD_REPOSITORY_DATA"] = "BAD_REPOSITORY_DATA";
|
|
7
|
+
ErrorCode["SCHEMA_DATA_MISMATCH"] = "SCHEMA_DATA_MISMATCH";
|
|
8
|
+
ErrorCode["BAD_SCHEMA"] = "BAD_SCHEMA";
|
|
9
|
+
ErrorCode["INTERNAL_ERROR"] = "INTERNAL_ERROR";
|
|
10
|
+
ErrorCode["IN_USE"] = "IN_USE";
|
|
11
|
+
})(ErrorCode || (ErrorCode = {}));
|
|
12
|
+
export const createError = (message, code, metaData) => {
|
|
13
|
+
const serializedFieldValue = typeof metaData.fieldValue === 'object' ||
|
|
14
|
+
Array.isArray(metaData.fieldValue)
|
|
15
|
+
? JSON.stringify(metaData.fieldValue)
|
|
16
|
+
: metaData.fieldValue;
|
|
17
|
+
const updatedMetaData = { ...metaData };
|
|
18
|
+
if (serializedFieldValue !== undefined) {
|
|
19
|
+
updatedMetaData.fieldValue = serializedFieldValue;
|
|
20
|
+
}
|
|
21
|
+
return new GraphQLError(message, {
|
|
22
|
+
extensions: {
|
|
23
|
+
code: code,
|
|
24
|
+
commitspark: updatedMetaData,
|
|
25
|
+
},
|
|
26
|
+
});
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/graphql/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAEtC,MAAM,CAAN,IAAY,SAQX;AARD,WAAY,SAAS;IACnB,8CAAiC,CAAA;IACjC,oCAAuB,CAAA;IACvB,wDAA2C,CAAA;IAC3C,0DAA6C,CAAA;IAC7C,sCAAyB,CAAA;IACzB,8CAAiC,CAAA;IACjC,8BAAiB,CAAA;AACnB,CAAC,EARW,SAAS,KAAT,SAAS,QAQpB;AAWD,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,OAAe,EACf,IAAe,EACf,QAAuB,EACT,EAAE;IAChB,MAAM,oBAAoB,GACxB,OAAO,QAAQ,CAAC,UAAU,KAAK,QAAQ;QACvC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;QAChC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC;QACrC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAA;IACzB,MAAM,eAAe,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAA;IACvC,IAAI,oBAAoB,KAAK,SAAS,EAAE,CAAC;QACvC,eAAe,CAAC,UAAU,GAAG,oBAAoB,CAAA;IACnD,CAAC;IAED,OAAO,IAAI,YAAY,CAAC,OAAO,EAAE;QAC/B,UAAU,EAAE;YACV,IAAI,EAAE,IAAI;YACV,WAAW,EAAE,eAAe;SAC7B;KACF,CAAC,CAAA;AACJ,CAAC,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { queryEveryResolver } from './resolvers/query-mutation-resolvers/query-every-resolver';
|
|
2
2
|
import { queryByIdResolver } from './resolvers/query-mutation-resolvers/query-by-id-resolver';
|
|
3
3
|
import { mutationCreateResolver } from './resolvers/query-mutation-resolvers/mutation-create-resolver';
|
|
4
4
|
import { mutationUpdateResolver } from './resolvers/query-mutation-resolvers/mutation-update-resolver';
|
|
@@ -7,9 +7,11 @@ import { queryTypeByIdResolver } from './resolvers/query-mutation-resolvers/quer
|
|
|
7
7
|
export function generateQueriesAndMutations(entryDirectiveTypes) {
|
|
8
8
|
return entryDirectiveTypes.map((objectType) => {
|
|
9
9
|
const typeName = objectType.name;
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
const
|
|
10
|
+
// The semantics of `every` aren't a perfect replacement of `all` but this way we don't need to do non-trivial
|
|
11
|
+
// pluralization of user-provided typeName
|
|
12
|
+
const queryEveryName = `every${typeName}`;
|
|
13
|
+
const queryEveryString = `${queryEveryName}: [${objectType.name}!]`;
|
|
14
|
+
const queryEveryResolverFunc = (source, args, context, info) => queryEveryResolver(source, args, { ...context, type: objectType }, info);
|
|
13
15
|
const queryByIdName = typeName;
|
|
14
16
|
const queryByIdString = `${queryByIdName}(id: ID!): ${objectType.name}`;
|
|
15
17
|
const queryByIdResolverFunc = (source, args, context, info) => queryByIdResolver(source, args, { ...context, type: objectType }, info);
|
|
@@ -24,10 +26,10 @@ export function generateQueriesAndMutations(entryDirectiveTypes) {
|
|
|
24
26
|
const deleteMutationString = `${deleteMutationName}(id: ID!, commitMessage: String): ID`;
|
|
25
27
|
const deleteMutationResolver = (source, args, context, info) => mutationDeleteResolver(source, args, { ...context, type: objectType }, info);
|
|
26
28
|
return {
|
|
27
|
-
|
|
28
|
-
name:
|
|
29
|
-
schemaString:
|
|
30
|
-
resolver:
|
|
29
|
+
queryEvery: {
|
|
30
|
+
name: queryEveryName,
|
|
31
|
+
schemaString: queryEveryString,
|
|
32
|
+
resolver: queryEveryResolverFunc,
|
|
31
33
|
},
|
|
32
34
|
queryById: {
|
|
33
35
|
name: queryByIdName,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queries-mutations-generator.js","sourceRoot":"","sources":["../../../src/graphql/queries-mutations-generator.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"queries-mutations-generator.js","sourceRoot":"","sources":["../../../src/graphql/queries-mutations-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import { isNamedType } from 'graphql';
|
|
2
2
|
import { findById } from '../../../persistence/persistence';
|
|
3
|
+
import { createError, ErrorCode } from '../../errors';
|
|
3
4
|
export const resolveEntryReference = async (fieldValue, args, context, info) => {
|
|
4
5
|
if (!isNamedType(context.currentType)) {
|
|
5
|
-
throw
|
|
6
|
+
throw createError(`Expected context.currentType type to be a named type.`, ErrorCode.INTERNAL_ERROR, {
|
|
7
|
+
fieldValue: fieldValue,
|
|
8
|
+
});
|
|
6
9
|
}
|
|
7
10
|
const entry = await findById(context.gitAdapter, context.getCurrentRef(), fieldValue.id);
|
|
8
11
|
return { ...entry.data, id: entry.id };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entry-reference-resolver.js","sourceRoot":"","sources":["../../../../../src/graphql/resolvers/field-resolvers/entry-reference-resolver.ts"],"names":[],"mappings":"AACA,OAAO,EAAsB,WAAW,EAAE,MAAM,SAAS,CAAA;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAA;
|
|
1
|
+
{"version":3,"file":"entry-reference-resolver.js","sourceRoot":"","sources":["../../../../../src/graphql/resolvers/field-resolvers/entry-reference-resolver.ts"],"names":[],"mappings":"AACA,OAAO,EAAsB,WAAW,EAAE,MAAM,SAAS,CAAA;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAA;AAC3D,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAErD,MAAM,CAAC,MAAM,qBAAqB,GAAuB,KAAK,EAC5D,UAAe,EACf,IAAS,EACT,OAA6B,EAC7B,IAAwB,EACxB,EAAE;IACF,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QACtC,MAAM,WAAW,CACf,uDAAuD,EACvD,SAAS,CAAC,cAAc,EACxB;YACE,UAAU,EAAE,UAAU;SACvB,CACF,CAAA;IACH,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,QAAQ,CAC1B,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,aAAa,EAAE,EACvB,UAAU,CAAC,EAAE,CACd,CAAA;IAED,OAAO,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAA;AACxC,CAAC,CAAA"}
|
|
@@ -2,6 +2,7 @@ import { isListType, isNonNullType, isObjectType, isUnionType, } from 'graphql';
|
|
|
2
2
|
import { buildsOnTypeWithEntryDirective, hasEntryDirective, } from '../../schema-utils/entry-type-util';
|
|
3
3
|
import { resolveEntryReference } from './entry-reference-resolver';
|
|
4
4
|
import { resolveUnionValue } from './union-value-resolver';
|
|
5
|
+
import { createError, ErrorCode } from '../../errors';
|
|
5
6
|
export const resolveFieldDefaultValue = async (fieldValue, args, context, info) => {
|
|
6
7
|
if (isNonNullType(context.currentType)) {
|
|
7
8
|
return resolveFieldDefaultValue(fieldValue, args, {
|
|
@@ -21,7 +22,10 @@ export const resolveFieldDefaultValue = async (fieldValue, args, context, info)
|
|
|
21
22
|
}
|
|
22
23
|
}
|
|
23
24
|
if (!Array.isArray(fieldValue)) {
|
|
24
|
-
throw
|
|
25
|
+
throw createError(`Expected array while resolving value for field "${info.fieldName}".`, ErrorCode.SCHEMA_DATA_MISMATCH, {
|
|
26
|
+
fieldName: info.fieldName,
|
|
27
|
+
fieldValue: fieldValue,
|
|
28
|
+
});
|
|
25
29
|
}
|
|
26
30
|
const resultPromises = [];
|
|
27
31
|
for (const item of fieldValue) {
|
|
@@ -38,7 +42,10 @@ export const resolveFieldDefaultValue = async (fieldValue, args, context, info)
|
|
|
38
42
|
else if (isUnionType(context.currentType)) {
|
|
39
43
|
if (fieldValue === undefined || fieldValue === null) {
|
|
40
44
|
if (context.hasNonNullParent) {
|
|
41
|
-
throw
|
|
45
|
+
throw createError(`Cannot generate a default value for NonNull field "${info.parentType.name}.${info.fieldName}" because it is a union field of type "${info.returnType.ofType.name}". Set a value in your repository data or remove the NonNull declaration in your schema.`, ErrorCode.BAD_REPOSITORY_DATA, {
|
|
46
|
+
typeName: info.parentType.name,
|
|
47
|
+
fieldName: info.fieldName,
|
|
48
|
+
});
|
|
42
49
|
}
|
|
43
50
|
else {
|
|
44
51
|
return new Promise((resolve) => resolve(null));
|
|
@@ -52,7 +59,12 @@ export const resolveFieldDefaultValue = async (fieldValue, args, context, info)
|
|
|
52
59
|
else if (isObjectType(context.currentType)) {
|
|
53
60
|
if (fieldValue === undefined || fieldValue === null) {
|
|
54
61
|
if (context.hasNonNullParent) {
|
|
55
|
-
throw
|
|
62
|
+
throw createError(`Cannot generate a default value for NonNull field "${info.fieldName}" of type ` +
|
|
63
|
+
`"${info.parentType.name}". Set a value in your repository data or remove the NonNull ` +
|
|
64
|
+
`declaration in your schema.`, ErrorCode.BAD_REPOSITORY_DATA, {
|
|
65
|
+
typeName: info.parentType.name,
|
|
66
|
+
fieldName: info.fieldName,
|
|
67
|
+
});
|
|
56
68
|
}
|
|
57
69
|
else {
|
|
58
70
|
return new Promise((resolve) => resolve(null));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-default-value-resolver.js","sourceRoot":"","sources":["../../../../../src/graphql/resolvers/field-resolvers/field-default-value-resolver.ts"],"names":[],"mappings":"AAEA,OAAO,EAIL,UAAU,EACV,aAAa,EACb,YAAY,EACZ,WAAW,GACZ,MAAM,SAAS,CAAA;AAChB,OAAO,EACL,8BAA8B,EAC9B,iBAAiB,GAClB,MAAM,oCAAoC,CAAA;AAC3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"field-default-value-resolver.js","sourceRoot":"","sources":["../../../../../src/graphql/resolvers/field-resolvers/field-default-value-resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +1,17 @@
|
|
|
1
1
|
import { findById, findByTypeId } from '../../../persistence/persistence';
|
|
2
|
-
import {
|
|
2
|
+
import { isObjectType } from 'graphql';
|
|
3
3
|
import { getReferencedEntryIds } from '../../schema-utils/entry-reference-util';
|
|
4
4
|
import { ENTRY_ID_INVALID_CHARACTERS, } from '@commitspark/git-adapter';
|
|
5
|
+
import { createError, ErrorCode } from '../../errors';
|
|
5
6
|
export const mutationCreateResolver = async (source, args, context, info) => {
|
|
6
|
-
if (!isObjectType(
|
|
7
|
-
throw
|
|
7
|
+
if (!isObjectType(context.type)) {
|
|
8
|
+
throw createError(`Entry of type "${context.type.name}" cannot be created as is not an ObjectType.`, ErrorCode.INTERNAL_ERROR, {});
|
|
8
9
|
}
|
|
9
10
|
const idValidationResult = args.id.match(ENTRY_ID_INVALID_CHARACTERS);
|
|
10
11
|
if (idValidationResult) {
|
|
11
|
-
throw
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
argumentName: 'id',
|
|
15
|
-
},
|
|
12
|
+
throw createError(`Field "id" contains invalid characters "${idValidationResult.join(', ')}".`, ErrorCode.BAD_USER_INPUT, {
|
|
13
|
+
argumentName: 'id',
|
|
14
|
+
argumentValue: args.id,
|
|
16
15
|
});
|
|
17
16
|
}
|
|
18
17
|
let existingEntry;
|
|
@@ -23,14 +22,12 @@ export const mutationCreateResolver = async (source, args, context, info) => {
|
|
|
23
22
|
/* empty */
|
|
24
23
|
}
|
|
25
24
|
if (existingEntry) {
|
|
26
|
-
throw
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
argumentName: 'id',
|
|
30
|
-
},
|
|
25
|
+
throw createError(`An entry with id "${args.id}" already exists.`, ErrorCode.BAD_USER_INPUT, {
|
|
26
|
+
argumentName: 'id',
|
|
27
|
+
argumentValue: args.id,
|
|
31
28
|
});
|
|
32
29
|
}
|
|
33
|
-
const referencedEntryIds = await getReferencedEntryIds(
|
|
30
|
+
const referencedEntryIds = await getReferencedEntryIds(context.type, context, null, info.returnType, args.data);
|
|
34
31
|
const referencedEntryUpdates = [];
|
|
35
32
|
for (const referencedEntryId of referencedEntryIds) {
|
|
36
33
|
const referencedEntry = await findById(context.gitAdapter, context.getCurrentRef(), referencedEntryId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mutation-create-resolver.js","sourceRoot":"","sources":["../../../../../src/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AACzE,OAAO,
|
|
1
|
+
{"version":3,"file":"mutation-create-resolver.js","sourceRoot":"","sources":["../../../../../src/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,22 +1,21 @@
|
|
|
1
1
|
import { findById, findByTypeId } from '../../../persistence/persistence';
|
|
2
2
|
import { getReferencedEntryIds } from '../../schema-utils/entry-reference-util';
|
|
3
|
-
import {
|
|
3
|
+
import { isObjectType } from 'graphql';
|
|
4
|
+
import { createError, ErrorCode } from '../../errors';
|
|
4
5
|
export const mutationDeleteResolver = async (source, args, context, info) => {
|
|
5
6
|
const entry = await findByTypeId(context.gitAdapter, context.getCurrentRef(), context.type.name, args.id);
|
|
6
7
|
if (entry.metadata.referencedBy && entry.metadata.referencedBy.length > 0) {
|
|
7
8
|
const otherIds = entry.metadata.referencedBy
|
|
8
9
|
.map((referenceId) => `"${referenceId}"`)
|
|
9
10
|
.join(', ');
|
|
10
|
-
throw
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
argumentName: 'id',
|
|
14
|
-
},
|
|
11
|
+
throw createError(`Entry with ID "${args.id}" is still referenced by entries [${otherIds}].`, ErrorCode.IN_USE, {
|
|
12
|
+
argumentName: 'id',
|
|
13
|
+
argumentValue: args.id,
|
|
15
14
|
});
|
|
16
15
|
}
|
|
17
16
|
const entryType = info.schema.getType(context.type.name);
|
|
18
17
|
if (!isObjectType(entryType)) {
|
|
19
|
-
throw
|
|
18
|
+
throw createError(`Type "${context.type.name}" is not an ObjectType.`, ErrorCode.INTERNAL_ERROR, {});
|
|
20
19
|
}
|
|
21
20
|
const referencedEntryIds = await getReferencedEntryIds(entryType, context, null, entryType, entry.data);
|
|
22
21
|
const referencedEntryUpdates = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mutation-delete-resolver.js","sourceRoot":"","sources":["../../../../../src/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AAEzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAA;AAC/E,OAAO,
|
|
1
|
+
{"version":3,"file":"mutation-delete-resolver.js","sourceRoot":"","sources":["../../../../../src/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AAEzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAA;AAC/E,OAAO,EAAwB,YAAY,EAAE,MAAM,SAAS,CAAA;AAE5D,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAErD,MAAM,CAAC,MAAM,sBAAsB,GAK/B,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;IACxC,MAAM,KAAK,GAAU,MAAM,YAAY,CACrC,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,aAAa,EAAE,EACvB,OAAO,CAAC,IAAI,CAAC,IAAI,EACjB,IAAI,CAAC,EAAE,CACR,CAAA;IAED,IAAI,KAAK,CAAC,QAAQ,CAAC,YAAY,IAAI,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1E,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,YAAY;aACzC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,IAAI,WAAW,GAAG,CAAC;aACxC,IAAI,CAAC,IAAI,CAAC,CAAA;QACb,MAAM,WAAW,CACf,kBAAkB,IAAI,CAAC,EAAE,qCAAqC,QAAQ,IAAI,EAC1E,SAAS,CAAC,MAAM,EAChB;YACE,YAAY,EAAE,IAAI;YAClB,aAAa,EAAE,IAAI,CAAC,EAAE;SACvB,CACF,CAAA;IACH,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACxD,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7B,MAAM,WAAW,CACf,SAAS,OAAO,CAAC,IAAI,CAAC,IAAI,yBAAyB,EACnD,SAAS,CAAC,cAAc,EACxB,EAAE,CACH,CAAA;IACH,CAAC;IAED,MAAM,kBAAkB,GAAG,MAAM,qBAAqB,CACpD,SAAS,EACT,OAAO,EACP,IAAI,EACJ,SAAS,EACT,KAAK,CAAC,IAAI,CACX,CAAA;IACD,MAAM,sBAAsB,GAAiB,EAAE,CAAA;IAC/C,KAAK,MAAM,iBAAiB,IAAI,kBAAkB,EAAE,CAAC;QACnD,MAAM,uBAAuB,GAAG,MAAM,QAAQ,CAC5C,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,aAAa,EAAE,EACvB,iBAAiB,CAClB,CAAA;QACD,sBAAsB,CAAC,IAAI,CAAC;YAC1B,GAAG,uBAAuB;YAC1B,QAAQ,EAAE;gBACR,GAAG,uBAAuB,CAAC,QAAQ;gBACnC,YAAY,EAAE,uBAAuB,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CACjE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,IAAI,CAAC,EAAE,CACjC;aACF;YACD,QAAQ,EAAE,KAAK;SAChB,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC;QACnD,GAAG,EAAE,OAAO,CAAC,MAAM;QACnB,SAAS,EAAE,OAAO,CAAC,aAAa,EAAE;QAClC,OAAO,EAAE;YACP;gBACE,GAAG,KAAK;gBACR,QAAQ,EAAE,IAAI;aACf;YACD,GAAG,sBAAsB;SAC1B;QACD,OAAO,EAAE,IAAI,CAAC,aAAa;KAC5B,CAAC,CAAA;IACF,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IAEjC,OAAO,IAAI,CAAC,EAAE,CAAA;AAChB,CAAC,CAAA"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { findById, findByTypeId } from '../../../persistence/persistence';
|
|
2
2
|
import { getReferencedEntryIds } from '../../schema-utils/entry-reference-util';
|
|
3
3
|
import { isObjectType } from 'graphql';
|
|
4
|
+
import { createError, ErrorCode } from '../../errors';
|
|
4
5
|
function mergeData(existingEntryData, updateData) {
|
|
5
6
|
return {
|
|
6
7
|
...existingEntryData,
|
|
@@ -8,13 +9,13 @@ function mergeData(existingEntryData, updateData) {
|
|
|
8
9
|
};
|
|
9
10
|
}
|
|
10
11
|
export const mutationUpdateResolver = async (source, args, context, info) => {
|
|
11
|
-
if (!isObjectType(
|
|
12
|
-
throw
|
|
12
|
+
if (!isObjectType(context.type)) {
|
|
13
|
+
throw createError(`Type "${context.type.name}" cannot be mutated as is not an ObjectType.`, ErrorCode.INTERNAL_ERROR, {});
|
|
13
14
|
}
|
|
14
15
|
const existingEntry = await findByTypeId(context.gitAdapter, context.getCurrentRef(), context.type.name, args.id);
|
|
15
|
-
const existingReferencedEntryIds = await getReferencedEntryIds(
|
|
16
|
+
const existingReferencedEntryIds = await getReferencedEntryIds(context.type, context, null, info.returnType, existingEntry.data);
|
|
16
17
|
const mergedData = mergeData(existingEntry.data ?? null, args.data);
|
|
17
|
-
const updatedReferencedEntryIds = await getReferencedEntryIds(
|
|
18
|
+
const updatedReferencedEntryIds = await getReferencedEntryIds(context.type, context, null, info.returnType, mergedData);
|
|
18
19
|
const noLongerReferencedIds = existingReferencedEntryIds.filter((entryId) => !updatedReferencedEntryIds.includes(entryId));
|
|
19
20
|
const newlyReferencedIds = updatedReferencedEntryIds.filter((entryId) => !existingReferencedEntryIds.includes(entryId));
|
|
20
21
|
const referencedEntryUpdates = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mutation-update-resolver.js","sourceRoot":"","sources":["../../../../../src/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAA;AAC/E,OAAO,EAAwB,YAAY,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"mutation-update-resolver.js","sourceRoot":"","sources":["../../../../../src/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { findByType } from '../../../persistence/persistence';
|
|
2
|
-
export const
|
|
2
|
+
export const queryEveryResolver = async (obj, args, context, info) => {
|
|
3
3
|
const entries = await findByType(context.gitAdapter, context.getCurrentRef(), context.type.name);
|
|
4
4
|
return entries.map((entry) => {
|
|
5
5
|
return { ...entry.data, id: entry.id };
|
|
6
6
|
});
|
|
7
7
|
};
|
|
8
|
-
//# sourceMappingURL=query-
|
|
8
|
+
//# sourceMappingURL=query-every-resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-every-resolver.js","sourceRoot":"","sources":["../../../../../src/graphql/resolvers/query-mutation-resolvers/query-every-resolver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAA;AAI7D,MAAM,CAAC,MAAM,kBAAkB,GAK3B,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;IACrC,MAAM,OAAO,GAAG,MAAM,UAAU,CAC9B,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,aAAa,EAAE,EACvB,OAAO,CAAC,IAAI,CAAC,IAAI,CAClB,CAAA;IAED,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAC3B,OAAO,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAA;IACxC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA"}
|
|
@@ -7,6 +7,7 @@ import { printSchemaWithDirectives } from '@graphql-tools/utils';
|
|
|
7
7
|
import { unionTypeResolver } from './resolvers/query-mutation-resolvers/union-type-resolver';
|
|
8
8
|
import { getValidationResult } from './schema-validator';
|
|
9
9
|
import { createObjectTypeFieldResolvers } from './resolvers/object-type-field-default-value-resolver-generator';
|
|
10
|
+
import { createError, ErrorCode } from './errors';
|
|
10
11
|
export async function generateSchema(context) {
|
|
11
12
|
const originalSchemaString = await context.gitAdapter.getSchema(context.getCurrentRef());
|
|
12
13
|
const schema = makeExecutableSchema({
|
|
@@ -14,7 +15,10 @@ export async function generateSchema(context) {
|
|
|
14
15
|
});
|
|
15
16
|
const validationResult = getValidationResult(schema);
|
|
16
17
|
if (validationResult.length > 0) {
|
|
17
|
-
throw
|
|
18
|
+
throw createError(`Invalid schema.`, ErrorCode.BAD_SCHEMA, {
|
|
19
|
+
schema: printSchemaWithDirectives(schema),
|
|
20
|
+
argumentValue: validationResult.join('\n'),
|
|
21
|
+
});
|
|
18
22
|
}
|
|
19
23
|
const schemaAnalyzerResult = analyzeSchema(schema);
|
|
20
24
|
const filteredOriginalSchemaString = printSchemaWithDirectives(schema) + '\n';
|
|
@@ -41,7 +45,8 @@ ${generatedSchemaRootTypeStrings}`;
|
|
|
41
45
|
const generatedQueryResolvers = {};
|
|
42
46
|
const generatedMutationResolvers = {};
|
|
43
47
|
for (const element of generatedQueriesMutations) {
|
|
44
|
-
generatedQueryResolvers[element.
|
|
48
|
+
generatedQueryResolvers[element.queryEvery.name] =
|
|
49
|
+
element.queryEvery.resolver;
|
|
45
50
|
generatedQueryResolvers[element.queryById.name] = element.queryById.resolver;
|
|
46
51
|
generatedMutationResolvers[element.createMutation.name] =
|
|
47
52
|
element.createMutation.resolver;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-generator.js","sourceRoot":"","sources":["../../../src/graphql/schema-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,2BAA2B,EAC3B,qBAAqB,GACtB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAEL,oBAAoB,GACrB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EACL,0BAA0B,EAC1B,8BAA8B,EAC9B,6BAA6B,GAC9B,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,6BAA6B,EAAE,MAAM,8BAA8B,CAAA;AAC5E,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAA;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0DAA0D,CAAA;AAG5F,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAExD,OAAO,EAAE,8BAA8B,EAAE,MAAM,gEAAgE,CAAA;
|
|
1
|
+
{"version":3,"file":"schema-generator.js","sourceRoot":"","sources":["../../../src/graphql/schema-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export function generateSchemaRootTypeStrings(generatedSchemas, typeQuery) {
|
|
2
2
|
return (`type Query {\n` +
|
|
3
3
|
generatedSchemas
|
|
4
|
-
.map((generated) => ' ' + generated.
|
|
4
|
+
.map((generated) => ' ' + generated.queryEvery.schemaString)
|
|
5
5
|
.join('\n') +
|
|
6
6
|
'\n' +
|
|
7
7
|
generatedSchemas
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-root-type-generator.js","sourceRoot":"","sources":["../../../src/graphql/schema-root-type-generator.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,6BAA6B,CAC3C,gBAAmC,EACnC,SAA0C;IAE1C,OAAO,CACL,gBAAgB;QAChB,gBAAgB;aACb,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,GAAG,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"schema-root-type-generator.js","sourceRoot":"","sources":["../../../src/graphql/schema-root-type-generator.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,6BAA6B,CAC3C,gBAAmC,EACnC,SAA0C;IAE1C,OAAO,CACL,gBAAgB;QAChB,gBAAgB;aACb,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,GAAG,SAAS,CAAC,UAAU,CAAC,YAAY,CAAC;aAC5D,IAAI,CAAC,IAAI,CAAC;QACb,IAAI;QACJ,gBAAgB;aACb,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,GAAG,SAAS,CAAC,SAAS,CAAC,YAAY,CAAC;aAC3D,IAAI,CAAC,IAAI,CAAC;QACb,IAAI;QACJ,KAAK,SAAS,CAAC,YAAY,EAAE;QAC7B,IAAI;QACJ,OAAO;QACP,mBAAmB;QACnB,gBAAgB;aACb,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,GAAG,SAAS,CAAC,cAAc,CAAC,YAAY,CAAC;aAChE,IAAI,CAAC,IAAI,CAAC;QACb,IAAI;QACJ,gBAAgB;aACb,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,GAAG,SAAS,CAAC,cAAc,CAAC,YAAY,CAAC;aAChE,IAAI,CAAC,IAAI,CAAC;QACb,IAAI;QACJ,gBAAgB;aACb,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,GAAG,SAAS,CAAC,cAAc,CAAC,YAAY,CAAC;aAChE,IAAI,CAAC,IAAI,CAAC;QACb,IAAI;QACJ,KAAK,CACN,CAAA;AACH,CAAC"}
|