@smartive/graphql-magic 4.0.0 → 5.0.0

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.
Files changed (79) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/README.md +46 -0
  3. package/dist/cjs/index.cjs +64 -26
  4. package/dist/esm/api/execute.d.ts +10 -0
  5. package/dist/esm/api/execute.js +32 -0
  6. package/dist/esm/api/execute.js.map +1 -0
  7. package/dist/esm/api/index.d.ts +1 -0
  8. package/dist/esm/api/index.js +3 -0
  9. package/dist/esm/api/index.js.map +1 -0
  10. package/dist/esm/client/queries.d.ts +1 -1
  11. package/dist/esm/client/queries.js +1 -1
  12. package/dist/esm/client/queries.js.map +1 -1
  13. package/dist/esm/context.d.ts +1 -4
  14. package/dist/esm/generate/generate.d.ts +1 -1
  15. package/dist/esm/generate/generate.js +1 -1
  16. package/dist/esm/generate/generate.js.map +1 -1
  17. package/dist/esm/generate/mutations.d.ts +1 -1
  18. package/dist/esm/index.d.ts +2 -2
  19. package/dist/esm/index.js +2 -2
  20. package/dist/esm/index.js.map +1 -1
  21. package/dist/esm/migrations/generate.d.ts +1 -1
  22. package/dist/esm/migrations/generate.js +1 -1
  23. package/dist/esm/migrations/generate.js.map +1 -1
  24. package/dist/esm/models/index.d.ts +2 -0
  25. package/dist/esm/models/index.js +4 -0
  26. package/dist/esm/models/index.js.map +1 -0
  27. package/dist/esm/{models.d.ts → models/models.d.ts} +4 -4
  28. package/dist/esm/{models.js.map → models/models.js.map} +1 -1
  29. package/dist/esm/{utils.d.ts → models/utils.d.ts} +8 -8
  30. package/dist/esm/models/utils.js.map +1 -0
  31. package/dist/esm/permissions/check.d.ts +1 -1
  32. package/dist/esm/permissions/check.js +1 -1
  33. package/dist/esm/permissions/check.js.map +1 -1
  34. package/dist/esm/permissions/generate.d.ts +1 -1
  35. package/dist/esm/permissions/generate.js +1 -1
  36. package/dist/esm/permissions/generate.js.map +1 -1
  37. package/dist/esm/resolvers/arguments.js +1 -1
  38. package/dist/esm/resolvers/arguments.js.map +1 -1
  39. package/dist/esm/resolvers/filters.js +1 -1
  40. package/dist/esm/resolvers/filters.js.map +1 -1
  41. package/dist/esm/resolvers/mutations.js +1 -1
  42. package/dist/esm/resolvers/mutations.js.map +1 -1
  43. package/dist/esm/resolvers/node.d.ts +1 -1
  44. package/dist/esm/resolvers/node.js +1 -1
  45. package/dist/esm/resolvers/node.js.map +1 -1
  46. package/dist/esm/resolvers/resolver.js +1 -1
  47. package/dist/esm/resolvers/resolver.js.map +1 -1
  48. package/dist/esm/resolvers/resolvers.d.ts +1 -1
  49. package/dist/esm/resolvers/resolvers.js +1 -1
  50. package/dist/esm/resolvers/resolvers.js.map +1 -1
  51. package/dist/esm/resolvers/utils.js +1 -1
  52. package/dist/esm/resolvers/utils.js.map +1 -1
  53. package/package.json +4 -4
  54. package/src/api/execute.ts +45 -0
  55. package/src/api/index.ts +3 -0
  56. package/src/client/queries.ts +2 -2
  57. package/src/context.ts +1 -3
  58. package/src/generate/generate.ts +2 -2
  59. package/src/generate/mutations.ts +1 -1
  60. package/src/index.ts +2 -2
  61. package/src/migrations/generate.ts +2 -2
  62. package/src/models/index.ts +4 -0
  63. package/src/{models.ts → models/models.ts} +4 -4
  64. package/src/permissions/check.ts +2 -2
  65. package/src/permissions/generate.ts +2 -2
  66. package/src/resolvers/arguments.ts +1 -1
  67. package/src/resolvers/filters.ts +1 -1
  68. package/src/resolvers/mutations.ts +2 -2
  69. package/src/resolvers/node.ts +2 -2
  70. package/src/resolvers/resolver.ts +1 -1
  71. package/src/resolvers/resolvers.ts +2 -2
  72. package/src/resolvers/utils.ts +1 -1
  73. package/tests/unit/resolve.spec.ts +4 -19
  74. package/tests/utils/models.ts +1 -1
  75. package/tests/utils/server.ts +13 -33
  76. package/dist/esm/utils.js.map +0 -1
  77. /package/dist/esm/{models.js → models/models.js} +0 -0
  78. /package/dist/esm/{utils.js → models/utils.js} +0 -0
  79. /package/src/{utils.ts → models/utils.ts} +0 -0
