@commitspark/graphql-api 2.0.0-beta.4 → 2.0.0-beta.5
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 +32 -0
- package/README.md +147 -80
- package/dist/cjs/graphql/errors.d.ts +3 -2
- package/dist/cjs/graphql/errors.d.ts.map +1 -1
- package/dist/cjs/graphql/errors.js +11 -1
- package/dist/cjs/graphql/errors.js.map +1 -1
- package/dist/cjs/graphql/input-type-generator.d.ts.map +1 -1
- package/dist/cjs/graphql/input-type-generator.js +5 -10
- package/dist/cjs/graphql/input-type-generator.js.map +1 -1
- package/dist/cjs/graphql/queries-mutations-generator.d.ts +5 -5
- package/dist/cjs/graphql/queries-mutations-generator.d.ts.map +1 -1
- package/dist/cjs/graphql/queries-mutations-generator.js +45 -7
- package/dist/cjs/graphql/queries-mutations-generator.js.map +1 -1
- package/dist/cjs/graphql/resolvers/commit-message.d.ts +11 -0
- package/dist/cjs/graphql/resolvers/commit-message.d.ts.map +1 -0
- package/dist/cjs/graphql/resolvers/commit-message.js +22 -0
- package/dist/cjs/graphql/resolvers/commit-message.js.map +1 -0
- package/dist/cjs/graphql/resolvers/field-resolvers/entry-reference-resolver.js +2 -2
- 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 +3 -3
- package/dist/cjs/graphql/resolvers/field-resolvers/field-default-value-resolver.js.map +1 -1
- package/dist/cjs/graphql/resolvers/field-resolvers/version-resolver.d.ts +3 -0
- package/dist/cjs/graphql/resolvers/field-resolvers/version-resolver.d.ts.map +1 -0
- package/dist/cjs/graphql/resolvers/field-resolvers/version-resolver.js +7 -0
- package/dist/cjs/graphql/resolvers/field-resolvers/version-resolver.js.map +1 -0
- package/dist/cjs/graphql/resolvers/object-type-field-default-value-resolver-generator.js +1 -1
- package/dist/cjs/graphql/resolvers/object-type-field-default-value-resolver-generator.js.map +1 -1
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.d.ts.map +1 -1
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.js +34 -28
- 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.d.ts.map +1 -1
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.js +28 -23
- 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.d.ts.map +1 -1
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.js +25 -18
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.js.map +1 -1
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/query-search-resolver.js +5 -5
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/query-search-resolver.js.map +1 -1
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/union-type-resolver.js +1 -1
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/union-type-resolver.js.map +1 -1
- package/dist/cjs/graphql/resolvers/types.d.ts +9 -1
- package/dist/cjs/graphql/resolvers/types.d.ts.map +1 -1
- package/dist/cjs/graphql/schema-generator.d.ts.map +1 -1
- package/dist/cjs/graphql/schema-generator.js +9 -8
- package/dist/cjs/graphql/schema-generator.js.map +1 -1
- package/dist/cjs/graphql/schema-utils/entry-reference-util.js +7 -7
- package/dist/cjs/graphql/schema-utils/entry-reference-util.js.map +1 -1
- package/dist/cjs/graphql/schema-utils/union-type-util.js +2 -2
- package/dist/cjs/graphql/schema-utils/union-type-util.js.map +1 -1
- package/dist/cjs/graphql/schema-validator.d.ts.map +1 -1
- package/dist/cjs/graphql/schema-validator.js +16 -0
- package/dist/cjs/graphql/schema-validator.js.map +1 -1
- package/dist/cjs/index.js +3 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/persistence/cache.d.ts +3 -0
- package/dist/cjs/persistence/cache.d.ts.map +1 -1
- package/dist/cjs/persistence/cache.js +8 -17
- package/dist/cjs/persistence/cache.js.map +1 -1
- package/dist/cjs/persistence/commit-with-retry.d.ts +16 -0
- package/dist/cjs/persistence/commit-with-retry.d.ts.map +1 -0
- package/dist/cjs/persistence/commit-with-retry.js +39 -0
- package/dist/cjs/persistence/commit-with-retry.js.map +1 -0
- package/dist/cjs/persistence/git-adapter-call.d.ts +10 -0
- package/dist/cjs/persistence/git-adapter-call.d.ts.map +1 -0
- package/dist/cjs/persistence/git-adapter-call.js +29 -0
- package/dist/cjs/persistence/git-adapter-call.js.map +1 -0
- package/dist/cjs/persistence/persistence.d.ts +11 -0
- package/dist/cjs/persistence/persistence.d.ts.map +1 -1
- package/dist/cjs/persistence/persistence.js +37 -2
- package/dist/cjs/persistence/persistence.js.map +1 -1
- package/dist/esm/graphql/errors.d.ts +3 -2
- package/dist/esm/graphql/errors.d.ts.map +1 -1
- package/dist/esm/graphql/errors.js +10 -0
- package/dist/esm/graphql/errors.js.map +1 -1
- package/dist/esm/graphql/input-type-generator.d.ts.map +1 -1
- package/dist/esm/graphql/input-type-generator.js +6 -11
- package/dist/esm/graphql/input-type-generator.js.map +1 -1
- package/dist/esm/graphql/queries-mutations-generator.d.ts +5 -5
- package/dist/esm/graphql/queries-mutations-generator.d.ts.map +1 -1
- package/dist/esm/graphql/queries-mutations-generator.js +43 -6
- package/dist/esm/graphql/queries-mutations-generator.js.map +1 -1
- package/dist/esm/graphql/resolvers/commit-message.d.ts +11 -0
- package/dist/esm/graphql/resolvers/commit-message.d.ts.map +1 -0
- package/dist/esm/graphql/resolvers/commit-message.js +19 -0
- package/dist/esm/graphql/resolvers/commit-message.js.map +1 -0
- package/dist/esm/graphql/resolvers/field-resolvers/entry-reference-resolver.js +3 -3
- 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 +4 -4
- package/dist/esm/graphql/resolvers/field-resolvers/field-default-value-resolver.js.map +1 -1
- package/dist/esm/graphql/resolvers/field-resolvers/version-resolver.d.ts +3 -0
- package/dist/esm/graphql/resolvers/field-resolvers/version-resolver.d.ts.map +1 -0
- package/dist/esm/graphql/resolvers/field-resolvers/version-resolver.js +3 -0
- package/dist/esm/graphql/resolvers/field-resolvers/version-resolver.js.map +1 -0
- package/dist/esm/graphql/resolvers/object-type-field-default-value-resolver-generator.js +2 -2
- package/dist/esm/graphql/resolvers/object-type-field-default-value-resolver-generator.js.map +1 -1
- package/dist/esm/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.d.ts.map +1 -1
- package/dist/esm/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.js +35 -29
- 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.d.ts.map +1 -1
- package/dist/esm/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.js +30 -25
- 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.d.ts.map +1 -1
- package/dist/esm/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.js +27 -20
- package/dist/esm/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.js.map +1 -1
- package/dist/esm/graphql/resolvers/query-mutation-resolvers/query-search-resolver.js +6 -6
- package/dist/esm/graphql/resolvers/query-mutation-resolvers/query-search-resolver.js.map +1 -1
- package/dist/esm/graphql/resolvers/query-mutation-resolvers/union-type-resolver.js +2 -2
- package/dist/esm/graphql/resolvers/query-mutation-resolvers/union-type-resolver.js.map +1 -1
- package/dist/esm/graphql/resolvers/types.d.ts +9 -1
- package/dist/esm/graphql/resolvers/types.d.ts.map +1 -1
- package/dist/esm/graphql/schema-generator.d.ts.map +1 -1
- package/dist/esm/graphql/schema-generator.js +11 -10
- package/dist/esm/graphql/schema-generator.js.map +1 -1
- package/dist/esm/graphql/schema-utils/entry-reference-util.js +8 -8
- package/dist/esm/graphql/schema-utils/entry-reference-util.js.map +1 -1
- package/dist/esm/graphql/schema-utils/union-type-util.js +3 -3
- package/dist/esm/graphql/schema-utils/union-type-util.js.map +1 -1
- package/dist/esm/graphql/schema-validator.d.ts.map +1 -1
- package/dist/esm/graphql/schema-validator.js +17 -1
- package/dist/esm/graphql/schema-validator.js.map +1 -1
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/persistence/cache.d.ts +3 -0
- package/dist/esm/persistence/cache.d.ts.map +1 -1
- package/dist/esm/persistence/cache.js +6 -15
- package/dist/esm/persistence/cache.js.map +1 -1
- package/dist/esm/persistence/commit-with-retry.d.ts +16 -0
- package/dist/esm/persistence/commit-with-retry.d.ts.map +1 -0
- package/dist/esm/persistence/commit-with-retry.js +35 -0
- package/dist/esm/persistence/commit-with-retry.js.map +1 -0
- package/dist/esm/persistence/git-adapter-call.d.ts +10 -0
- package/dist/esm/persistence/git-adapter-call.d.ts.map +1 -0
- package/dist/esm/persistence/git-adapter-call.js +24 -0
- package/dist/esm/persistence/git-adapter-call.js.map +1 -0
- package/dist/esm/persistence/persistence.d.ts +11 -0
- package/dist/esm/persistence/persistence.d.ts.map +1 -1
- package/dist/esm/persistence/persistence.js +36 -3
- package/dist/esm/persistence/persistence.js.map +1 -1
- package/package.json +8 -5
- package/src/graphql/errors.ts +2 -1
- package/src/graphql/input-type-generator.ts +5 -15
- package/src/graphql/queries-mutations-generator.ts +51 -10
- package/src/graphql/resolvers/commit-message.ts +34 -0
- package/src/graphql/resolvers/field-resolvers/version-resolver.ts +8 -0
- package/src/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.ts +40 -29
- package/src/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.ts +44 -30
- package/src/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.ts +37 -18
- package/src/graphql/resolvers/types.ts +18 -1
- package/src/graphql/schema-generator.ts +12 -8
- package/src/graphql/schema-validator.ts +21 -0
- package/src/persistence/cache.ts +7 -13
- package/src/persistence/commit-with-retry.ts +47 -0
- package/src/persistence/git-adapter-call.ts +27 -0
- package/src/persistence/persistence.ts +50 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { isInterfaceType, isListType, isNonNullType, isObjectType,
|
|
1
|
+
import { isInterfaceType, isListType, isNonNullType, isObjectType, isUnionType, } from 'graphql';
|
|
2
2
|
import { buildsOnTypeWithEntryDirective } from "./schema-utils/entry-type-util.js";
|
|
3
3
|
import { ENTRY_DIRECTIVE_NAME, hasDirective, } from "./schema-utils/directive-util.js";
|
|
4
4
|
function generateFieldInputTypeString(type) {
|
|
@@ -45,14 +45,13 @@ export function generateObjectInputTypeStrings(objectTypes) {
|
|
|
45
45
|
return objectTypes.map((objectType) => {
|
|
46
46
|
const name = objectType.name;
|
|
47
47
|
const inputTypeName = `${name}Input`;
|
|
48
|
+
const isEntryType = hasDirective(objectType, ENTRY_DIRECTIVE_NAME);
|
|
48
49
|
let inputType = `input ${inputTypeName} {\n`;
|
|
49
50
|
let inputTypeFieldStrings = '';
|
|
50
51
|
for (const fieldsKey in objectType.getFields()) {
|
|
51
52
|
const field = objectType.getFields()[fieldsKey];
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
field.type.ofType.name === 'ID') ||
|
|
55
|
-
(isScalarType(field.type) && field.type.name === 'ID')) {
|
|
53
|
+
// the ID of an entry is passed as mutation argument instead of as part of the entry data
|
|
54
|
+
if (isEntryType && field.name === 'id') {
|
|
56
55
|
continue;
|
|
57
56
|
}
|
|
58
57
|
const inputTypeString = generateFieldInputTypeString(field.type);
|
|
@@ -70,11 +69,11 @@ export function generateObjectInputTypeStrings(objectTypes) {
|
|
|
70
69
|
});
|
|
71
70
|
}
|
|
72
71
|
export function generateUnionInputTypeStrings(unionTypes) {
|
|
73
|
-
|
|
72
|
+
return unionTypes.map((unionType) => {
|
|
74
73
|
if (buildsOnTypeWithEntryDirective(unionType)) {
|
|
75
74
|
return '';
|
|
76
75
|
}
|
|
77
|
-
//
|
|
76
|
+
// `@oneOf` is a directive specified by GraphQL and built into graphql-js since 16.9
|
|
78
77
|
let unionInputType = `input ${unionType.name}Input @oneOf {\n`;
|
|
79
78
|
for (const innerType of unionType.getTypes()) {
|
|
80
79
|
unionInputType += ` ${innerType.name}: ${innerType.name}Input\n`;
|
|
@@ -82,9 +81,5 @@ export function generateUnionInputTypeStrings(unionTypes) {
|
|
|
82
81
|
unionInputType += '}\n';
|
|
83
82
|
return unionInputType;
|
|
84
83
|
});
|
|
85
|
-
if (typeStrings.join('').length > 0) {
|
|
86
|
-
typeStrings.push('directive @oneOf on INPUT_OBJECT\n');
|
|
87
|
-
}
|
|
88
|
-
return typeStrings;
|
|
89
84
|
}
|
|
90
85
|
//# sourceMappingURL=input-type-generator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input-type-generator.js","sourceRoot":"","sources":["../../../src/graphql/input-type-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAQL,eAAe,EACf,UAAU,EACV,aAAa,EACb,YAAY,EACZ,
|
|
1
|
+
{"version":3,"file":"input-type-generator.js","sourceRoot":"","sources":["../../../src/graphql/input-type-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { EntryData } from '@commitspark/git-adapter';
|
|
2
2
|
import { GraphQLObjectType } from 'graphql';
|
|
3
|
-
import { QueryMutationResolver, ReferencedByResolver, SearchQueryResolver } from './resolvers/types.ts';
|
|
3
|
+
import { QueryMutationResolver, ReferencedByResolver, SearchQueryResolver, VersionResolver } from './resolvers/types.ts';
|
|
4
4
|
export declare function generateQueriesAndMutations(entryDirectiveTypes: GraphQLObjectType[]): GeneratedSchema[];
|
|
5
|
+
export declare function generateCommitInputType(): string;
|
|
5
6
|
export declare function generateTypeNameQuery(): GeneratedQuery;
|
|
6
7
|
export declare function generateSearchQuery(): GeneratedSearchQuery;
|
|
7
|
-
export declare function
|
|
8
|
-
interface
|
|
8
|
+
export declare function generateEntryFields(entryDirectiveTypes: GraphQLObjectType[]): GeneratedEntryFields[];
|
|
9
|
+
interface GeneratedEntryFields {
|
|
9
10
|
typeName: string;
|
|
10
|
-
name: string;
|
|
11
11
|
typeExtensionString: string;
|
|
12
|
-
|
|
12
|
+
resolvers: Record<string, ReferencedByResolver | VersionResolver>;
|
|
13
13
|
}
|
|
14
14
|
export interface GeneratedSearchQuery {
|
|
15
15
|
name: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queries-mutations-generator.d.ts","sourceRoot":"","sources":["../../../src/graphql/queries-mutations-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"queries-mutations-generator.d.ts","sourceRoot":"","sources":["../../../src/graphql/queries-mutations-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAU3C,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EAChB,MAAM,sBAAsB,CAAA;AAI7B,wBAAgB,2BAA2B,CACzC,mBAAmB,EAAE,iBAAiB,EAAE,GACvC,eAAe,EAAE,CA+GnB;AAED,wBAAgB,uBAAuB,IAAI,MAAM,CAgBhD;AAED,wBAAgB,qBAAqB,IAAI,cAAc,CAStD;AAED,wBAAgB,mBAAmB,IAAI,oBAAoB,CAiB1D;AAED,wBAAgB,mBAAmB,CACjC,mBAAmB,EAAE,iBAAiB,EAAE,GACvC,oBAAoB,EAAE,CAoBxB;AAED,UAAU,oBAAoB;IAC5B,QAAQ,EAAE,MAAM,CAAA;IAChB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,GAAG,eAAe,CAAC,CAAA;CAClE;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAA;IACZ,YAAY,EAAE,MAAM,CAAA;IACpB,oBAAoB,EAAE,MAAM,CAAA;IAC5B,QAAQ,EAAE,mBAAmB,CAAA;CAC9B;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,cAAc,CAAA;IAC1B,SAAS,EAAE,cAAc,CAAA;IACzB,cAAc,EAAE,cAAc,CAAA;IAC9B,cAAc,EAAE,cAAc,CAAA;IAC9B,cAAc,EAAE,cAAc,CAAA;CAC/B;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,YAAY,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,qBAAqB,CAAC,SAAS,GAAG,SAAS,EAAE,GAAG,MAAM,CAAC,CAAA;CAClE"}
|
|
@@ -6,6 +6,8 @@ import { mutationDeleteResolver } from "./resolvers/query-mutation-resolvers/mut
|
|
|
6
6
|
import { queryTypeByIdResolver } from "./resolvers/query-mutation-resolvers/query-type-by-id-resolver.js";
|
|
7
7
|
import { querySearchResolver } from "./resolvers/query-mutation-resolvers/query-search-resolver.js";
|
|
8
8
|
import { referencedByResolver } from "./resolvers/field-resolvers/referenced-by-resolver.js";
|
|
9
|
+
import { versionResolver } from "./resolvers/field-resolvers/version-resolver.js";
|
|
10
|
+
const commitInputTypeName = '_CommitInput';
|
|
9
11
|
export function generateQueriesAndMutations(entryDirectiveTypes) {
|
|
10
12
|
return entryDirectiveTypes.map((objectType) => {
|
|
11
13
|
const typeName = objectType.name;
|
|
@@ -18,14 +20,24 @@ export function generateQueriesAndMutations(entryDirectiveTypes) {
|
|
|
18
20
|
const queryByIdString = `${queryByIdName}(id: ID!): ${objectType.name}`;
|
|
19
21
|
const queryByIdResolverFunc = (source, args, context, info) => queryByIdResolver(source, args, { ...context, type: objectType }, info);
|
|
20
22
|
const inputTypeName = `${typeName}Input`;
|
|
23
|
+
// mutations are printed with one argument per line, as indented within the generated root type
|
|
24
|
+
const commitArgument = (operation) => ' """\n' +
|
|
25
|
+
` Details of the commit. If no message is given, the message is '${operation} ${typeName} "<id>"'.\n` +
|
|
26
|
+
' """\n' +
|
|
27
|
+
` commit: ${commitInputTypeName}\n`;
|
|
28
|
+
const expectedVersionArgument = ' """\n' +
|
|
29
|
+
' Version of the entry (field `_version`) that the change is based on. If given and the entry has a different\n' +
|
|
30
|
+
' version, the mutation fails with error code CONFLICT instead of overwriting changes made since.\n' +
|
|
31
|
+
' """\n' +
|
|
32
|
+
' expectedVersion: String\n';
|
|
21
33
|
const createMutationName = `create${typeName}`;
|
|
22
|
-
const createMutationString = `${createMutationName}(id: ID
|
|
34
|
+
const createMutationString = `${createMutationName}(\n id: ID!\n data: ${inputTypeName}!\n${commitArgument('Create')} ): ${typeName}`;
|
|
23
35
|
const createMutationResolver = (source, args, context, info) => mutationCreateResolver(source, args, { ...context, type: objectType }, info);
|
|
24
36
|
const updateMutationName = `update${typeName}`;
|
|
25
|
-
const updateMutationString = `${updateMutationName}(id: ID
|
|
37
|
+
const updateMutationString = `${updateMutationName}(\n id: ID!\n data: ${inputTypeName}!\n${expectedVersionArgument}${commitArgument('Update')} ): ${typeName}`;
|
|
26
38
|
const updateMutationResolver = (source, args, context, info) => mutationUpdateResolver(source, args, { ...context, type: objectType }, info);
|
|
27
39
|
const deleteMutationName = `delete${typeName}`;
|
|
28
|
-
const deleteMutationString = `${deleteMutationName}(id: ID
|
|
40
|
+
const deleteMutationString = `${deleteMutationName}(\n id: ID!\n${expectedVersionArgument}${commitArgument('Delete')} ): ID`;
|
|
29
41
|
const deleteMutationResolver = (source, args, context, info) => mutationDeleteResolver(source, args, { ...context, type: objectType }, info);
|
|
30
42
|
return {
|
|
31
43
|
queryEvery: {
|
|
@@ -56,6 +68,23 @@ export function generateQueriesAndMutations(entryDirectiveTypes) {
|
|
|
56
68
|
};
|
|
57
69
|
});
|
|
58
70
|
}
|
|
71
|
+
export function generateCommitInputType() {
|
|
72
|
+
return `"""
|
|
73
|
+
Details of the commit created by a mutation.
|
|
74
|
+
"""
|
|
75
|
+
input ${commitInputTypeName} {
|
|
76
|
+
"""
|
|
77
|
+
Commit message summarizing the change in a single line. Leading and trailing whitespace is removed, and messages
|
|
78
|
+
containing line breaks are rejected with error code BAD_USER_INPUT. If omitted or empty, a message is generated.
|
|
79
|
+
"""
|
|
80
|
+
message: String
|
|
81
|
+
"""
|
|
82
|
+
Optional details of the change, which may span multiple lines. Leading and trailing whitespace is removed.
|
|
83
|
+
"""
|
|
84
|
+
body: String
|
|
85
|
+
}
|
|
86
|
+
`;
|
|
87
|
+
}
|
|
59
88
|
export function generateTypeNameQuery() {
|
|
60
89
|
const entryTypeQueryName = '_typeName';
|
|
61
90
|
const entryTypeQueryString = `${entryTypeQueryName}(id: ID!): String!`;
|
|
@@ -82,16 +111,24 @@ export function generateSearchQuery() {
|
|
|
82
111
|
resolver: querySearchResolver,
|
|
83
112
|
};
|
|
84
113
|
}
|
|
85
|
-
export function
|
|
114
|
+
export function generateEntryFields(entryDirectiveTypes) {
|
|
86
115
|
const referencedByFieldName = '_referencedBy';
|
|
116
|
+
const versionFieldName = '_version';
|
|
87
117
|
return entryDirectiveTypes.map((objectType) => ({
|
|
88
118
|
typeName: objectType.name,
|
|
89
|
-
name: referencedByFieldName,
|
|
90
119
|
typeExtensionString: `extend type ${objectType.name} {
|
|
91
120
|
${referencedByFieldName}: [ID!]!
|
|
121
|
+
"""
|
|
122
|
+
Version of the entry, which changes whenever the stored entry changes. Pass it as \`expectedVersion\` to update
|
|
123
|
+
and delete mutations to prevent overwriting changes made since the entry was read.
|
|
124
|
+
"""
|
|
125
|
+
${versionFieldName}: String!
|
|
92
126
|
}
|
|
93
127
|
`,
|
|
94
|
-
|
|
128
|
+
resolvers: {
|
|
129
|
+
[referencedByFieldName]: referencedByResolver,
|
|
130
|
+
[versionFieldName]: versionResolver,
|
|
131
|
+
},
|
|
95
132
|
}));
|
|
96
133
|
}
|
|
97
134
|
//# sourceMappingURL=queries-mutations-generator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queries-mutations-generator.js","sourceRoot":"","sources":["../../../src/graphql/queries-mutations-generator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,8DAA8D,CAAA;AACjG,OAAO,EAAE,iBAAiB,EAAE,MAAM,8DAA8D,CAAA;AAChG,OAAO,EAAE,sBAAsB,EAAE,MAAM,kEAAkE,CAAA;AACzG,OAAO,EAAE,sBAAsB,EAAE,MAAM,kEAAkE,CAAA;AACzG,OAAO,EAAE,sBAAsB,EAAE,MAAM,kEAAkE,CAAA;AACzG,OAAO,EAAE,qBAAqB,EAAE,MAAM,mEAAmE,CAAA;AACzG,OAAO,EAAE,mBAAmB,EAAE,MAAM,+DAA+D,CAAA;AACnG,OAAO,EAAE,oBAAoB,EAAE,MAAM,uDAAuD,CAAA;
|
|
1
|
+
{"version":3,"file":"queries-mutations-generator.js","sourceRoot":"","sources":["../../../src/graphql/queries-mutations-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { CommitDraft } from '@commitspark/git-adapter';
|
|
2
|
+
import { CommitInput } from './types.ts';
|
|
3
|
+
type MutationOperation = 'Create' | 'Update' | 'Delete';
|
|
4
|
+
/**
|
|
5
|
+
* Determines message and body of the commit of a mutation from mutation argument `commit`. The message is trimmed and
|
|
6
|
+
* must be a single line; an omitted or empty message is replaced by a message generated from the mutation. The body
|
|
7
|
+
* is trimmed and omitted if empty.
|
|
8
|
+
*/
|
|
9
|
+
export declare function getCommitMessage(commit: CommitInput | null | undefined, operation: MutationOperation, typeName: string, id: string): Pick<CommitDraft, 'message' | 'body'>;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=commit-message.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commit-message.d.ts","sourceRoot":"","sources":["../../../../src/graphql/resolvers/commit-message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAEtD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAExC,KAAK,iBAAiB,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAA;AAEvD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,EACtC,SAAS,EAAE,iBAAiB,EAC5B,QAAQ,EAAE,MAAM,EAChB,EAAE,EAAE,MAAM,GACT,IAAI,CAAC,WAAW,EAAE,SAAS,GAAG,MAAM,CAAC,CAiBvC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { createError, ErrorCode } from "../errors.js";
|
|
2
|
+
/**
|
|
3
|
+
* Determines message and body of the commit of a mutation from mutation argument `commit`. The message is trimmed and
|
|
4
|
+
* must be a single line; an omitted or empty message is replaced by a message generated from the mutation. The body
|
|
5
|
+
* is trimmed and omitted if empty.
|
|
6
|
+
*/
|
|
7
|
+
export function getCommitMessage(commit, operation, typeName, id) {
|
|
8
|
+
const message = commit?.message?.trim() ?? '';
|
|
9
|
+
if (/[\r\n]/.test(message)) {
|
|
10
|
+
throw createError('Commit message must be a single line; use field "body" for details.', ErrorCode.BAD_USER_INPUT, { argumentName: 'commit.message', argumentValue: commit?.message });
|
|
11
|
+
}
|
|
12
|
+
const body = commit?.body?.trim() ?? '';
|
|
13
|
+
const commitMessage = message !== '' ? message : `${operation} ${typeName} "${id}"`;
|
|
14
|
+
if (body === '') {
|
|
15
|
+
return { message: commitMessage };
|
|
16
|
+
}
|
|
17
|
+
return { message: commitMessage, body: body };
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=commit-message.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commit-message.js","sourceRoot":"","sources":["../../../../src/graphql/resolvers/commit-message.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAKrD;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAC9B,MAAsC,EACtC,SAA4B,EAC5B,QAAgB,EAChB,EAAU;IAEV,MAAM,OAAO,GAAG,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;IAC7C,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,MAAM,WAAW,CACf,qEAAqE,EACrE,SAAS,CAAC,cAAc,EACxB,EAAE,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,CACnE,CAAA;IACH,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;IAEvC,MAAM,aAAa,GACjB,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,SAAS,IAAI,QAAQ,KAAK,EAAE,GAAG,CAAA;IAC/D,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;QAChB,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,CAAA;IACnC,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;AAC/C,CAAC"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { isNamedType } from 'graphql';
|
|
2
2
|
import { findById } from "../../../persistence/persistence.js";
|
|
3
|
-
import { createError } from "../../errors.js";
|
|
3
|
+
import { createError, ErrorCode } from "../../errors.js";
|
|
4
4
|
export const resolveEntryReference = async (fieldValue, args, context, info) => {
|
|
5
5
|
void info;
|
|
6
6
|
if (!isNamedType(context.currentType)) {
|
|
7
|
-
throw createError(`Expected context.currentType type to be a named type.`,
|
|
7
|
+
throw createError(`Expected context.currentType type to be a named type.`, ErrorCode.INTERNAL_ERROR, {
|
|
8
8
|
fieldValue: fieldValue,
|
|
9
9
|
});
|
|
10
10
|
}
|
|
@@ -12,7 +12,7 @@ export const resolveEntryReference = async (fieldValue, args, context, info) =>
|
|
|
12
12
|
typeof fieldValue !== 'object' ||
|
|
13
13
|
!('id' in fieldValue) ||
|
|
14
14
|
typeof fieldValue.id !== 'string') {
|
|
15
|
-
throw createError('Expected fieldValue.id to be a string.',
|
|
15
|
+
throw createError('Expected fieldValue.id to be a string.', ErrorCode.INTERNAL_ERROR, {
|
|
16
16
|
fieldValue: fieldValue,
|
|
17
17
|
});
|
|
18
18
|
}
|
|
@@ -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,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAA;AAC9D,OAAO,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"entry-reference-resolver.js","sourceRoot":"","sources":["../../../../../src/graphql/resolvers/field-resolvers/entry-reference-resolver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAA;AAC9D,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAExD,MAAM,CAAC,MAAM,qBAAqB,GAAkB,KAAK,EACvD,UAAU,EACV,IAAI,EACJ,OAAO,EACP,IAAI,EACJ,EAAE;IACF,KAAK,IAAI,CAAA;IACT,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,IACE,UAAU,KAAK,IAAI;QACnB,OAAO,UAAU,KAAK,QAAQ;QAC9B,CAAC,CAAC,IAAI,IAAI,UAAU,CAAC;QACrB,OAAO,UAAU,CAAC,EAAE,KAAK,QAAQ,EACjC,CAAC;QACD,MAAM,WAAW,CACf,wCAAwC,EACxC,SAAS,CAAC,cAAc,EACxB;YACE,UAAU,EAAE,UAAU;SACvB,CACF,CAAA;IACH,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,CAAC,CAAA;IAEpD,OAAO,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAA;AACxC,CAAC,CAAA"}
|
|
@@ -3,7 +3,7 @@ import { buildsOnTypeWithEntryDirective } from "../../schema-utils/entry-type-ut
|
|
|
3
3
|
import { ENTRY_DIRECTIVE_NAME, hasDirective, } from "../../schema-utils/directive-util.js";
|
|
4
4
|
import { resolveEntryReference } from "./entry-reference-resolver.js";
|
|
5
5
|
import { resolveUnionValue } from "./union-value-resolver.js";
|
|
6
|
-
import { createError } from "../../errors.js";
|
|
6
|
+
import { createError, ErrorCode } from "../../errors.js";
|
|
7
7
|
export const resolveFieldDefaultValue = async (fieldValue, args, context, info) => {
|
|
8
8
|
if (isNonNullType(context.currentType)) {
|
|
9
9
|
return resolveFieldDefaultValue(fieldValue, args, {
|
|
@@ -22,7 +22,7 @@ export const resolveFieldDefaultValue = async (fieldValue, args, context, info)
|
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
24
|
if (!Array.isArray(fieldValue)) {
|
|
25
|
-
throw createError(`Expected array while resolving value for field "${info.fieldName}".`,
|
|
25
|
+
throw createError(`Expected array while resolving value for field "${info.fieldName}".`, ErrorCode.BAD_REPOSITORY_DATA, {
|
|
26
26
|
fieldName: info.fieldName,
|
|
27
27
|
fieldValue: fieldValue,
|
|
28
28
|
});
|
|
@@ -41,7 +41,7 @@ export const resolveFieldDefaultValue = async (fieldValue, args, context, info)
|
|
|
41
41
|
if (isUnionType(context.currentType)) {
|
|
42
42
|
if (fieldValue === undefined || fieldValue === null) {
|
|
43
43
|
if (context.hasNonNullParent) {
|
|
44
|
-
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.`,
|
|
44
|
+
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, {
|
|
45
45
|
typeName: info.parentType.name,
|
|
46
46
|
fieldName: info.fieldName,
|
|
47
47
|
});
|
|
@@ -60,7 +60,7 @@ export const resolveFieldDefaultValue = async (fieldValue, args, context, info)
|
|
|
60
60
|
if (context.hasNonNullParent) {
|
|
61
61
|
throw createError(`Cannot generate a default value for NonNull field "${info.fieldName}" of type ` +
|
|
62
62
|
`"${info.parentType.name}". Set a value in your repository data or remove the NonNull ` +
|
|
63
|
-
`declaration in your schema.`,
|
|
63
|
+
`declaration in your schema.`, ErrorCode.BAD_REPOSITORY_DATA, {
|
|
64
64
|
typeName: info.parentType.name,
|
|
65
65
|
fieldName: info.fieldName,
|
|
66
66
|
});
|
|
@@ -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":"AACA,OAAO,EAGL,UAAU,EACV,aAAa,EACb,YAAY,EACZ,WAAW,GACZ,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,8BAA8B,EAAE,MAAM,uCAAuC,CAAA;AACtF,OAAO,EACL,oBAAoB,EACpB,YAAY,GACb,MAAM,sCAAsC,CAAA;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAA;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,EAAE,WAAW,
|
|
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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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version-resolver.d.ts","sourceRoot":"","sources":["../../../../../src/graphql/resolvers/field-resolvers/version-resolver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAE7C,eAAO,MAAM,eAAe,EAAE,eAIU,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version-resolver.js","sourceRoot":"","sources":["../../../../../src/graphql/resolvers/field-resolvers/version-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAA;AAGrE,MAAM,CAAC,MAAM,eAAe,GAAoB,KAAK,EACnD,MAAM,EACN,KAAK,EACL,OAAO,EACP,EAAE,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,CAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { isListType, isNonNullType, isObjectType, isUnionType, } from 'graphql';
|
|
2
2
|
import { resolveFieldDefaultValue } from "./field-resolvers/field-default-value-resolver.js";
|
|
3
|
-
import { createError } from "../errors.js";
|
|
3
|
+
import { createError, ErrorCode } from "../errors.js";
|
|
4
4
|
import { isEntryData } from "../util.js";
|
|
5
5
|
function requiresCustomDefaultValueResolver(type) {
|
|
6
6
|
if (isNonNullType(type)) {
|
|
@@ -45,7 +45,7 @@ export function createObjectTypeFieldResolvers(schema) {
|
|
|
45
45
|
fieldSourceData = obj[field.name] ?? null;
|
|
46
46
|
if (fieldSourceData !== null &&
|
|
47
47
|
!(isEntryData(fieldSourceData) || Array.isArray(fieldSourceData))) {
|
|
48
|
-
throw createError(`Expected an object or array as data for passing to resolver of field "${field.name}" in type "${typeName}".`,
|
|
48
|
+
throw createError(`Expected an object or array as data for passing to resolver of field "${field.name}" in type "${typeName}".`, ErrorCode.BAD_REPOSITORY_DATA, {
|
|
49
49
|
fieldName: field.name,
|
|
50
50
|
typeName: typeName,
|
|
51
51
|
});
|
package/dist/esm/graphql/resolvers/object-type-field-default-value-resolver-generator.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"object-type-field-default-value-resolver-generator.js","sourceRoot":"","sources":["../../../../src/graphql/resolvers/object-type-field-default-value-resolver-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,UAAU,EACV,aAAa,EACb,YAAY,EACZ,WAAW,GACZ,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,wBAAwB,EAAE,MAAM,mDAAmD,CAAA;AAC5F,OAAO,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"object-type-field-default-value-resolver-generator.js","sourceRoot":"","sources":["../../../../src/graphql/resolvers/object-type-field-default-value-resolver-generator.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mutation-create-resolver.d.ts","sourceRoot":"","sources":["../../../../../src/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,SAAS,EAGV,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"mutation-create-resolver.d.ts","sourceRoot":"","sources":["../../../../../src/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,SAAS,EAGV,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAKnD,eAAO,MAAM,sBAAsB,EAAE,qBAAqB,CAAC,SAAS,CAyEnE,CAAA"}
|
|
@@ -2,48 +2,54 @@ import { findById, findByTypeId } from "../../../persistence/persistence.js";
|
|
|
2
2
|
import { isObjectType } from 'graphql';
|
|
3
3
|
import { validateEntryReferences } from "../../schema-utils/entry-reference-util.js";
|
|
4
4
|
import { validateEntryId, } from '@commitspark/git-adapter';
|
|
5
|
-
import { createError } from "../../errors.js";
|
|
5
|
+
import { createError, ErrorCode } from "../../errors.js";
|
|
6
|
+
import { getCommitMessage } from "../commit-message.js";
|
|
7
|
+
import { commitWithRetry } from "../../../persistence/commit-with-retry.js";
|
|
6
8
|
export const mutationCreateResolver = async (source, args, context, info) => {
|
|
7
9
|
void info;
|
|
8
10
|
if (!isObjectType(context.type)) {
|
|
9
|
-
throw createError(`Entry of type "${context.type.name}" cannot be created as is not an ObjectType.`,
|
|
11
|
+
throw createError(`Entry of type "${context.type.name}" cannot be created as is not an ObjectType.`, ErrorCode.INTERNAL_ERROR, {});
|
|
10
12
|
}
|
|
13
|
+
// narrowed type, as narrowing does not apply within the callback below
|
|
14
|
+
const entryType = context.type;
|
|
11
15
|
try {
|
|
12
16
|
validateEntryId(args.id);
|
|
13
17
|
}
|
|
14
18
|
catch (err) {
|
|
15
|
-
throw createError(err instanceof Error ? err.message : String(err),
|
|
19
|
+
throw createError(err instanceof Error ? err.message : String(err), ErrorCode.BAD_USER_INPUT, {
|
|
16
20
|
argumentName: 'id',
|
|
17
21
|
argumentValue: args.id,
|
|
18
22
|
});
|
|
19
23
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
existingEntry
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
24
|
+
const commitMessage = getCommitMessage(args.commit, 'Create', context.type.name, args.id);
|
|
25
|
+
await commitWithRetry(context, async () => {
|
|
26
|
+
let existingEntry;
|
|
27
|
+
try {
|
|
28
|
+
existingEntry = await findById(context, args.id);
|
|
29
|
+
}
|
|
30
|
+
catch { }
|
|
31
|
+
if (existingEntry) {
|
|
32
|
+
throw createError(`An entry with id "${args.id}" already exists.`, ErrorCode.BAD_USER_INPUT, {
|
|
33
|
+
argumentName: 'id',
|
|
34
|
+
argumentValue: args.id,
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
await validateEntryReferences(entryType, context, args.data ?? null);
|
|
38
|
+
const newEntryDraft = {
|
|
39
|
+
id: args.id,
|
|
40
|
+
metadata: {
|
|
41
|
+
type: context.type.name,
|
|
42
|
+
},
|
|
43
|
+
data: args.data ?? null,
|
|
44
|
+
deletion: false,
|
|
45
|
+
};
|
|
46
|
+
return {
|
|
47
|
+
ref: context.branch,
|
|
48
|
+
parentSha: context.getCurrentHash(),
|
|
49
|
+
entries: [newEntryDraft],
|
|
50
|
+
...commitMessage,
|
|
51
|
+
};
|
|
45
52
|
});
|
|
46
|
-
context.setCurrentHash(commit.commitHash);
|
|
47
53
|
const newEntry = await findByTypeId(context, context.type.name, args.id);
|
|
48
54
|
return { ...newEntry.data, id: newEntry.id };
|
|
49
55
|
};
|
|
@@ -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,qCAAqC,CAAA;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAA;AACpF,OAAO,EAGL,eAAe,GAChB,MAAM,0BAA0B,CAAA;AAEjC,OAAO,EAAE,WAAW,
|
|
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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"}
|
package/dist/esm/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mutation-delete-resolver.d.ts","sourceRoot":"","sources":["../../../../../src/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mutation-delete-resolver.d.ts","sourceRoot":"","sources":["../../../../../src/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAKnD,eAAO,MAAM,sBAAsB,EAAE,qBAAqB,CAAC,MAAM,CAiDhE,CAAA"}
|
|
@@ -1,31 +1,36 @@
|
|
|
1
|
-
import { findByTypeId } from "../../../persistence/persistence.js";
|
|
1
|
+
import { assertExpectedVersion, findByTypeId, } from "../../../persistence/persistence.js";
|
|
2
2
|
import { getReferencingEntryIds } from "../../schema-utils/entry-reference-util.js";
|
|
3
|
-
import { createError } from "../../errors.js";
|
|
3
|
+
import { createError, ErrorCode } from "../../errors.js";
|
|
4
|
+
import { getCommitMessage } from "../commit-message.js";
|
|
5
|
+
import { commitWithRetry } from "../../../persistence/commit-with-retry.js";
|
|
4
6
|
export const mutationDeleteResolver = async (source, args, context, info) => {
|
|
5
|
-
const
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
7
|
+
const commitMessage = getCommitMessage(args.commit, 'Delete', context.type.name, args.id);
|
|
8
|
+
await commitWithRetry(context, async () => {
|
|
9
|
+
const entry = await findByTypeId(context, context.type.name, args.id);
|
|
10
|
+
await assertExpectedVersion(context, args.id, args.expectedVersion);
|
|
11
|
+
// references held by the entry itself are deleted together with the entry
|
|
12
|
+
const otherReferencingIds = (await getReferencingEntryIds(context, info.schema, args.id)).filter((referencingId) => referencingId !== args.id);
|
|
13
|
+
if (otherReferencingIds.length > 0) {
|
|
14
|
+
const otherIds = otherReferencingIds
|
|
15
|
+
.map((referenceId) => `"${referenceId}"`)
|
|
16
|
+
.join(', ');
|
|
17
|
+
throw createError(`Entry with ID "${args.id}" is still referenced by entries [${otherIds}].`, ErrorCode.IN_USE, {
|
|
18
|
+
argumentName: 'id',
|
|
19
|
+
argumentValue: args.id,
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
return {
|
|
23
|
+
ref: context.branch,
|
|
24
|
+
parentSha: context.getCurrentHash(),
|
|
25
|
+
entries: [
|
|
26
|
+
{
|
|
27
|
+
...entry,
|
|
28
|
+
deletion: true,
|
|
29
|
+
},
|
|
30
|
+
],
|
|
31
|
+
...commitMessage,
|
|
32
|
+
};
|
|
27
33
|
});
|
|
28
|
-
context.setCurrentHash(commit.commitHash);
|
|
29
34
|
return args.id;
|
|
30
35
|
};
|
|
31
36
|
//# sourceMappingURL=mutation-delete-resolver.js.map
|
|
@@ -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,
|
|
1
|
+
{"version":3,"file":"mutation-delete-resolver.js","sourceRoot":"","sources":["../../../../../src/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,YAAY,GACb,MAAM,qCAAqC,CAAA;AAE5C,OAAO,EAAE,sBAAsB,EAAE,MAAM,4CAA4C,CAAA;AAEnF,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAA;AAE3E,MAAM,CAAC,MAAM,sBAAsB,GAAkC,KAAK,EACxE,MAAM,EACN,IAAI,EACJ,OAAO,EACP,IAAI,EACJ,EAAE;IACF,MAAM,aAAa,GAAG,gBAAgB,CACpC,IAAI,CAAC,MAAM,EACX,QAAQ,EACR,OAAO,CAAC,IAAI,CAAC,IAAI,EACjB,IAAI,CAAC,EAAE,CACR,CAAA;IAED,MAAM,eAAe,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;QACxC,MAAM,KAAK,GAAU,MAAM,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAA;QAC5E,MAAM,qBAAqB,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,CAAA;QAEnE,0EAA0E;QAC1E,MAAM,mBAAmB,GAAG,CAC1B,MAAM,sBAAsB,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAC5D,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,EAAE,CAAC,aAAa,KAAK,IAAI,CAAC,EAAE,CAAC,CAAA;QACtD,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnC,MAAM,QAAQ,GAAG,mBAAmB;iBACjC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,IAAI,WAAW,GAAG,CAAC;iBACxC,IAAI,CAAC,IAAI,CAAC,CAAA;YACb,MAAM,WAAW,CACf,kBAAkB,IAAI,CAAC,EAAE,qCAAqC,QAAQ,IAAI,EAC1E,SAAS,CAAC,MAAM,EAChB;gBACE,YAAY,EAAE,IAAI;gBAClB,aAAa,EAAE,IAAI,CAAC,EAAE;aACvB,CACF,CAAA;QACH,CAAC;QAED,OAAO;YACL,GAAG,EAAE,OAAO,CAAC,MAAM;YACnB,SAAS,EAAE,OAAO,CAAC,cAAc,EAAE;YACnC,OAAO,EAAE;gBACP;oBACE,GAAG,KAAK;oBACR,QAAQ,EAAE,IAAI;iBACf;aACF;YACD,GAAG,aAAa;SACjB,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,OAAO,IAAI,CAAC,EAAE,CAAA;AAChB,CAAC,CAAA"}
|
package/dist/esm/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mutation-update-resolver.d.ts","sourceRoot":"","sources":["../../../../../src/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mutation-update-resolver.d.ts","sourceRoot":"","sources":["../../../../../src/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAenD,eAAO,MAAM,sBAAsB,EAAE,qBAAqB,CAAC,SAAS,CAoDnE,CAAA"}
|