@smartive/graphql-magic 8.1.3 → 9.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.
package/CHANGELOG.md CHANGED
@@ -1,6 +1 @@
1
- ## [8.1.3](https://github.com/smartive/graphql-magic/compare/v8.1.2...v8.1.3) (2023-09-06)
2
-
3
-
4
- ### Bug Fixes
5
-
6
- * Merge resolvers ([#59](https://github.com/smartive/graphql-magic/issues/59)) ([6d0f0c1](https://github.com/smartive/graphql-magic/commit/6d0f0c1228eff0da992435b7aa6e7cf00d0c283f))
1
+ # [9.0.0](https://github.com/smartive/graphql-magic/compare/v8.1.3...v9.0.0) (2023-09-06)
package/dist/bin/gqm.cjs CHANGED
@@ -893,15 +893,6 @@ var import_flatMap2 = __toESM(require("lodash/flatMap"), 1);
893
893
 
894
894
  // src/schema/utils.ts
895
895
  var import_luxon = require("luxon");
896
-
897
- // src/values.ts
898
- var Enum = class {
899
- constructor(value2) {
900
- this.value = value2;
901
- }
902
- };
903
-
904
- // src/schema/utils.ts
905
896
  var document = (definitions) => ({
906
897
  kind: "Document",
907
898
  definitions
@@ -1007,9 +998,9 @@ var value = (val = null) => val === null ? {
1007
998
  } : typeof val === "string" ? {
1008
999
  kind: "StringValue",
1009
1000
  value: val
1010
- } : val instanceof Enum ? {
1001
+ } : val instanceof Symbol ? {
1011
1002
  kind: "EnumValue",
1012
- value: val.value
1003
+ value: val.description
1013
1004
  } : Array.isArray(val) ? {
1014
1005
  kind: "ListValue",
1015
1006
  values: val.map(value)
@@ -1485,16 +1476,23 @@ var import_ts_morph2 = require("ts-morph");
1485
1476
 
1486
1477
  // src/bin/gqm/visitor.ts
1487
1478
  var import_ts_morph = require("ts-morph");
1488
- var visit = (node, context, visitor2) => {
1489
- const kind = node?.getKind();
1490
- if (kind in visitor2) {
1491
- return visitor2[kind](node.asKindOrThrow(kind), context);
1479
+ var visit = (node, context, visitor) => {
1480
+ if (!node) {
1481
+ if (visitor.undefined) {
1482
+ return visitor.undefined();
1483
+ }
1484
+ console.trace();
1485
+ throw new Error(`Cannot handle undefined node.`);
1486
+ }
1487
+ const kind = node.getKind();
1488
+ const func = visitor[kind];
1489
+ if (func) {
1490
+ return func(node, context);
1492
1491
  }
1493
- if ("unknown" in visitor2) {
1494
- return visitor2.unknown(node);
1492
+ if (visitor.unknown) {
1493
+ return visitor.unknown(node);
1495
1494
  }
1496
1495
  console.error(node.getText());
1497
- console.error(node.getParent().getText());
1498
1496
  throw new Error(
1499
1497
  `Cannot handle kind ${get(
1500
1498
  Object.entries(import_ts_morph.SyntaxKind).find(([, val]) => val === kind),
@@ -1504,8 +1502,8 @@ var visit = (node, context, visitor2) => {
1504
1502
  };
1505
1503
 
1506
1504
  // src/bin/gqm/static-eval.ts
1507
- var staticEval = (node, context) => visit(node, context, visitor);
1508
- var visitor = {
1505
+ var staticEval = (node, context) => visit(node, context, VISITOR);
1506
+ var VISITOR = {
1509
1507
  undefined: () => void 0,
1510
1508
  [import_ts_morph2.SyntaxKind.VariableDeclaration]: (node, context) => staticEval(node.getInitializer(), context),
1511
1509
  [import_ts_morph2.SyntaxKind.ArrayLiteralExpression]: (node, context) => {
@@ -1541,6 +1539,8 @@ var visitor = {
1541
1539
  return void 0;
1542
1540
  case "process":
1543
1541
  return process;
1542
+ case "Symbol":
1543
+ return Symbol;
1544
1544
  }
1545
1545
  const definitionNodes = node.getDefinitionNodes();
1546
1546
  if (!definitionNodes.length) {
@@ -1554,6 +1554,7 @@ var visitor = {
1554
1554
  [import_ts_morph2.SyntaxKind.TrueKeyword]: () => true,
1555
1555
  [import_ts_morph2.SyntaxKind.FalseKeyword]: () => false,
1556
1556
  [import_ts_morph2.SyntaxKind.NumericLiteral]: (node) => node.getLiteralValue(),
1557
+ [import_ts_morph2.SyntaxKind.BigIntLiteral]: (node) => node.getLiteralValue(),
1557
1558
  [import_ts_morph2.SyntaxKind.CallExpression]: (node, context) => {
1558
1559
  const method = staticEval(node.getExpression(), context);
1559
1560
  const args2 = node.getArguments().map((arg) => staticEval(arg, context));
@@ -1679,7 +1680,8 @@ var visitor = {
1679
1680
  const argument = staticEval(node.getArgumentExpression(), context);
1680
1681
  return target[argument];
1681
1682
  },
1682
- [import_ts_morph2.SyntaxKind.NoSubstitutionTemplateLiteral]: (node) => node.getLiteralValue()
1683
+ [import_ts_morph2.SyntaxKind.NoSubstitutionTemplateLiteral]: (node) => node.getLiteralValue(),
1684
+ [import_ts_morph2.SyntaxKind.NullKeyword]: () => null
1683
1685
  };
1684
1686
 
1685
1687
  // src/bin/gqm/utils.ts
@@ -30,7 +30,6 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
30
30
  var src_exports = {};
31
31
  __export(src_exports, {
32
32
  AliasGenerator: () => AliasGenerator,
33
- Enum: () => Enum,
34
33
  ForbiddenError: () => ForbiddenError,
35
34
  GraphQLError: () => GraphQLError,
36
35
  ID_ALIAS: () => ID_ALIAS,
@@ -2374,15 +2373,6 @@ var import_flatMap2 = __toESM(require("lodash/flatMap"), 1);
2374
2373
 
2375
2374
  // src/schema/utils.ts
2376
2375
  var import_luxon = require("luxon");
2377
-
2378
- // src/values.ts
2379
- var Enum = class {
2380
- constructor(value2) {
2381
- this.value = value2;
2382
- }
2383
- };
2384
-
2385
- // src/schema/utils.ts
2386
2376
  var document = (definitions) => ({
2387
2377
  kind: "Document",
2388
2378
  definitions
@@ -2509,9 +2499,9 @@ var value = (val = null) => val === null ? {
2509
2499
  } : typeof val === "string" ? {
2510
2500
  kind: "StringValue",
2511
2501
  value: val
2512
- } : val instanceof Enum ? {
2502
+ } : val instanceof Symbol ? {
2513
2503
  kind: "EnumValue",
2514
- value: val.value
2504
+ value: val.description
2515
2505
  } : Array.isArray(val) ? {
2516
2506
  kind: "ListValue",
2517
2507
  values: val.map(value)
@@ -2757,7 +2747,6 @@ var printSchemaFromModels = (models) => printSchema((0, import_graphql5.buildAST
2757
2747
  // Annotate the CommonJS export names for ESM import in node:
2758
2748
  0 && (module.exports = {
2759
2749
  AliasGenerator,
2760
- Enum,
2761
2750
  ForbiddenError,
2762
2751
  GraphQLError,
2763
2752
  ID_ALIAS,
@@ -1,5 +1,4 @@
1
1
  import { DateTime } from 'luxon';
2
- import { Enum } from '../values';
3
2
  export const document = (definitions) => ({
4
3
  kind: 'Document',
5
4
  definitions,
@@ -124,10 +123,10 @@ export const value = (val = null) => val === null
124
123
  kind: 'StringValue',
125
124
  value: val,
126
125
  }
127
- : val instanceof Enum
126
+ : val instanceof Symbol
128
127
  ? {
129
128
  kind: 'EnumValue',
130
- value: val.value,
129
+ value: val.description,
131
130
  }
132
131
  : Array.isArray(val)
133
132
  ? {
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/schema/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/schema/utils.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,4 @@
1
1
  import { DateTime } from 'luxon';
2
- export declare class Enum {
3
- value: string;
4
- constructor(value: string);
5
- }
6
2
  export type BasicValue = undefined | null | boolean | string | number | DateTime;
7
3
  export type Value = any;
8
4
  export type Values = {
@@ -1,7 +1,2 @@
1
- export class Enum {
2
- value;
3
- constructor(value) {
4
- this.value = value;
5
- }
6
- }
1
+ export {};
7
2
  //# sourceMappingURL=values.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"values.js","sourceRoot":"","sources":["../../src/values.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,IAAI;IACI;IAAnB,YAAmB,KAAa;QAAb,UAAK,GAAL,KAAK,CAAQ;IAAG,CAAC;CACrC"}
1
+ {"version":3,"file":"values.js","sourceRoot":"","sources":["../../src/values.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smartive/graphql-magic",
3
- "version": "8.1.3",
3
+ "version": "9.0.0",
4
4
  "description": "",
5
5
  "source": "src/index.ts",
6
6
  "type": "module",
@@ -13,10 +13,10 @@ import {
13
13
  } from 'ts-morph';
14
14
  import { Visitor, visit } from './visitor';
15
15
 
16
- export const staticEval = (node: Node, context: Dictionary<unknown>) =>
17
- visit<unknown, Dictionary<unknown>>(node, context, visitor);
16
+ export const staticEval = (node: Node | undefined, context: Dictionary<unknown>) =>
17
+ visit<unknown, Dictionary<unknown>>(node, context, VISITOR);
18
18
 
19
- const visitor: Visitor<unknown, Dictionary<unknown>> = {
19
+ const VISITOR: Visitor<unknown, Dictionary<unknown>> = {
20
20
  undefined: () => undefined,
21
21
  [SyntaxKind.VariableDeclaration]: (node, context) => staticEval(node.getInitializer(), context),
22
22
  [SyntaxKind.ArrayLiteralExpression]: (node, context) => {
@@ -52,6 +52,8 @@ const visitor: Visitor<unknown, Dictionary<unknown>> = {
52
52
  return undefined;
53
53
  case 'process':
54
54
  return process;
55
+ case 'Symbol':
56
+ return Symbol;
55
57
  }
56
58
  const definitionNodes = node.getDefinitionNodes();
57
59
  if (!definitionNodes.length) {
@@ -68,6 +70,7 @@ const visitor: Visitor<unknown, Dictionary<unknown>> = {
68
70
  [SyntaxKind.TrueKeyword]: () => true,
69
71
  [SyntaxKind.FalseKeyword]: () => false,
70
72
  [SyntaxKind.NumericLiteral]: (node) => node.getLiteralValue(),
73
+ [SyntaxKind.BigIntLiteral]: (node) => node.getLiteralValue(),
71
74
  [SyntaxKind.CallExpression]: (node, context) => {
72
75
  const method = staticEval(node.getExpression(), context) as (...args: unknown[]) => unknown;
73
76
  const args = node.getArguments().map((arg) => staticEval(arg, context));
@@ -200,4 +203,5 @@ const visitor: Visitor<unknown, Dictionary<unknown>> = {
200
203
  return target[argument];
201
204
  },
202
205
  [SyntaxKind.NoSubstitutionTemplateLiteral]: (node) => node.getLiteralValue(),
206
+ [SyntaxKind.NullKeyword]: () => null,
203
207
  };
@@ -1,25 +1,33 @@
1
- import { KindToNodeMappings, Node, SyntaxKind } from 'ts-morph';
1
+ import { ImplementedKindToNodeMappings, Node, SyntaxKind } from 'ts-morph';
2
2
  import { get } from '../..';
3
3
 
4
4
  export type Visitor<T, C> = {
5
5
  undefined?: () => T;
6
6
  unknown?: (node: Node) => T;
7
7
  } & {
8
- [kind in keyof KindToNodeMappings]?: (node: KindToNodeMappings[kind], context: C) => T;
8
+ [kind in keyof ImplementedKindToNodeMappings]?: (node: ImplementedKindToNodeMappings[kind], context: C) => T;
9
9
  };
10
10
 
11
11
  export const visit = <T, C>(node: Node | undefined, context: C, visitor: Visitor<T, C>) => {
12
- const kind: undefined | keyof KindToNodeMappings = node?.getKind();
13
- if (kind in visitor) {
14
- return visitor[kind](node.asKindOrThrow(kind), context);
12
+ if (!node) {
13
+ if (visitor.undefined) {
14
+ return visitor.undefined();
15
+ }
16
+ console.trace();
17
+ throw new Error(`Cannot handle undefined node.`);
15
18
  }
16
19
 
17
- if ('unknown' in visitor) {
20
+ const kind = node.getKind();
21
+ const func = visitor[kind];
22
+ if (func) {
23
+ return func(node, context);
24
+ }
25
+
26
+ if (visitor.unknown) {
18
27
  return visitor.unknown(node);
19
28
  }
20
29
 
21
30
  console.error(node.getText());
22
- console.error(node.getParent().getText());
23
31
  throw new Error(
24
32
  `Cannot handle kind ${get(
25
33
  Object.entries(SyntaxKind).find(([, val]) => val === kind),
@@ -22,7 +22,7 @@ import {
22
22
  ValueNode,
23
23
  } from 'graphql';
24
24
  import { DateTime } from 'luxon';
25
- import { Directive, Enum, Value, Values } from '../values';
25
+ import { Directive, Value, Values } from '../values';
26
26
 
27
27
  export type Field = {
28
28
  name: string;
@@ -206,10 +206,10 @@ export const value = (val: Value = null): ValueNode =>
206
206
  kind: 'StringValue',
207
207
  value: val,
208
208
  }
209
- : val instanceof Enum
209
+ : val instanceof Symbol
210
210
  ? {
211
211
  kind: 'EnumValue',
212
- value: val.value,
212
+ value: val.description,
213
213
  }
214
214
  : Array.isArray(val)
215
215
  ? {
package/src/values.ts CHANGED
@@ -1,12 +1,8 @@
1
1
  import { DateTime } from 'luxon';
2
2
 
3
- export class Enum {
4
- constructor(public value: string) {}
5
- }
6
-
7
3
  export type BasicValue = undefined | null | boolean | string | number | DateTime;
8
4
 
9
- export type Value = any; // BasicValue | Enum | Enum[] | Record<string, Value> | Value[];
5
+ export type Value = any; // BasicValue | Symbol | Symbol[] | Record<string, Value> | Value[];
10
6
 
11
7
  export type Values = {
12
8
  name: string;