package/src/index.ts CHANGED
@@ -1,13 +1,13 @@
1
1
  // created from 'create-ts-index'
2
2
 
3
+ export * from './api';
3
4
  export * from './client';
4
5
  export * from './db';
5
6
  export * from './generate';
6
7
  export * from './migrations';
8
+ export * from './models';
7
9
  export * from './permissions';
8
10
  export * from './resolvers';
9
11
  export * from './context';
10
12
  export * from './errors';
11
- export * from './models';
12
- export * from './utils';
13
13
  export * from './values';
@@ -4,8 +4,8 @@ import { SchemaInspector } from 'knex-schema-inspector';
4
4
  import { Column } from 'knex-schema-inspector/dist/types/column';
5
5
  import { SchemaInspector as SchemaInspectorType } from 'knex-schema-inspector/dist/types/schema-inspector';
6
6
  import lowerFirst from 'lodash/lowerFirst';
7
- import { EnumModel, Model, ModelField, Models, RawModels } from '../models';
8
- import { get, getModels, isEnumModel, summonByName, typeToField } from '../utils';
7
+ import { EnumModel, Model, ModelField, Models, RawModels } from '../models/models';
8
+ import { get, getModels, isEnumModel, summonByName, typeToField } from '../models/utils';
9
9
  import { Value } from '../values';
10
10
 
11
11
  type Callbacks = (() => void)[];
@@ -0,0 +1,4 @@
1
+ // created from 'create-ts-index'
2
+
3
+ export * from './models';
4
+ export * from './utils';
@@ -1,8 +1,8 @@
1
1
  import { DateTime } from 'luxon';
2
- import { Field } from '.';
3
- import type { Context } from './context';
4
- import type { OrderBy } from './resolvers/arguments';
5
- import type { Value } from './values';
2
+ import { Field } from '..';
3
+ import type { Context } from '../context';
4
+ import type { OrderBy } from '../resolvers/arguments';
5
+ import type { Value } from '../values';
6
6
 
7
7
  export type RawModels = RawModel[];
8
8
 
@@ -1,9 +1,9 @@
1
1
  import { Knex } from 'knex';
2
2
  import { FullContext } from '../context';
3
3
  import { NotFoundError, PermissionError } from '../errors';
4
- import { Model } from '../models';
4
+ import { Model } from '../models/models';
5
+ import { get, getModelPlural, isRelation, summonByName } from '../models/utils';
5
6
  import { AliasGenerator, hash, ors } from '../resolvers/utils';
6
- import { get, getModelPlural, isRelation, summonByName } from '../utils';
7
7
  import { BasicValue } from '../values';
8
8
  import { PermissionAction, PermissionLink, PermissionStack } from './generate';
9
9
 
@@ -1,5 +1,5 @@
1
- import { Models } from '../models';
2
- import { isRelation, summonByName } from '../utils';
1
+ import { Models } from '../models/models';
2
+ import { isRelation, summonByName } from '../models/utils';
3
3
 
4
4
  export type PermissionAction = 'READ' | 'CREATE' | 'UPDATE' | 'DELETE' | 'RESTORE' | 'LINK';
5
5
 
@@ -1,6 +1,6 @@
1
1
  import type { GraphQLObjectType, GraphQLSchema, TypeDefinitionNode, TypeNode, ValueNode } from 'graphql';
2
2
  import { Kind } from 'graphql';
