graphql-query-parser 0.0.2 → 0.1.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 (174) hide show
  1. package/README.md +11 -13
  2. package/dist/builder/fragmentBuilder.d.ts +27 -0
  3. package/dist/builder/fragmentBuilder.d.ts.map +1 -0
  4. package/{builder → dist/builder}/fragmentBuilder.js +13 -8
  5. package/dist/builder/fragmentBuilder.js.map +1 -0
  6. package/dist/builder/graphQLQueryBuilder.d.ts +14 -0
  7. package/dist/builder/graphQLQueryBuilder.d.ts.map +1 -0
  8. package/{builder → dist/builder}/graphQLQueryBuilder.js +3 -6
  9. package/dist/builder/graphQLQueryBuilder.js.map +1 -0
  10. package/dist/builder/index.d.ts +3 -0
  11. package/dist/builder/index.d.ts.map +1 -0
  12. package/dist/builder/index.js +3 -0
  13. package/dist/builder/index.js.map +1 -0
  14. package/dist/builder/queryBuilder.d.ts +22 -0
  15. package/dist/builder/queryBuilder.d.ts.map +1 -0
  16. package/{builder → dist/builder}/queryBuilder.js +7 -9
  17. package/dist/builder/queryBuilder.js.map +1 -0
  18. package/dist/builder/results.d.ts +28 -0
  19. package/dist/builder/results.d.ts.map +1 -0
  20. package/{builder → dist/builder}/results.js +4 -5
  21. package/dist/builder/results.js.map +1 -0
  22. package/dist/cache/cache.d.ts +20 -0
  23. package/dist/cache/cache.d.ts.map +1 -0
  24. package/{cache → dist/cache}/cache.js +7 -8
  25. package/dist/cache/cache.js.map +1 -0
  26. package/dist/cache/index.d.ts +5 -0
  27. package/dist/cache/index.d.ts.map +1 -0
  28. package/dist/cache/index.js +4 -0
  29. package/dist/cache/index.js.map +1 -0
  30. package/dist/cache/indexCache.d.ts +27 -0
  31. package/dist/cache/indexCache.d.ts.map +1 -0
  32. package/{cache → dist/cache}/indexCache.js +2 -4
  33. package/dist/cache/indexCache.js.map +1 -0
  34. package/dist/graphQLQueryParser.d.ts +13 -0
  35. package/dist/graphQLQueryParser.d.ts.map +1 -0
  36. package/dist/graphQLQueryParser.js +50 -0
  37. package/dist/graphQLQueryParser.js.map +1 -0
  38. package/dist/index.d.ts +3 -0
  39. package/dist/index.d.ts.map +1 -0
  40. package/dist/index.js +3 -0
  41. package/dist/index.js.map +1 -0
  42. package/dist/parser/graphql/fragment/fragmentExtractor.d.ts +16 -0
  43. package/dist/parser/graphql/fragment/fragmentExtractor.d.ts.map +1 -0
  44. package/dist/parser/graphql/fragment/fragmentExtractor.js +20 -0
  45. package/dist/parser/graphql/fragment/fragmentExtractor.js.map +1 -0
  46. package/dist/parser/graphql/fragment/fragmentParser.d.ts +19 -0
  47. package/dist/parser/graphql/fragment/fragmentParser.d.ts.map +1 -0
  48. package/{parser → dist/parser}/graphql/fragment/fragmentParser.js +12 -14
  49. package/dist/parser/graphql/fragment/fragmentParser.js.map +1 -0
  50. package/dist/parser/graphql/graphQLExtractor.d.ts +12 -0
  51. package/dist/parser/graphql/graphQLExtractor.d.ts.map +1 -0
  52. package/dist/parser/graphql/graphQLExtractor.js +2 -0
  53. package/dist/parser/graphql/graphQLParser.d.ts +12 -0
  54. package/dist/parser/graphql/graphQLParser.d.ts.map +1 -0
  55. package/dist/parser/graphql/graphQLParser.js +2 -0
  56. package/dist/parser/graphql/index.d.ts +5 -0
  57. package/dist/parser/graphql/index.d.ts.map +1 -0
  58. package/dist/parser/graphql/index.js +4 -0
  59. package/dist/parser/graphql/index.js.map +1 -0
  60. package/dist/parser/graphql/query/queryExtractor.d.ts +15 -0
  61. package/dist/parser/graphql/query/queryExtractor.d.ts.map +1 -0
  62. package/{parser → dist/parser}/graphql/query/queryExtractor.js +5 -6
  63. package/dist/parser/graphql/query/queryExtractor.js.map +1 -0
  64. package/dist/parser/graphql/query/queryParser.d.ts +24 -0
  65. package/dist/parser/graphql/query/queryParser.d.ts.map +1 -0
  66. package/{parser → dist/parser}/graphql/query/queryParser.js +17 -18
  67. package/dist/parser/graphql/query/queryParser.js.map +1 -0
  68. package/dist/parser/index.d.ts +4 -0
  69. package/dist/parser/index.d.ts.map +1 -0
  70. package/dist/parser/index.js +3 -0
  71. package/dist/parser/index.js.map +1 -0
  72. package/dist/parser/parseResults.d.ts +9 -0
  73. package/dist/parser/parseResults.d.ts.map +1 -0
  74. package/dist/parser/parseResults.js +2 -0
  75. package/dist/parser/parseResults.js.map +1 -0
  76. package/dist/parser/parser.d.ts +11 -0
  77. package/dist/parser/parser.d.ts.map +1 -0
  78. package/dist/parser/parser.js +2 -0
  79. package/dist/parser/readStreamParser.d.ts +19 -0
  80. package/dist/parser/readStreamParser.d.ts.map +1 -0
  81. package/dist/parser/readStreamParser.js +52 -0
  82. package/dist/parser/readStreamParser.js.map +1 -0
  83. package/dist/reader/directory/directoryReader.d.ts +15 -0
  84. package/dist/reader/directory/directoryReader.d.ts.map +1 -0
  85. package/dist/reader/directory/directoryReader.js +25 -0
  86. package/dist/reader/directory/directoryReader.js.map +1 -0
  87. package/dist/reader/errors/unsupportedTypeError.d.ts +4 -0
  88. package/dist/reader/errors/unsupportedTypeError.d.ts.map +1 -0
  89. package/dist/reader/errors/unsupportedTypeError.js +12 -0
  90. package/dist/reader/errors/unsupportedTypeError.js.map +1 -0
  91. package/dist/reader/file/fileReader.d.ts +15 -0
  92. package/dist/reader/file/fileReader.d.ts.map +1 -0
  93. package/dist/reader/file/fileReader.js +20 -0
  94. package/dist/reader/file/fileReader.js.map +1 -0
  95. package/dist/reader/graphQLQueryReader.d.ts +24 -0
  96. package/dist/reader/graphQLQueryReader.d.ts.map +1 -0
  97. package/{reader → dist/reader}/graphQLQueryReader.js +15 -19
  98. package/dist/reader/graphQLQueryReader.js.map +1 -0
  99. package/dist/reader/index.d.ts +3 -0
  100. package/dist/reader/index.d.ts.map +1 -0
  101. package/dist/reader/index.js +3 -0
  102. package/dist/reader/index.js.map +1 -0
  103. package/dist/reader/readFile.d.ts +14 -0
  104. package/dist/reader/readFile.d.ts.map +1 -0
  105. package/{reader → dist/reader}/readFile.js +9 -7
  106. package/dist/reader/readFile.js.map +1 -0
  107. package/dist/reader/reader.d.ts +12 -0
  108. package/dist/reader/reader.d.ts.map +1 -0
  109. package/dist/reader/reader.js +2 -0
  110. package/dist/templates/fragmentTemplate.d.ts +11 -0
  111. package/dist/templates/fragmentTemplate.d.ts.map +1 -0
  112. package/{templates → dist/templates}/fragmentTemplate.js +3 -4
  113. package/dist/templates/fragmentTemplate.js.map +1 -0
  114. package/dist/templates/index.d.ts +4 -0
  115. package/dist/templates/index.d.ts.map +1 -0
  116. package/dist/templates/index.js +4 -0
  117. package/dist/templates/index.js.map +1 -0
  118. package/dist/templates/queryTemplate.d.ts +12 -0
  119. package/dist/templates/queryTemplate.d.ts.map +1 -0
  120. package/{templates → dist/templates}/queryTemplate.js +5 -5
  121. package/dist/templates/queryTemplate.js.map +1 -0
  122. package/package.json +61 -46
  123. package/builder/fragmentBuilder.js.map +0 -1
  124. package/builder/graphQLQueryBuilder.js.map +0 -1
  125. package/builder/index.js +0 -5
  126. package/builder/index.js.map +0 -1
  127. package/builder/queryBuilder.js.map +0 -1
  128. package/builder/results.js.map +0 -1
  129. package/cache/cache.js.map +0 -1
  130. package/cache/index.js +0 -7
  131. package/cache/index.js.map +0 -1
  132. package/cache/indexCache.js.map +0 -1
  133. package/docs/CHANGELOG.md +0 -5
  134. package/docs/CONTRIBUTING.md +0 -17
  135. package/docs/EXAMPLES.md +0 -135
  136. package/graphQLQueryParser.js +0 -57
  137. package/graphQLQueryParser.js.map +0 -1
  138. package/index.js +0 -5
  139. package/index.js.map +0 -1
  140. package/parser/graphql/fragment/fragmentExtractor.js +0 -21
  141. package/parser/graphql/fragment/fragmentExtractor.js.map +0 -1
  142. package/parser/graphql/fragment/fragmentParser.js.map +0 -1
  143. package/parser/graphql/graphQLExtractor.js +0 -3
  144. package/parser/graphql/graphQLParser.js +0 -3
  145. package/parser/graphql/index.js +0 -7
  146. package/parser/graphql/index.js.map +0 -1
  147. package/parser/graphql/query/queryExtractor.js.map +0 -1
  148. package/parser/graphql/query/queryParser.js.map +0 -1
  149. package/parser/index.js +0 -5
  150. package/parser/index.js.map +0 -1
  151. package/parser/parseResults.js +0 -3
  152. package/parser/parseResults.js.map +0 -1
  153. package/parser/parser.js +0 -3
  154. package/parser/readStreamParser.js +0 -60
  155. package/parser/readStreamParser.js.map +0 -1
  156. package/reader/directory/directoryReader.js +0 -29
  157. package/reader/directory/directoryReader.js.map +0 -1
  158. package/reader/errors/unsupportedTypeError.js +0 -15
  159. package/reader/errors/unsupportedTypeError.js.map +0 -1
  160. package/reader/file/fileReader.js +0 -24
  161. package/reader/file/fileReader.js.map +0 -1
  162. package/reader/graphQLQueryReader.js.map +0 -1
  163. package/reader/index.js +0 -5
  164. package/reader/index.js.map +0 -1
  165. package/reader/readFile.js.map +0 -1
  166. package/reader/reader.js +0 -3
  167. package/templates/fragmentTemplate.js.map +0 -1
  168. package/templates/index.js +0 -7
  169. package/templates/index.js.map +0 -1
  170. package/templates/queryTemplate.js.map +0 -1
  171. /package/{parser → dist/parser}/graphql/graphQLExtractor.js.map +0 -0
  172. /package/{parser → dist/parser}/graphql/graphQLParser.js.map +0 -0
  173. /package/{parser → dist/parser}/parser.js.map +0 -0
  174. /package/{reader → dist/reader}/reader.js.map +0 -0
