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.
- package/README.md +11 -13
- package/dist/builder/fragmentBuilder.d.ts +27 -0
- package/dist/builder/fragmentBuilder.d.ts.map +1 -0
- package/{builder → dist/builder}/fragmentBuilder.js +13 -8
- package/dist/builder/fragmentBuilder.js.map +1 -0
- package/dist/builder/graphQLQueryBuilder.d.ts +14 -0
- package/dist/builder/graphQLQueryBuilder.d.ts.map +1 -0
- package/{builder → dist/builder}/graphQLQueryBuilder.js +3 -6
- package/dist/builder/graphQLQueryBuilder.js.map +1 -0
- package/dist/builder/index.d.ts +3 -0
- package/dist/builder/index.d.ts.map +1 -0
- package/dist/builder/index.js +3 -0
- package/dist/builder/index.js.map +1 -0
- package/dist/builder/queryBuilder.d.ts +22 -0
- package/dist/builder/queryBuilder.d.ts.map +1 -0
- package/{builder → dist/builder}/queryBuilder.js +7 -9
- package/dist/builder/queryBuilder.js.map +1 -0
- package/dist/builder/results.d.ts +28 -0
- package/dist/builder/results.d.ts.map +1 -0
- package/{builder → dist/builder}/results.js +4 -5
- package/dist/builder/results.js.map +1 -0
- package/dist/cache/cache.d.ts +20 -0
- package/dist/cache/cache.d.ts.map +1 -0
- package/{cache → dist/cache}/cache.js +7 -8
- package/dist/cache/cache.js.map +1 -0
- package/dist/cache/index.d.ts +5 -0
- package/dist/cache/index.d.ts.map +1 -0
- package/dist/cache/index.js +4 -0
- package/dist/cache/index.js.map +1 -0
- package/dist/cache/indexCache.d.ts +27 -0
- package/dist/cache/indexCache.d.ts.map +1 -0
- package/{cache → dist/cache}/indexCache.js +2 -4
- package/dist/cache/indexCache.js.map +1 -0
- package/dist/graphQLQueryParser.d.ts +13 -0
- package/dist/graphQLQueryParser.d.ts.map +1 -0
- package/dist/graphQLQueryParser.js +50 -0
- package/dist/graphQLQueryParser.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -0
- package/dist/parser/graphql/fragment/fragmentExtractor.d.ts +16 -0
- package/dist/parser/graphql/fragment/fragmentExtractor.d.ts.map +1 -0
- package/dist/parser/graphql/fragment/fragmentExtractor.js +20 -0
- package/dist/parser/graphql/fragment/fragmentExtractor.js.map +1 -0
- package/dist/parser/graphql/fragment/fragmentParser.d.ts +19 -0
- package/dist/parser/graphql/fragment/fragmentParser.d.ts.map +1 -0
- package/{parser → dist/parser}/graphql/fragment/fragmentParser.js +12 -14
- package/dist/parser/graphql/fragment/fragmentParser.js.map +1 -0
- package/dist/parser/graphql/graphQLExtractor.d.ts +12 -0
- package/dist/parser/graphql/graphQLExtractor.d.ts.map +1 -0
- package/dist/parser/graphql/graphQLExtractor.js +2 -0
- package/dist/parser/graphql/graphQLParser.d.ts +12 -0
- package/dist/parser/graphql/graphQLParser.d.ts.map +1 -0
- package/dist/parser/graphql/graphQLParser.js +2 -0
- package/dist/parser/graphql/index.d.ts +5 -0
- package/dist/parser/graphql/index.d.ts.map +1 -0
- package/dist/parser/graphql/index.js +4 -0
- package/dist/parser/graphql/index.js.map +1 -0
- package/dist/parser/graphql/query/queryExtractor.d.ts +15 -0
- package/dist/parser/graphql/query/queryExtractor.d.ts.map +1 -0
- package/{parser → dist/parser}/graphql/query/queryExtractor.js +5 -6
- package/dist/parser/graphql/query/queryExtractor.js.map +1 -0
- package/dist/parser/graphql/query/queryParser.d.ts +24 -0
- package/dist/parser/graphql/query/queryParser.d.ts.map +1 -0
- package/{parser → dist/parser}/graphql/query/queryParser.js +17 -18
- package/dist/parser/graphql/query/queryParser.js.map +1 -0
- package/dist/parser/index.d.ts +4 -0
- package/dist/parser/index.d.ts.map +1 -0
- package/dist/parser/index.js +3 -0
- package/dist/parser/index.js.map +1 -0
- package/dist/parser/parseResults.d.ts +9 -0
- package/dist/parser/parseResults.d.ts.map +1 -0
- package/dist/parser/parseResults.js +2 -0
- package/dist/parser/parseResults.js.map +1 -0
- package/dist/parser/parser.d.ts +11 -0
- package/dist/parser/parser.d.ts.map +1 -0
- package/dist/parser/parser.js +2 -0
- package/dist/parser/readStreamParser.d.ts +19 -0
- package/dist/parser/readStreamParser.d.ts.map +1 -0
- package/dist/parser/readStreamParser.js +52 -0
- package/dist/parser/readStreamParser.js.map +1 -0
- package/dist/reader/directory/directoryReader.d.ts +15 -0
- package/dist/reader/directory/directoryReader.d.ts.map +1 -0
- package/dist/reader/directory/directoryReader.js +25 -0
- package/dist/reader/directory/directoryReader.js.map +1 -0
- package/dist/reader/errors/unsupportedTypeError.d.ts +4 -0
- package/dist/reader/errors/unsupportedTypeError.d.ts.map +1 -0
- package/dist/reader/errors/unsupportedTypeError.js +12 -0
- package/dist/reader/errors/unsupportedTypeError.js.map +1 -0
- package/dist/reader/file/fileReader.d.ts +15 -0
- package/dist/reader/file/fileReader.d.ts.map +1 -0
- package/dist/reader/file/fileReader.js +20 -0
- package/dist/reader/file/fileReader.js.map +1 -0
- package/dist/reader/graphQLQueryReader.d.ts +24 -0
- package/dist/reader/graphQLQueryReader.d.ts.map +1 -0
- package/{reader → dist/reader}/graphQLQueryReader.js +15 -19
- package/dist/reader/graphQLQueryReader.js.map +1 -0
- package/dist/reader/index.d.ts +3 -0
- package/dist/reader/index.d.ts.map +1 -0
- package/dist/reader/index.js +3 -0
- package/dist/reader/index.js.map +1 -0
- package/dist/reader/readFile.d.ts +14 -0
- package/dist/reader/readFile.d.ts.map +1 -0
- package/{reader → dist/reader}/readFile.js +9 -7
- package/dist/reader/readFile.js.map +1 -0
- package/dist/reader/reader.d.ts +12 -0
- package/dist/reader/reader.d.ts.map +1 -0
- package/dist/reader/reader.js +2 -0
- package/dist/templates/fragmentTemplate.d.ts +11 -0
- package/dist/templates/fragmentTemplate.d.ts.map +1 -0
- package/{templates → dist/templates}/fragmentTemplate.js +3 -4
- package/dist/templates/fragmentTemplate.js.map +1 -0
- package/dist/templates/index.d.ts +4 -0
- package/dist/templates/index.d.ts.map +1 -0
- package/dist/templates/index.js +4 -0
- package/dist/templates/index.js.map +1 -0
- package/dist/templates/queryTemplate.d.ts +12 -0
- package/dist/templates/queryTemplate.d.ts.map +1 -0
- package/{templates → dist/templates}/queryTemplate.js +5 -5
- package/dist/templates/queryTemplate.js.map +1 -0
- package/package.json +61 -46
- package/builder/fragmentBuilder.js.map +0 -1
- package/builder/graphQLQueryBuilder.js.map +0 -1
- package/builder/index.js +0 -5
- package/builder/index.js.map +0 -1
- package/builder/queryBuilder.js.map +0 -1
- package/builder/results.js.map +0 -1
- package/cache/cache.js.map +0 -1
- package/cache/index.js +0 -7
- package/cache/index.js.map +0 -1
- package/cache/indexCache.js.map +0 -1
- package/docs/CHANGELOG.md +0 -5
- package/docs/CONTRIBUTING.md +0 -17
- package/docs/EXAMPLES.md +0 -135
- package/graphQLQueryParser.js +0 -57
- package/graphQLQueryParser.js.map +0 -1
- package/index.js +0 -5
- package/index.js.map +0 -1
- package/parser/graphql/fragment/fragmentExtractor.js +0 -21
- package/parser/graphql/fragment/fragmentExtractor.js.map +0 -1
- package/parser/graphql/fragment/fragmentParser.js.map +0 -1
- package/parser/graphql/graphQLExtractor.js +0 -3
- package/parser/graphql/graphQLParser.js +0 -3
- package/parser/graphql/index.js +0 -7
- package/parser/graphql/index.js.map +0 -1
- package/parser/graphql/query/queryExtractor.js.map +0 -1
- package/parser/graphql/query/queryParser.js.map +0 -1
- package/parser/index.js +0 -5
- package/parser/index.js.map +0 -1
- package/parser/parseResults.js +0 -3
- package/parser/parseResults.js.map +0 -1
- package/parser/parser.js +0 -3
- package/parser/readStreamParser.js +0 -60
- package/parser/readStreamParser.js.map +0 -1
- package/reader/directory/directoryReader.js +0 -29
- package/reader/directory/directoryReader.js.map +0 -1
- package/reader/errors/unsupportedTypeError.js +0 -15
- package/reader/errors/unsupportedTypeError.js.map +0 -1
- package/reader/file/fileReader.js +0 -24
- package/reader/file/fileReader.js.map +0 -1
- package/reader/graphQLQueryReader.js.map +0 -1
- package/reader/index.js +0 -5
- package/reader/index.js.map +0 -1
- package/reader/readFile.js.map +0 -1
- package/reader/reader.js +0 -3
- package/templates/fragmentTemplate.js.map +0 -1
- package/templates/index.js +0 -7
- package/templates/index.js.map +0 -1
- package/templates/queryTemplate.js.map +0 -1
- /package/{parser → dist/parser}/graphql/graphQLExtractor.js.map +0 -0
- /package/{parser → dist/parser}/graphql/graphQLParser.js.map +0 -0
- /package/{parser → dist/parser}/parser.js.map +0 -0
- /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
|
-
|
|
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
|
-
|
|
9
|
-
|
|
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(
|
|
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
|
-
|
|
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,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,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 @@
|
|
|
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
|
-
|
|
2
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
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(
|
|
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
|
-
|
|
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
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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,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 @@
|
|
|
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"}
|