3
- import { summonByKey } from '../utils';
3
+ import { summonByKey } from '../models/utils';
4
4
  import { Value } from '../values';
5
5
  import { FieldResolverNode } from './node';
6
6
  import { Maybe, VariableValues } from './utils';
@@ -1,6 +1,6 @@
1
1
  import { Knex } from 'knex';
2
2
  import { ForbiddenError, UserInputError } from '../errors';
3
- import { get, summonByName } from '../utils';
3
+ import { get, summonByName } from '../models/utils';
4
4
  import { OrderBy, Where, normalizeArguments } from './arguments';
5
5
  import { FieldResolverNode, WhereNode } from './node';
6
6
  import { Joins, Ops, addJoin, apply, ors } from './utils';
@@ -3,9 +3,9 @@ import { DateTime } from 'luxon';
3
3
  import { v4 as uuid } from 'uuid';
4
4
  import { Context, FullContext } from '../context';
5
5
  import { ForbiddenError, GraphQLError } from '../errors';
6
- import { Entity, Model, ModelField } from '../models';
6
+ import { Entity, Model, ModelField } from '../models/models';
7
+ import { get, isEnumList, it, summonByName, typeToField } from '../models/utils';
7
8
  import { applyPermissions, checkCanWrite, getEntityToMutate } from '../permissions/check';
8
- import { get, isEnumList, it, summonByName, typeToField } from '../utils';
9
9
  import { resolve } from './resolver';
10
10
  import { AliasGenerator } from './utils';
11
11
 
@@ -8,8 +8,8 @@ import type {
8
8
  } from 'graphql';
9
9
 
10
10
  import { FullContext } from '../context';