@@ -0,0 +1,19 @@
1
+ import { FragmentTemplate } from "../../../templates/index.ts";
2
+ import type GraphQLParser from "../graphQLParser.ts";
3
+ /**
4
+ * Parses potential fragment strings to determine if a fragment exists
5
+ */
6
+ export default class FragmentParser implements GraphQLParser<string, FragmentTemplate[]> {
7
+ private fragmentNameRegex;
8
+ private fragmentRegex;
9
+ /**
10
+ * Attempts to derive one or many fragment templates from an input string
11
+ *
12
+ * @param data String result to parse
13
+ */
14
+ parse(data: string): FragmentTemplate[];
15
+ private parseFragments;
16
+ private parseFragment;
17
+ private buildTemplate;
18
+ }
19
+ //# sourceMappingURL=fragmentParser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fragmentParser.d.ts","sourceRoot":"","sources":["../../../../lib/parser/graphql/fragment/fragmentParser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,KAAK,aAAa,MAAM,qBAAqB,CAAC;AAErD;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,cAAe,YAAW,aAAa,CAC3D,MAAM,EACN,gBAAgB,EAAE,CAClB;IACA,OAAO,CAAC,iBAAiB,CACqE;IAC9F,OAAO,CAAC,aAAa,CAC0E;IAE/F;;;;OAIG;IACI,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,EAAE;IAI9C,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,aAAa;IA8BrB,OAAO,CAAC,aAAa;CAYrB"}
@@ -1,14 +1,10 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const templates_1 = require("../../../templates");
1
+ import { FragmentTemplate } from "../../../templates/index.js";
4
2
  /**
5
3
  * Parses potential fragment strings to determine if a fragment exists
6
4
  */
