@newmo/graphql-fake-server 0.9.3 → 0.9.4

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/dist/esm/cli.js CHANGED
File without changes
@@ -0,0 +1,15 @@
1
+ import type { GraphQLSchema } from "graphql/index.js";
2
+ import { type LogLevel } from "./logger.js";
3
+ export type MockObject = Record<string, unknown>;
4
+ export type GenerateMockOptions = {
5
+ schema: GraphQLSchema;
6
+ maxFieldRecursionDepth?: number | undefined;
7
+ logLevel?: LogLevel | undefined;
8
+ };
9
+ /**
10
+ * Create mock object from schema
11
+ * It supports @example directive
12
+ * @param options
13
+ */
14
+ export declare const createMock: (options: GenerateMockOptions) => Promise<MockObject>;
15
+ //# sourceMappingURL=createMock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createMock.d.ts","sourceRoot":"","sources":["../../src/createMock.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,KAAK,QAAQ,EAAgB,MAAM,aAAa,CAAC;AAE1D,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACjD,MAAM,MAAM,mBAAmB,GAAG;IAC9B,MAAM,EAAE,aAAa,CAAC;IACtB,sBAAsB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C,QAAQ,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;CACnC,CAAC;AAIF;;;;GAIG;AACH,eAAO,MAAM,UAAU,YAAmB,mBAAmB,KAAG,QAAQ,UAAU,CA6BjF,CAAC"}
@@ -0,0 +1,40 @@
1
+ import vm from "node:vm";
2
+ import { generateCode, getTypeInfos, normalizeConfig } from "@newmo/graphql-fake-core";
3
+ import { createLogger } from "./logger.js";
4
+ const cloneAsJSON = (obj) => {
5
+ return JSON.parse(JSON.stringify(obj));
6
+ };
7
+ /**
8
+ * Create mock object from schema
9
+ * It supports @example directive
10
+ * @param options
11
+ */
12
+ export const createMock = async (options) => {
13
+ const logger = createLogger(options.logLevel);
14
+ try {
15
+ const normalizedConfig = normalizeConfig({
16
+ maxFieldRecursionDepth: options.maxFieldRecursionDepth ?? 3,
17
+ });
18
+ const typeInfos = getTypeInfos(normalizedConfig, options.schema);
19
+ console.log(JSON.stringify(typeInfos, null, 4));
20
+ const code = generateCode({
21
+ ...normalizedConfig,
22
+ outputType: "commonjs",
23
+ }, typeInfos);
24
+ logger.debug("Generated code:");
25
+ logger.debug(code);
26
+ // execute code in vm and get all exports
27
+ const exports = {};
28
+ vm.runInNewContext(code, { exports });
29
+ // Apollo Server does not support Function type in mock object
30
+ const plainObject = cloneAsJSON(exports);
31
+ logger.debug("Exports:");
32
+ logger.debug(JSON.stringify(plainObject, null, 2));
33
+ return plainObject;
34
+ }
35
+ catch (error) {
36
+ logger.error(error);
37
+ process.exit(1);
38
+ }
39
+ };
40
+ //# sourceMappingURL=createMock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createMock.js","sourceRoot":"","sources":["../../src/createMock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAEvF,OAAO,EAAiB,YAAY,EAAE,MAAM,aAAa,CAAC;AAQ1D,MAAM,WAAW,GAAG,CAAC,GAAY,EAAE,EAAE;IACjC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3C,CAAC,CAAC;AACF;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAAE,OAA4B,EAAuB,EAAE;IAClF,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC9C,IAAI,CAAC;QACD,MAAM,gBAAgB,GAAG,eAAe,CAAC;YACrC,sBAAsB,EAAE,OAAO,CAAC,sBAAsB,IAAI,CAAC;SAC9D,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,YAAY,CAAC,gBAAgB,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QACjE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAChD,MAAM,IAAI,GAAG,YAAY,CACrB;YACI,GAAG,gBAAgB;YACnB,UAAU,EAAE,UAAU;SACzB,EACD,SAAS,CACZ,CAAC;QACF,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAChC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACnB,yCAAyC;QACzC,MAAM,OAAO,GAAG,EAAE,CAAC;QACnB,EAAE,CAAC,eAAe,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;QACtC,8DAA8D;QAC9D,MAAM,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;QACzC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACzB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACnD,OAAO,WAAW,CAAC;IACvB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACL,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@newmo/graphql-fake-server",
3
- "version": "0.9.3",
3
+ "version": "0.9.4",
4
4
  "private": false,
5
5
  "description": "GraphQL fake server for testing",
6
6
  "keywords": [
@@ -51,7 +51,7 @@
51
51
  "@graphql-tools/mock": "^9.0.2",
52
52
  "@graphql-tools/schema": "^10.0.3",
53
53
  "@hono/node-server": "^1.11.1",
54
- "@newmo/graphql-fake-core": "0.9.0",
54
+ "@newmo/graphql-fake-core": "0.9.4",
55
55
  "graphql-depth-limit": "^1.1.0",
56
56
  "hono": "^4.3.2"
57
57
  },
@@ -77,5 +77,5 @@
77
77
  "access": "public",
78
78
  "registry": "https://registry.npmjs.org/"
79
79
  },
80
- "gitHead": "d79e46882ee14507fb1f7c940fc66bc8dd47a175"
80
+ "gitHead": "fab76c9743ed73a2236f1765fcfd136ef2629936"
81
81
  }