11
- import { Model } from '../models';
12
- import { get, isRawObjectModel, summonByKey, summonByName } from '../utils';
11
+ import { Model } from '../models/models';
12
+ import { get, isRawObjectModel, summonByKey, summonByName } from '../models/utils';
13
13
  import {
14
14
  getFragmentTypeName,
15
15
  getNameOrAlias,
@@ -4,9 +4,9 @@ import cloneDeep from 'lodash/cloneDeep';
4
4
  import flatMap from 'lodash/flatMap';
5
5
  import { Context, FullContext } from '../context';
6
6
  import { NotFoundError, PermissionError } from '../errors';
7
+ import { get, summonByKey } from '../models/utils';
7
8
  import { applyPermissions } from '../permissions/check';
8
9
  import { PermissionStack } from '../permissions/generate';
9
- import { get, summonByKey } from '../utils';
10
10
  import { applyFilters } from './filters';
11
11
  import {
12
12
  FieldResolverNode,
@@ -1,5 +1,5 @@
1
- import { Models } from '../models';
2
- import { getModelPluralField, merge, typeToField } from '../utils';
1
+ import { Models } from '../models/models';
2
+ import { getModelPluralField, merge, typeToField } from '../models/utils';
3
3
  import { mutationResolver } from './mutations';
4
4
  import { queryResolver } from './resolver';
5
5
 
@@ -12,7 +12,7 @@ import type {
12
12
  import { Kind } from 'graphql';
13
13
  import { Knex } from 'knex';
14
14
  import { UserInputError } from '../errors';
15
- import { get, it } from '../utils';
15
+ import { get, it } from '../models/utils';
16
16
  import { Value } from '../values';
17
17
  import { FieldResolverNode } from './node';
18
18
 
@@ -1,14 +1,11 @@
1
- import { makeExecutableSchema } from '@graphql-tools/schema';
2
- import { execute, parse, Source } from 'graphql';
3
1
  import knex from 'knex';
4
2
  import { DateTime } from 'luxon';
3
+ import { execute } from '../../src';
5
4
  import { gql } from '../../src/client/gql';
6
- import { Context } from '../../src/context';
7
- import { generate } from '../../src/generate';
8
5
  import { getResolvers } from '../../src/resolvers';
9
6
  import { models, permissions, rawModels } from '../utils/models';
10
7
 
11
- const test = async (operationName: string, query: string, variableValues: object, responses: unknown[]) => {
8
+ const test = async (operationName: string, query: string, variables: object, responses: unknown[]) => {
12
9
  const knexInstance = knex({
13
10
  client: 'postgresql',
14
11
  });
@@ -25,11 +22,8 @@ const test = async (operationName: string, query: string, variableValues: object
25
22
  });
26
23
 
27
24
  const user = await knexInstance('User').where({ id: 1 }).first();
28
- const typeDefs = generate(rawModels);
29
- const contextValue: Context = {
30
- req: null as any,
25
+ const result = await execute({
31
26
  knex: knexInstance,
32
- document: typeDefs,
33
27
  locale: 'en',
34
28
  locales: ['en'],
35
29
  user,
@@ -37,16 +31,7 @@ const test = async (operationName: string, query: string, variableValues: object
37
31
  models,
38
32
  permissions,
39
33
  now: DateTime.fromISO('2020-01-01T00:00:00.000Z'),
40
- };
41
- const result = await execute({
42
- schema: makeExecutableSchema({
43
- typeDefs,
44
- resolvers: getResolvers(models),
45
- }),
46
- document: parse(new Source(query, 'GraphQL request')),
47
- contextValue,
48
- variableValues,
49
- operationName,
34
+ body: { operationName, query, variables }
50
35
  });
51
36
 
52
37
  expect(result).toMatchSnapshot();
@@ -1,6 +1,6 @@
1
1
  import { RawModels } from '../../src/models';
2
+ import { getModels } from '../../src/models/utils';
2
3
  import { generatePermissions, PermissionsConfig } from '../../src/permissions/generate';
3
- import { getModels } from '../../src/utils';
4
4
 
5
5
  export const rawModels: RawModels = [
6
6
  {
@@ -1,12 +1,9 @@
1
- import { makeExecutableSchema } from '@graphql-tools/schema';
2
- import { execute, parse, Source, TypedQueryDocumentNode } from 'graphql';
1
+ import { TypedQueryDocumentNode } from 'graphql';
3
2
  import graphqlRequest, { RequestDocument, Variables } from 'graphql-request';
4
- import { createServer, RequestListener } from 'http';
3
+ import { RequestListener, createServer } from 'http';
5
4
  import { Knex } from 'knex';
6
5
  import { DateTime } from 'luxon';
7
- import { Context } from '../../src/context';
8
- import { generate } from '../../src/generate';
9
- import { getResolvers } from '../../src/resolvers';
6
+ import { execute } from '../../src';
10
7
  import { getKnex } from './database/knex';
11
8
  import { setupSchema } from './database/schema';
12
9
  import { ADMIN_ID, setupSeed } from './database/seed';
@@ -50,25 +47,7 @@ export const withServer = async (
50
47
 
51
48
  handler = async (req, res) => {
52
49
  const user = await knex('User').where({ id: ADMIN_ID }).first();
53
-
54
- const typeDefs = generate(rawModels);
55
- const contextValue: Context = {
56
- req,
57
- knex,
58
- document: typeDefs,
59
- locale: 'en',
60
- locales: ['en'],
61
- user,
62
- rawModels,
63
- models,
64
- permissions,
65
- now: DateTime.fromISO('2020-01-01T00:00:00.000Z'),
66
- };
67
- const {
68
- query,
69
- variables: variableValues,
70
- operationName,
71
- } = await new Promise<any>((res) => {
50
+ const body = await new Promise<any>((res) => {
72
51
  const chunks: any = [];
73
52
  req
74
53
  .on('data', (chunk) => {
@@ -79,14 +58,15 @@ export const withServer = async (
79
58
  });
80
59
  });
81
60
  const result = await execute({
82
- schema: makeExecutableSchema({
83
- typeDefs,
84
- resolvers: getResolvers(models),
85
- }),
86
- document: parse(new Source(query, 'GraphQL request')),
87
- contextValue,
88
- variableValues,
89
- operationName,
61
+ knex,
62
+ locale: 'en',
63
+ locales: ['en'],
64
+ user,
65
+ rawModels,
66
+ models,
67
+ permissions,
68
+ now: DateTime.fromISO('2020-01-01T00:00:00.000Z'),
69
+ body,
90
70
  });
91
71
 
92
72
  res.writeHead(200, { 'Content-Type': 'application/json' });
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"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"}
File without changes
File without changes
File without changes