@smartive/graphql-magic 21.0.3 → 21.1.0-next.2
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 +2 -6
- package/dist/bin/gqm.cjs +2 -0
- package/dist/cjs/index.cjs +11 -2
- package/dist/esm/api/execute.d.ts +3 -2
- package/dist/esm/api/execute.js +10 -3
- package/dist/esm/api/execute.js.map +1 -1
- package/package.json +2 -2
- package/src/api/execute.ts +16 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
##
|
|
1
|
+
## 21.1.0-next.2 (2025-10-20)
|
|
2
2
|
|
|
3
|
-
* fix
|
|
4
|
-
* chore(deps): update dependency esbuild to v0.25.11 (#365) ([9bb3f20](https://github.com/smartive/graphql-magic/commit/9bb3f20)), closes [#365](https://github.com/smartive/graphql-magic/issues/365)
|
|
5
|
-
* chore(deps): update dependency eslint to v9.37.0 (#362) ([7d93321](https://github.com/smartive/graphql-magic/commit/7d93321)), closes [#362](https://github.com/smartive/graphql-magic/issues/362)
|
|
6
|
-
* chore(deps): update dependency ts-jest to v29.4.5 (#363) ([78bed26](https://github.com/smartive/graphql-magic/commit/78bed26)), closes [#363](https://github.com/smartive/graphql-magic/issues/363)
|
|
7
|
-
* chore(deps): update dependency typescript to v5.9.3 (#361) ([92ccf69](https://github.com/smartive/graphql-magic/commit/92ccf69)), closes [#361](https://github.com/smartive/graphql-magic/issues/361)
|
|
3
|
+
* fix: Graphql objects handing ([548965d](https://github.com/smartive/graphql-magic/commit/548965d))
|
package/dist/bin/gqm.cjs
CHANGED
|
@@ -31,6 +31,8 @@ var import_simple_git = require("simple-git");
|
|
|
31
31
|
// src/api/execute.ts
|
|
32
32
|
var import_schema = require("@graphql-tools/schema");
|
|
33
33
|
var import_graphql2 = require("graphql");
|
|
34
|
+
var import_isFunction = __toESM(require("lodash/isFunction"), 1);
|
|
35
|
+
var import_mapValues = __toESM(require("lodash/mapValues"), 1);
|
|
34
36
|
var import_merge = __toESM(require("lodash/merge"), 1);
|
|
35
37
|
|
|
36
38
|
// src/errors.ts
|
package/dist/cjs/index.cjs
CHANGED
|
@@ -193,6 +193,8 @@ module.exports = __toCommonJS(index_exports);
|
|
|
193
193
|
// src/api/execute.ts
|
|
194
194
|
var import_schema = require("@graphql-tools/schema");
|
|
195
195
|
var import_graphql2 = require("graphql");
|
|
196
|
+
var import_isFunction = __toESM(require("lodash/isFunction"), 1);
|
|
197
|
+
var import_mapValues = __toESM(require("lodash/mapValues"), 1);
|
|
196
198
|
var import_merge = __toESM(require("lodash/merge"), 1);
|
|
197
199
|
|
|
198
200
|
// src/errors.ts
|
|
@@ -238,13 +240,20 @@ var execute = async ({
|
|
|
238
240
|
additionalResolvers,
|
|
239
241
|
body,
|
|
240
242
|
introspection = false,
|
|
243
|
+
resolverWrapper,
|
|
241
244
|
...ctx
|
|
242
245
|
}) => {
|
|
243
246
|
const document2 = generate(ctx.models);
|
|
244
|
-
|
|
247
|
+
let resolvers = (0, import_merge.default)(getResolvers(ctx.models), additionalResolvers);
|
|
248
|
+
if (resolverWrapper) {
|
|
249
|
+
resolvers = (0, import_mapValues.default)(
|
|
250
|
+
resolvers,
|
|
251
|
+
(type) => Object.getPrototypeOf(type) === Object.prototype ? (0, import_mapValues.default)(type, (resolver) => (0, import_isFunction.default)(resolver) ? resolverWrapper(resolver) : resolver) : type
|
|
252
|
+
);
|
|
253
|
+
}
|
|
245
254
|
const schema = (0, import_schema.makeExecutableSchema)({
|
|
246
255
|
typeDefs: document2,
|
|
247
|
-
resolvers
|
|
256
|
+
resolvers
|
|
248
257
|
});
|
|
249
258
|
const parsedDocument = (0, import_graphql2.parse)(new import_graphql2.Source(body.query, "GraphQL request"));
|
|
250
259
|
const validationErrors = (0, import_graphql2.validate)(
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { IResolvers } from '@graphql-tools/utils';
|
|
1
|
+
import { IFieldResolver, IResolvers } from '@graphql-tools/utils';
|
|
2
2
|
import { Context } from '..';
|
|
3
|
-
export declare const execute: ({ additionalResolvers, body, introspection, ...ctx }: {
|
|
3
|
+
export declare const execute: ({ additionalResolvers, body, introspection, resolverWrapper, ...ctx }: {
|
|
4
4
|
additionalResolvers?: IResolvers<any, any>;
|
|
5
5
|
introspection?: boolean;
|
|
6
6
|
body: any;
|
|
7
|
+
resolverWrapper?: (resolver: IFieldResolver<unknown, unknown, unknown, unknown>) => IFieldResolver<unknown, unknown, unknown, unknown>;
|
|
7
8
|
} & Omit<Context, "document">) => Promise<import("graphql").ExecutionResult<import("graphql/jsutils/ObjMap").ObjMap<unknown>, import("graphql/jsutils/ObjMap").ObjMap<unknown>>>;
|
package/dist/esm/api/execute.js
CHANGED
|
@@ -1,14 +1,21 @@
|
|
|
1
1
|
import { makeExecutableSchema } from '@graphql-tools/schema';
|
|
2
2
|
import { Source, execute as graphqlExecute, parse, specifiedRules, validate } from 'graphql';
|
|
3
|
+
import isFunction from 'lodash/isFunction';
|
|
4
|
+
import mapValues from 'lodash/mapValues';
|
|
3
5
|
import merge from 'lodash/merge';
|
|
4
6
|
import { generate, get, getResolvers } from '..';
|
|
5
7
|
import { noIntrospection } from '../utils/rules';
|
|
6
|
-
export const execute = async ({ additionalResolvers, body, introspection = false, ...ctx }) => {
|
|
8
|
+
export const execute = async ({ additionalResolvers, body, introspection = false, resolverWrapper, ...ctx }) => {
|
|
7
9
|
const document = generate(ctx.models);
|
|
8
|
-
|
|
10
|
+
let resolvers = merge(getResolvers(ctx.models), additionalResolvers);
|
|
11
|
+
if (resolverWrapper) {
|
|
12
|
+
resolvers = mapValues(resolvers, (type) => Object.getPrototypeOf(type) === Object.prototype
|
|
13
|
+
? mapValues(type, (resolver) => (isFunction(resolver) ? resolverWrapper(resolver) : resolver))
|
|
14
|
+
: type);
|
|
15
|
+
}
|
|
9
16
|
const schema = makeExecutableSchema({
|
|
10
17
|
typeDefs: document,
|
|
11
|
-
resolvers
|
|
18
|
+
resolvers,
|
|
12
19
|
});
|
|
13
20
|
const parsedDocument = parse(new Source(body.query, 'GraphQL request'));
|
|
14
21
|
const validationErrors = validate(schema, parsedDocument, introspection ? specifiedRules : [...specifiedRules, noIntrospection]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"execute.js","sourceRoot":"","sources":["../../../src/api/execute.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D,OAAO,EAAsB,MAAM,EAAE,OAAO,IAAI,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACjH,OAAO,KAAK,MAAM,cAAc,CAAC;AACjC,OAAO,EAAW,QAAQ,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,EAAE,EAC5B,mBAAmB,EACnB,IAAI,EACJ,aAAa,GAAG,KAAK,EACrB,GAAG,GAAG,
|
|
1
|
+
{"version":3,"file":"execute.js","sourceRoot":"","sources":["../../../src/api/execute.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D,OAAO,EAAsB,MAAM,EAAE,OAAO,IAAI,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACjH,OAAO,UAAU,MAAM,mBAAmB,CAAC;AAC3C,OAAO,SAAS,MAAM,kBAAkB,CAAC;AACzC,OAAO,KAAK,MAAM,cAAc,CAAC;AACjC,OAAO,EAAW,QAAQ,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,EAAE,EAC5B,mBAAmB,EACnB,IAAI,EACJ,aAAa,GAAG,KAAK,EACrB,eAAe,EACf,GAAG,GAAG,EAQqB,EAAE,EAAE;IAC/B,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACtC,IAAI,SAAS,GAAG,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,mBAAmB,CAAC,CAAC;IACrE,IAAI,eAAe,EAAE,CAAC;QACpB,SAAS,GAAG,SAAS,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,CACxC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,SAAS;YAC9C,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC9F,CAAC,CAAC,IAAI,CACT,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,oBAAoB,CAAC;QAClC,QAAQ,EAAE,QAAQ;QAClB,SAAS;KACV,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAExE,MAAM,gBAAgB,GAAG,QAAQ,CAC/B,MAAM,EACN,cAAc,EACd,aAAa,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG,cAAc,EAAE,eAAe,CAAC,CACtE,CAAC;IAEF,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;IACtC,CAAC;IAED,MAAM,YAAY,GAAY;QAC5B,QAAQ;QACR,GAAG,GAAG;KACP,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC;QAClC,MAAM;QACN,QAAQ,EAAE,cAAc;QACxB,YAAY;QACZ,cAAc,EAAE,IAAI,CAAC,SAAS;QAC9B,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,aAAa,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAwB,EAAE,EAAE;YAC/D,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;YACrC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YAEzB,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvD,CAAC;KACF,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@smartive/graphql-magic",
|
|
3
|
-
"version": "21.0.
|
|
3
|
+
"version": "21.1.0-next.2",
|
|
4
4
|
"description": "",
|
|
5
5
|
"source": "src/index.ts",
|
|
6
6
|
"type": "module",
|
|
@@ -75,7 +75,7 @@
|
|
|
75
75
|
"create-ts-index": "1.14.0",
|
|
76
76
|
"del-cli": "6.0.0",
|
|
77
77
|
"esbuild": "0.25.11",
|
|
78
|
-
"eslint": "9.
|
|
78
|
+
"eslint": "9.38.0",
|
|
79
79
|
"jest": "29.7.0",
|
|
80
80
|
"mock-knex": "0.4.13",
|
|
81
81
|
"prettier": "3.6.2",
|
package/src/api/execute.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { makeExecutableSchema } from '@graphql-tools/schema';
|
|
2
|
-
import { IResolvers } from '@graphql-tools/utils';
|
|
2
|
+
import { IFieldResolver, IResolvers } from '@graphql-tools/utils';
|
|
3
3
|
import { GraphQLResolveInfo, Source, execute as graphqlExecute, parse, specifiedRules, validate } from 'graphql';
|
|
4
|
+
import isFunction from 'lodash/isFunction';
|
|
5
|
+
import mapValues from 'lodash/mapValues';
|
|
4
6
|
import merge from 'lodash/merge';
|
|
5
7
|
import { Context, generate, get, getResolvers } from '..';
|
|
6
8
|
import { noIntrospection } from '../utils/rules';
|
|
@@ -9,19 +11,29 @@ export const execute = async ({
|
|
|
9
11
|
additionalResolvers,
|
|
10
12
|
body,
|
|
11
13
|
introspection = false,
|
|
14
|
+
resolverWrapper,
|
|
12
15
|
...ctx
|
|
13
16
|
}: {
|
|
14
17
|
additionalResolvers?: IResolvers<any, any>;
|
|
15
18
|
introspection?: boolean;
|
|
16
19
|
body: any;
|
|
20
|
+
resolverWrapper?: (
|
|
21
|
+
resolver: IFieldResolver<unknown, unknown, unknown, unknown>,
|
|
22
|
+
) => IFieldResolver<unknown, unknown, unknown, unknown>;
|
|
17
23
|
} & Omit<Context, 'document'>) => {
|
|
18
24
|
const document = generate(ctx.models);
|
|
19
|
-
|
|
20
|
-
|
|
25
|
+
let resolvers = merge(getResolvers(ctx.models), additionalResolvers);
|
|
26
|
+
if (resolverWrapper) {
|
|
27
|
+
resolvers = mapValues(resolvers, (type) =>
|
|
28
|
+
Object.getPrototypeOf(type) === Object.prototype
|
|
29
|
+
? mapValues(type, (resolver) => (isFunction(resolver) ? resolverWrapper(resolver) : resolver))
|
|
30
|
+
: type,
|
|
31
|
+
);
|
|
32
|
+
}
|
|
21
33
|
|
|
22
34
|
const schema = makeExecutableSchema({
|
|
23
35
|
typeDefs: document,
|
|
24
|
-
resolvers
|
|
36
|
+
resolvers,
|
|
25
37
|
});
|
|
26
38
|
|
|
27
39
|
const parsedDocument = parse(new Source(body.query, 'GraphQL request'));
|