gqlpq
Version:
Utility to parse GraphQL files from your client and generate list of persisted queries.
59 lines • 1.89 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const yargs = require("yargs");
const apollo_utilities_1 = require("apollo-utilities");
const io_1 = require("./io");
const pq_1 = require("./pq");
const log_1 = require("./log");
const defaultInput = ".";
const defaultOutput = "gqlpq.json";
const defaultFilter = new RegExp("((\.graphql)|(\.gql))$", "i");
class App {
main() {
const config = this.parseArgs();
const parser = new pq_1.Parser();
if (config.typename) {
parser.addTransformer(apollo_utilities_1.addTypenameToDocument);
}
let filter = defaultFilter;
try {
if (config.filter) {
filter = new RegExp(config.filter, 'i');
}
}
catch (err) {
log_1.logger.error(`parsing filter regexp: ${err.message}`);
}
try {
io_1.InputReader.loadFiles(config.input, filter, parser);
}
catch (err) {
log_1.logger.error(`parsing graphql files: ${err.message}`);
return 1;
}
try {
io_1.OutputWriter.write(config.output, parser.getQueries());
}
catch (err) {
log_1.logger.error(`writing persisted queries file: ${err.message}`);
return 1;
}
return 0;
}
parseArgs() {
const parg = yargs.options({
input: { type: 'string', default: defaultInput },
output: { type: 'string', default: defaultOutput },
typename: { type: 'boolean', default: true },
filter: { type: 'string', default: null },
}).argv;
return {
input: parg.input,
output: parg.output,
typename: parg.typename,
filter: parg.filter,
};
}
}
new App().main();
//# sourceMappingURL=index.js.map