7
- class FragmentParser {
8
- constructor() {
9
- this.fragmentNameRegex = /((.*?[\bfragment\b])[\s]{1,}([a-zA-Z]+)[\s]{1,}(.*?[\bon\b])[\s]{1,}([a-zA-Z]+)[\s]{0,}\{)/;
10
- this.fragmentRegex = /((.*?[\bfragment\b])[\s]{1,}([a-zA-Z]+)[\s]{1,}(.*?[\bon\b])[\s]{1,}([a-zA-Z]+)[\s]{0,}\{)/g;
11
- }
5
+ export default class FragmentParser {
6
+ fragmentNameRegex = /((.*?[\bfragment\b])[\s]{1,}([a-zA-Z]+)[\s]{1,}(.*?[\bon\b])[\s]{1,}([a-zA-Z]+)[\s]{0,}\{)/;
7
+ fragmentRegex = /((.*?[\bfragment\b])[\s]{1,}([a-zA-Z]+)[\s]{1,}(.*?[\bon\b])[\s]{1,}([a-zA-Z]+)[\s]{0,}\{)/g;
12
8
  /**
13
9
  * Attempts to derive one or many fragment templates from an input string
14
10
  *
@@ -20,7 +16,7 @@ class FragmentParser {
20
16
  parseFragments(data) {
21
17
  const match = data.match(this.fragmentRegex);
22
18
  if (match != null) {
23
- return match.map(fragmentIdentifier => {
19
+ return match.map((fragmentIdentifier) => {
24
20
  const query = this.parseFragment(data, fragmentIdentifier);
25
21
  return this.buildTemplate(query, fragmentIdentifier);
26
22
  });
@@ -28,7 +24,7 @@ class FragmentParser {
28
24
  return [];
29
25
  }
30
26
  parseFragment(data, fragmentIdentifier) {
31
- const start = data.indexOf('{', data.indexOf(fragmentIdentifier) + fragmentIdentifier.length - 1);
27
+ const start = data.indexOf("{", data.indexOf(fragmentIdentifier) + fragmentIdentifier.length - 1);
32
28
  const bracesSet = [data[start]];
33
29
  let fragment = data.substring(data.indexOf(fragmentIdentifier), start + 1);
34
30
  let index = start;
@@ -37,10 +33,10 @@ class FragmentParser {
37
33
  const char = data[index];
38
34
  fragment += char;
39
35
  switch (char) {
40
- case '{':
36
+ case "{":
41
37
  bracesSet.push(char);
42
38
  break;
43
- case '}':
39
+ case "}":
44
40
  bracesSet.pop();
45
41
  break;
46
42
  default:
@@ -51,8 +47,10 @@ class FragmentParser {
51
47
  }
52
48
  buildTemplate(fragment, fragmentIdentifier) {
53
49
  const key = this.fragmentNameRegex.exec(fragmentIdentifier);
54
- return new templates_1.FragmentTemplate(key[3], fragment);
50
+ if (!key) {
51
+ throw new Error(`Invalid fragment identifier: ${fragmentIdentifier}`);
52
+ }
53
+ return new FragmentTemplate(key[3], fragment);
55
54
  }
56
55
  }
57
- exports.default = FragmentParser;
58
56
  //# sourceMappingURL=fragmentParser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fragmentParser.js","sourceRoot":"","sources":["../../../../lib/parser/graphql/fragment/fragmentParser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAG/D;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,cAAc;IAI1B,iBAAiB,GACxB,4FAA4F,CAAC;IACtF,aAAa,GACpB,6FAA6F,CAAC;IAE/F;;;;OAIG;IACI,KAAK,CAAC,IAAY;QACxB,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAEO,cAAc,CAAC,IAAY;QAClC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC7C,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YACnB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,kBAAkB,EAAE,EAAE;gBACvC,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;gBAC3D,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;YACtD,CAAC,CAAC,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,CAAC;IACX,CAAC;IAEO,aAAa,CAAC,IAAY,EAAE,kBAA0B;QAC7D,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CACzB,GAAG,EACH,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,GAAG,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAChE,CAAC;QACF,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAChC,IAAI,QAAQ,GAAG,IAAI,CAAC,SAAS,CAC5B,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAChC,KAAK,GAAG,CAAC,CACT,CAAC;QACF,IAAI,KAAK,GAAG,KAAK,CAAC;QAElB,OAAO,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,KAAK,EAAE,CAAC;YACR,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;YACzB,QAAQ,IAAI,IAAI,CAAC;YACjB,QAAQ,IAAI,EAAE,CAAC;gBACd,KAAK,GAAG;oBACP,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACrB,MAAM;gBACP,KAAK,GAAG;oBACP,SAAS,CAAC,GAAG,EAAE,CAAC;oBAChB,MAAM;gBACP;oBACC,SAAS;YACX,CAAC;QACF,CAAC;QACD,OAAO,QAAQ,CAAC;IACjB,CAAC;IAEO,aAAa,CACpB,QAAgB,EAChB,kBAA0B;QAE1B,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC5D,IAAI,CAAC,GAAG,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CACd,gCAAgC,kBAAkB,EAAE,CACpD,CAAC;QACH,CAAC;QACD,OAAO,IAAI,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC/C,CAAC;CACD"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Interface for extracting information for GraphQL data
3
+ */
4
+ export default interface GraphQLExtractor<K, V> {
5
+ /**
6
+ * Extracts the necessary data from the input, returning the value defined
7
+ *
8
+ * @param input Input data to extract from
9
+ */
10
+ extract(input: K): V;
11
+ }
12
+ //# sourceMappingURL=graphQLExtractor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphQLExtractor.d.ts","sourceRoot":"","sources":["../../../lib/parser/graphql/graphQLExtractor.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,OAAO,WAAW,gBAAgB,CAAC,CAAC,EAAE,CAAC;IAC7C;;;;OAIG;IACH,OAAO,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC;CACrB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=graphQLExtractor.js.map
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Parses information from an input.
3
+ * The information should represent GraphQL specific data.
4
+ */
5
+ export default interface GraphQLParser<K, V> {
6
+ /**
7
+ * Parse results from the input data in order to identify GraphQL information.
8
+ * @param data Input data to parse from
9
+ */
10
+ parse(data: K): V;
11
+ }
12
+ //# sourceMappingURL=graphQLParser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphQLParser.d.ts","sourceRoot":"","sources":["../../../lib/parser/graphql/graphQLParser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,OAAO,WAAW,aAAa,CAAC,CAAC,EAAE,CAAC;IAC1C;;;OAGG;IACH,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC;CAClB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=graphQLParser.js.map
@@ -0,0 +1,5 @@
1
+ import FragmentExtractor from "./fragment/fragmentExtractor.ts";
2
+ import QueryExtractor from "./query/queryExtractor.ts";
3
+ export { FragmentExtractor, QueryExtractor };
4
+ export type { default as GraphQLExtractor } from "./graphQLExtractor.ts";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/parser/graphql/index.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,MAAM,iCAAiC,CAAC;AAChE,OAAO,cAAc,MAAM,2BAA2B,CAAC;AAEvD,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,CAAC;AAC7C,YAAY,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import FragmentExtractor from "./fragment/fragmentExtractor.js";
2
+ import QueryExtractor from "./query/queryExtractor.js";
3
+ export { FragmentExtractor, QueryExtractor };
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/parser/graphql/index.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,MAAM,iCAAiC,CAAC;AAChE,OAAO,cAAc,MAAM,2BAA2B,CAAC;AAEvD,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { QueryTemplate } from "../../../templates/index.ts";
2
+ import type GraphQLExtractor from "../graphQLExtractor.ts";
3
+ /**
4
+ * Extracts the Query infroamtion from a given input
5
+ */
6
+ export default class QueryExtractor implements GraphQLExtractor<string, QueryTemplate[]> {
7
+ private parser;
8
+ constructor();
9
+ /**
10
+ * Extracts one or many query templates from an input string
11
+ * @param input String to find query information from
12
+ */
13
+ extract(input: string): QueryTemplate[];
14
+ }
15
+ //# sourceMappingURL=queryExtractor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queryExtractor.d.ts","sourceRoot":"","sources":["../../../../lib/parser/graphql/query/queryExtractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,KAAK,gBAAgB,MAAM,wBAAwB,CAAC;AAG3D;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,cAAe,YAAW,gBAAgB,CAC9D,MAAM,EACN,aAAa,EAAE,CACf;IACA,OAAO,CAAC,MAAM,CAAc;;IAM5B;;;OAGG;IACI,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,EAAE;CAG9C"}
@@ -1,12 +1,12 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const queryParser_1 = require("./queryParser");
1
+ import { QueryTemplate } from "../../../templates/index.js";
2
+ import QueryParser from "./queryParser.js";
4
3
  /**
5
4
  * Extracts the Query infroamtion from a given input
6
5
  */
7
- class QueryExtractor {
6
+ export default class QueryExtractor {
7
+ parser;
8
8
  constructor() {
9
- this.parser = new queryParser_1.default();
9
+ this.parser = new QueryParser();
10
10
  }
11
11
  /**
12
12
  * Extracts one or many query templates from an input string
@@ -16,5 +16,4 @@ class QueryExtractor {
16
16
  return this.parser.parse(input);
17
17
  }
18
18
  }
19
- exports.default = QueryExtractor;
20
19
  //# sourceMappingURL=queryExtractor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queryExtractor.js","sourceRoot":"","sources":["../../../../lib/parser/graphql/query/queryExtractor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAE3C;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,cAAc;IAI1B,MAAM,CAAc;IAE5B;QACC,IAAI,CAAC,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;IACjC,CAAC;IAED;;;OAGG;IACI,OAAO,CAAC,KAAa;QAC3B,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;CACD"}
@@ -0,0 +1,24 @@
1
+ import { QueryTemplate } from "../../../templates/index.ts";
2
+ import type GraphQLParser from "../graphQLParser.ts";
3
+ /**
4
+ * Parses query files for by converting them into [[QueryTemplate]]s
5
+ */
6
+ export default class QueryParser implements GraphQLParser<string, QueryTemplate[]> {
7
+ private queryNameRegex;
8
+ private queryRegex;
9
+ private queryVariablesRegex;
10
+ private variableRegex;
11
+ /**
12
+ * Parse data from the input string.
13
+ * Can identify no to many query templates
14
+ *
15
+ * @param data String to parse information from
16
+ */
17
+ parse(data: string): QueryTemplate[];
18
+ private parseQueries;
19
+ private parseQuery;
20
+ private buildTemplate;
21
+ private removeVariables;
22
+ private parseVariables;
23
+ }
24
+ //# sourceMappingURL=queryParser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queryParser.d.ts","sourceRoot":"","sources":["../../../../lib/parser/graphql/query/queryParser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,KAAK,aAAa,MAAM,qBAAqB,CAAC;AAErD;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,WAAY,YAAW,aAAa,CACxD,MAAM,EACN,aAAa,EAAE,CACf;IACA,OAAO,CAAC,cAAc,CAC+C;IACrE,OAAO,CAAC,UAAU,CACiD;IACnE,OAAO,CAAC,mBAAmB,CACuC;IAClE,OAAO,CAAC,aAAa,CAAoB;IAEzC;;;;;OAKG;IACI,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,EAAE;IAI3C,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,UAAU;IA2BlB,OAAO,CAAC,aAAa;IAerB,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,cAAc;CAGtB"}
@@ -1,16 +1,12 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const templates_1 = require("../../../templates");
1
+ import { QueryTemplate } from "../../../templates/index.js";
4
2
  /**
5
3
  * Parses query files for by converting them into [[QueryTemplate]]s
6
4
  */
7
- class QueryParser {
8
- constructor() {
9
- this.queryNameRegex = /((.*?[\bquery\b])[\s]{1,}([a-zA-Z]+)[\s]{0,})(\(([^\)]{0,})\)){0,}/;
10
- this.queryRegex = /((\w*query\w*)[\s]{1,}([a-zA-Z]+)[\s]{0,})(\(([^\)]{0,})\)){0,}/g;
11
- this.queryVariablesRegex = /((\w*query\w*)[\s]{1,}([a-zA-Z]+)[\s]{0,})(\(([^\)]{0,})\)){0,}/;
12
- this.variableRegex = /(\$[a-zA-Z]+)/g;
13
- }
5
+ export default class QueryParser {
6
+ queryNameRegex = /((.*?[\bquery\b])[\s]{1,}([a-zA-Z]+)[\s]{0,})(\(([^)]{0,})\)){0,}/;
7
+ queryRegex = /((\w*query\w*)[\s]{1,}([a-zA-Z]+)[\s]{0,})(\(([^)]{0,})\)){0,}/g;
8
+ queryVariablesRegex = /((\w*query\w*)[\s]{1,}([a-zA-Z]+)[\s]{0,})(\(([^)]{0,})\)){0,}/;
9
+ variableRegex = /(\$[a-zA-Z]+)/g;
14
10
  /**
15
11
  * Parse data from the input string.
16
12
  * Can identify no to many query templates
@@ -23,7 +19,7 @@ class QueryParser {
23
19
  parseQueries(data) {
24
20
  const matches = data.match(this.queryRegex);
25
21
  if (matches !== null) {
26
- return matches.map(queryIdentifier => {
22
+ return matches.map((queryIdentifier) => {
27
23
  const query = this.parseQuery(data, queryIdentifier);
28
24
  return this.buildTemplate(query, queryIdentifier);
29
25
  });
@@ -31,7 +27,7 @@ class QueryParser {
31
27
  return [];
32
28
  }
33
29
  parseQuery(data, queryIdentifier) {
34
- const start = data.indexOf('{', data.indexOf(queryIdentifier) + queryIdentifier.length);
30
+ const start = data.indexOf("{", data.indexOf(queryIdentifier) + queryIdentifier.length);
35
31
  const bracesSet = [data[start]];
36
32
  let subQuery = data.substring(data.indexOf(queryIdentifier), start + 1);
37
33
  let index = start;
@@ -40,10 +36,10 @@ class QueryParser {
40
36
  const char = data[index];
41
37
  subQuery += char;
42
38
  switch (char) {
43
- case '{':
39
+ case "{":
44
40
  bracesSet.push(char);
45
41
  break;
46
- case '}':
42
+ case "}":
47
43
  bracesSet.pop();
48
44
  break;
49
45
  default:
@@ -53,17 +49,21 @@ class QueryParser {
53
49
  return subQuery;
54
50
  }
55
51
  buildTemplate(query, queryIdentifier) {
56
- return new templates_1.QueryTemplate(this.queryNameRegex.exec(queryIdentifier)[3], this.removeVariables(query), this.parseVariables(query));
52
+ const match = this.queryNameRegex.exec(queryIdentifier);
53
+ if (!match) {
54
+ throw new Error(`Invalid query identifier: ${queryIdentifier}`);
55
+ }
56
+ return new QueryTemplate(match[3], this.removeVariables(query), this.parseVariables(query));
57
57
  }
58
58
  removeVariables(query) {
59
59
  try {
60
60
  const match = this.queryVariablesRegex.exec(query);
61
- if (match.length > 5) {
61
+ if (match && match.length > 5) {
62
62
  query = query.replace(match[4], "");
63
63
  }
64
64
  return query;
65
65
  }
66
- catch (e) {
66
+ catch {
67
67
  return query;
68
68
  }
69
69
  }
@@ -71,5 +71,4 @@ class QueryParser {
71
71
  return [...new Set(data.match(this.variableRegex))];
72
72
  }
73
73
  }
74
- exports.default = QueryParser;
75
74
  //# sourceMappingURL=queryParser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queryParser.js","sourceRoot":"","sources":["../../../../lib/parser/graphql/query/queryParser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import ReadStreamParser from "./readStreamParser.ts";
2
+ export { ReadStreamParser };
3
+ export type { default as ParseResults } from "./parseResults.ts";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/parser/index.ts"],"names":[],"mappings":"AAAA,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AAErD,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAC5B,YAAY,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import ReadStreamParser from "./readStreamParser.js";
2
+ export { ReadStreamParser };
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/parser/index.ts"],"names":[],"mappings":"AAAA,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AAErD,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { QueryTemplate, FragmentTemplate } from "../templates/index.ts";
2
+ /**
3
+ * This includes the results from the parsing as an object
4
+ */
5
+ export default interface ParseResults {
6
+ queryResults: QueryTemplate[];
7
+ fragmentResults: FragmentTemplate[];
8
+ }
9
+ //# sourceMappingURL=parseResults.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseResults.d.ts","sourceRoot":"","sources":["../../lib/parser/parseResults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAExE;;GAEG;AACH,MAAM,CAAC,OAAO,WAAW,YAAY;IACpC,YAAY,EAAE,aAAa,EAAE,CAAC;IAC9B,eAAe,EAAE,gBAAgB,EAAE,CAAC;CACpC"}
@@ -0,0 +1,2 @@
1
+ import { QueryTemplate, FragmentTemplate } from "../templates/index.js";
2
+ //# sourceMappingURL=parseResults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseResults.js","sourceRoot":"","sources":["../../lib/parser/parseResults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * A Parser is responsible for extracting the content for building the queries
3
+ */
4
+ export default interface Parser<K, V> {
5
+ /**
6
+ * Parses result from the given input parameter
7
+ * @param toParse Parameter to parse information from
8
+ */
9
+ parse(toParse: K): V;
10
+ }
11
+ //# sourceMappingURL=parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../lib/parser/parser.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC,CAAC,EAAE,CAAC;IACnC;;;OAGG;IACH,KAAK,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC;CACrB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=parser.js.map
@@ -0,0 +1,19 @@
1
+ import { ReadStream } from "fs";
2
+ import type Parser from "./parser.ts";
3
+ import type ParseResults from "./parseResults.ts";
4
+ /**
5
+ * Parses results from a ReadStream
6
+ */
7
+ export default class ReadStreamParser implements Parser<ReadStream[], Promise<ParseResults>[]> {
8
+ private queryExtractor;
9
+ private fragmentExtractor;
10
+ constructor();
11
+ /**
12
+ * Parses multiple read streams and returns the [[ParseResult]] from each read stream
13
+ * @param streams Streams that contain the information for parsing
14
+ */
15
+ parse(streams: ReadStream[]): Promise<ParseResults>[];
16
+ private parseData;
17
+ private extract;
18
+ }
19
+ //# sourceMappingURL=readStreamParser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readStreamParser.d.ts","sourceRoot":"","sources":["../../lib/parser/readStreamParser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAGhC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAC;AAElD;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,gBAAiB,YAAW,MAAM,CACtD,UAAU,EAAE,EACZ,OAAO,CAAC,YAAY,CAAC,EAAE,CACvB;IACA,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,iBAAiB,CAAoB;;IAO7C;;;OAGG;IACI,KAAK,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC,EAAE;IAc5D,OAAO,CAAC,SAAS;IAejB,OAAO,CAAC,OAAO;CAMf"}
@@ -0,0 +1,52 @@
1
+ import { ReadStream } from "fs";
2
+ import { QueryExtractor, FragmentExtractor } from "./graphql/index.js";
3
+ /**
4
+ * Parses results from a ReadStream
5
+ */
6
+ export default class ReadStreamParser {
7
+ queryExtractor;
8
+ fragmentExtractor;
9
+ constructor() {
10
+ this.queryExtractor = new QueryExtractor();
11
+ this.fragmentExtractor = new FragmentExtractor();
12
+ }
13
+ /**
14
+ * Parses multiple read streams and returns the [[ParseResult]] from each read stream
15
+ * @param streams Streams that contain the information for parsing
16
+ */
17
+ parse(streams) {
18
+ try {
19
+ return streams.map(async (stream) => {
20
+ const result = await this.parseData(stream);
21
+ if (result === null) {
22
+ throw new Error("fill in with defined error");
23
+ }
24
+ return result;
25
+ });
26
+ }
27
+ catch {
28
+ return [];
29
+ }
30
+ }
31
+ parseData(stream) {
32
+ return new Promise((resolve, reject) => {
33
+ let results;
34
+ stream.on("data", (data) => {
35
+ results = this.extract(data.toString());
36
+ });
37
+ stream.on("end", () => {
38
+ resolve(results);
39
+ });
40
+ stream.on("error", (error) => {
41
+ reject(error);
42
+ });
43
+ });
44
+ }
45
+ extract(data) {
46
+ return {
47
+ queryResults: this.queryExtractor.extract(data),
48
+ fragmentResults: this.fragmentExtractor.extract(data),
49
+ };
50
+ }
51
+ }
52
+ //# sourceMappingURL=readStreamParser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readStreamParser.js","sourceRoot":"","sources":["../../lib/parser/readStreamParser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAEhC,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAIvE;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,gBAAgB;IAI5B,cAAc,CAAiB;IAC/B,iBAAiB,CAAoB;IAE7C;QACC,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,EAAE,CAAC;QAC3C,IAAI,CAAC,iBAAiB,GAAG,IAAI,iBAAiB,EAAE,CAAC;IAClD,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,OAAqB;QACjC,IAAI,CAAC;YACJ,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;gBACnC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;gBAC5C,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;oBACrB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;gBAC/C,CAAC;gBACD,OAAO,MAAM,CAAC;YACf,CAAC,CAAC,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACR,OAAO,EAAE,CAAC;QACX,CAAC;IACF,CAAC;IAEO,SAAS,CAAC,MAAkB;QACnC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACtC,IAAI,OAAqB,CAAC;YAC1B,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAqB,EAAE,EAAE;gBAC3C,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;YACzC,CAAC,CAAC,CAAC;YACH,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;gBACrB,OAAO,CAAC,OAAO,CAAC,CAAC;YAClB,CAAC,CAAC,CAAC;YACH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;gBAC5B,MAAM,CAAC,KAAK,CAAC,CAAC;YACf,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACJ,CAAC;IAEO,OAAO,CAAC,IAAY;QAC3B,OAAO;YACN,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC;YAC/C,eAAe,EAAE,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC;SACrD,CAAC;IACH,CAAC;CACD"}
@@ -0,0 +1,15 @@
1
+ import * as fs from "fs";
2
+ import type Reader from "../reader.ts";
3
+ /**
4
+ * Directory Readers are responsible for reading information from a directory of files
5
+ */
6
+ export default class DirectoryReader implements Reader<string, fs.ReadStream[]> {
7
+ private options;
8
+ /**
9
+ * Reads the information from a directory string identifier
10
+ *
11
+ * @param directory Directory to open the read streams from
12
+ */
13
+ read(directory: string): fs.ReadStream[];
14
+ }
15
+ //# sourceMappingURL=directoryReader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"directoryReader.d.ts","sourceRoot":"","sources":["../../../lib/reader/directory/directoryReader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAEzB,OAAO,KAAK,MAAM,MAAM,cAAc,CAAC;AAIvC;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,eAAgB,YAAW,MAAM,CACrD,MAAM,EACN,EAAE,CAAC,UAAU,EAAE,CACf;IACA,OAAO,CAAC,OAAO,CAEb;IAEF;;;;OAIG;IACI,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,EAAE,CAAC,UAAU,EAAE;CAS/C"}
@@ -0,0 +1,25 @@
1
+ import * as fs from "fs";
2
+ import { readFile } from "../readFile.js";
3
+ /**
4
+ * Directory Readers are responsible for reading information from a directory of files
5
+ */
6
+ export default class DirectoryReader {
7
+ options = {
8
+ encoding: "utf8",
9
+ };
10
+ /**
11
+ * Reads the information from a directory string identifier
12
+ *
13
+ * @param directory Directory to open the read streams from
14
+ */
15
+ read(directory) {
16
+ const directoryPath = directory.toString();
17
+ return fs
18
+ .readdirSync(directoryPath)
19
+ .map((file) => {
20
+ return readFile(directoryPath + file, this.options);
21
+ })
22
+ .filter((x) => x !== null);
23
+ }
24
+ }
25
+ //# sourceMappingURL=directoryReader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"directoryReader.js","sourceRoot":"","sources":["../../../lib/reader/directory/directoryReader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAGzB,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG1C;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,eAAe;IAI3B,OAAO,GAAY;QAC1B,QAAQ,EAAE,MAAM;KAChB,CAAC;IAEF;;;;OAIG;IACI,IAAI,CAAC,SAAiB;QAC5B,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC;QAC3C,OAAO,EAAE;aACP,WAAW,CAAC,aAAa,CAAC;aAC1B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACb,OAAO,QAAQ,CAAC,aAAa,GAAG,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACrD,CAAC,CAAC;aACD,MAAM,CAAC,CAAC,CAAC,EAAsB,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;IACjD,CAAC;CACD"}
@@ -0,0 +1,4 @@
1
+ export default class UnsupportedTypeError extends Error {
2
+ constructor(message?: string, variables?: Array<string>);
3
+ }
4
+ //# sourceMappingURL=unsupportedTypeError.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unsupportedTypeError.d.ts","sourceRoot":"","sources":["../../../lib/reader/errors/unsupportedTypeError.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,OAAO,oBAAqB,SAAQ,KAAK;gBAErD,OAAO,GAAE,MAAwB,EACjC,SAAS,GAAE,KAAK,CAAC,MAAM,CAAM;CAQ9B"}
@@ -0,0 +1,12 @@
1
+ import * as util from "util";
2
+ export default class UnsupportedTypeError extends Error {
3
+ constructor(message = DEFAULT_MESSAGE, variables = []) {
4
+ super(message);
5
+ if (variables.length > 0 && message !== DEFAULT_MESSAGE) {
6
+ this.message = util.format(message, ...variables);
7
+ }
8
+ Object.setPrototypeOf(this, UnsupportedTypeError.prototype);
9
+ }
10
+ }
11
+ const DEFAULT_MESSAGE = "The type passed was unsupported";
12
+ //# sourceMappingURL=unsupportedTypeError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unsupportedTypeError.js","sourceRoot":"","sources":["../../../lib/reader/errors/unsupportedTypeError.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,MAAM,CAAC,OAAO,OAAO,oBAAqB,SAAQ,KAAK;IACtD,YACC,UAAkB,eAAe,EACjC,YAA2B,EAAE;QAE7B,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,KAAK,eAAe,EAAE,CAAC;YACzD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,CAAC;QACnD,CAAC;QACD,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,oBAAoB,CAAC,SAAS,CAAC,CAAC;IAC7D,CAAC;CACD;AAED,MAAM,eAAe,GAAG,iCAAiC,CAAC"}
@@ -0,0 +1,15 @@
1
+ import * as fs from "fs";
2
+ import type Reader from "../reader.ts";
3
+ /**
4
+ * Reads from a file and opens a [[ReadStream]]
5
+ */
6
+ export default class FileReader implements Reader<string, fs.ReadStream | null> {
7
+ private options;
8
+ /**
9
+ * Reads from a file and opens a [[ReadStream]]
10
+ *
11
+ * @param file File to read from
12
+ */
13
+ read(file: string): fs.ReadStream | null;
14
+ }
15
+ //# sourceMappingURL=fileReader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fileReader.d.ts","sourceRoot":"","sources":["../../../lib/reader/file/fileReader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAEzB,OAAO,KAAK,MAAM,MAAM,cAAc,CAAC;AAIvC;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,UAAW,YAAW,MAAM,CAChD,MAAM,EACN,EAAE,CAAC,UAAU,GAAG,IAAI,CACpB;IACA,OAAO,CAAC,OAAO,CAEb;IAEF;;;;OAIG;IACI,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,EAAE,CAAC,UAAU,GAAG,IAAI;CAI/C"}
@@ -0,0 +1,20 @@
1
+ import * as fs from "fs";
2
+ import { readFile } from "../readFile.js";
3
+ /**
4
+ * Reads from a file and opens a [[ReadStream]]
5
+ */
6
+ export default class FileReader {
7
+ options = {
8
+ encoding: "utf8",
9
+ };
10
+ /**
11
+ * Reads from a file and opens a [[ReadStream]]
12
+ *
13
+ * @param file File to read from
14
+ */
15
+ read(file) {
16
+ const filePath = file.toString();
17
+ return readFile(filePath, this.options);
18
+ }
19
+ }
20
+ //# sourceMappingURL=fileReader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fileReader.js","sourceRoot":"","sources":["../../../lib/reader/file/fileReader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAGzB,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG1C;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,UAAU;IAItB,OAAO,GAAY;QAC1B,QAAQ,EAAE,MAAM;KAChB,CAAC;IAEF;;;;OAIG;IACI,IAAI,CAAC,IAAY;QACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QACjC,OAAO,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;CACD"}
@@ -0,0 +1,24 @@
1
+ import * as fs from "fs";
2
+ /**
3
+ * Reads GraphQL files from the input path provided
4
+ */
5
+ export default class GraphQLQueryReader {
6
+ private fileReader;
7
+ private directoryReader;
8
+ constructor();
9
+ /**
10
+ * Reads all the file information from the input path provided.
11
+ * Can return one or many results based on the type of path provided.
12
+ *
13
+ * @param path Either a file identifier or directory for reading
14
+ */
15
+ read(path: string): fs.ReadStream[];
16
+ /**
17
+ * Reads all the file information from the input paths provided.
18
+ * Can return one or many results based on the type of paths provided.
19
+ *
20
+ * @param path Many file identifiers or directories for reading
21
+ */
22
+ readMany(paths: string[]): fs.ReadStream[];
23
+ }
24
+ //# sourceMappingURL=graphQLQueryReader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphQLQueryReader.d.ts","sourceRoot":"","sources":["../../lib/reader/graphQLQueryReader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAoBzB;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,kBAAkB;IACtC,OAAO,CAAC,UAAU,CAAuC;IACzD,OAAO,CAAC,eAAe,CAAkC;;IAOzD;;;;;OAKG;IACI,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,EAAE,CAAC,UAAU,EAAE;IAe1C;;;;;OAKG;IACI,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE;CASjD"}