Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

gqlx-cli

Package Overview
Dependencies
Maintainers
1
Versions
10
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

gqlx-cli - npm Package Compare versions

Comparing version
0.2.1
to
0.3.0
+4
-0
CHANGELOG.md
# gqlx CLI Changelog
## 0.3.0
- Definition of static http headers for every outgoing request via `header` cli argument. See `gqlx-cli serve —help` for further details.
## 0.2.1

@@ -4,0 +8,0 @@

+3
-2

@@ -1,3 +0,4 @@

import { Request } from 'express';
import { Request as ExpressRequest } from 'express';
import { Service } from 'gqlx-apollo-express-server';
import { RequestAPI, Request, Options, RequiredUriUrl } from 'request';
import { ResolverApi, ServiceData } from '../types';

@@ -13,2 +14,2 @@ export declare const apiDefinition: {

};
export declare function createApi(service: Service<ResolverApi, ServiceData>, req: Request | undefined): ResolverApi;
export declare function createApi(fetch: RequestAPI<Request, Options, RequiredUriUrl>, service: Service<ResolverApi, ServiceData>, req: ExpressRequest | undefined): ResolverApi;

@@ -14,7 +14,7 @@ "use strict";

};
function createApi(service, req) {
function createApi(fetch, service, req) {
return {
del(url) {
const options = io_1.createOptions(service.data.url, url);
return io_1.request('DELETE', req, options);
return io_1.request(fetch, 'DELETE', req, options);
},

@@ -26,7 +26,7 @@ form(file, data) {

const options = io_1.createOptions(service.data.url, url);
return io_1.request('GET', req, options);
return io_1.request(fetch, 'GET', req, options);
},
query(url, q) {
const options = io_1.createOptions(service.data.url, url, { query: q });
return io_1.request('POST', req, options);
return io_1.request(fetch, 'POST', req, options);
},

@@ -38,7 +38,7 @@ listen(topic) {

const options = io_1.createOptions(service.data.url, url, body);
return io_1.request('POST', req, options);
return io_1.request(fetch, 'POST', req, options);
},
put(url, body) {
const options = io_1.createOptions(service.data.url, url, body);
return io_1.request('PUT', req, options);
return io_1.request(fetch, 'PUT', req, options);
},

@@ -45,0 +45,0 @@ };

@@ -1,1 +0,1 @@

{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":";;AAEA,yCAAyC;AACzC,6BAA2D;AAG9C,QAAA,aAAa,GAAG;IAC3B,GAAG,EAAE,IAAI;IACT,IAAI,EAAE,IAAI;IACV,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,IAAI;IACT,KAAK,EAAE,IAAI;IACX,IAAI,EAAE,IAAI;IACV,MAAM,EAAE,KAAK;CACd,CAAC;AAEF,SAAgB,SAAS,CAAC,OAA0C,EAAE,GAAwB;IAC5F,OAAO;QACL,GAAG,CAAC,GAA0B;YAC5B,MAAM,OAAO,GAAG,kBAAa,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACrD,OAAO,YAAO,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;QACzC,CAAC;QACD,IAAI,CAAC,IAAS,EAAE,IAAS;YACvB,OAAO,gBAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACjC,CAAC;QACD,GAAG,CAAC,GAA0B;YAC5B,MAAM,OAAO,GAAG,kBAAa,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACrD,OAAO,YAAO,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;QACtC,CAAC;QACD,KAAK,CAAC,GAAW,EAAE,CAAS;YAC1B,MAAM,OAAO,GAAG,kBAAa,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YACnE,OAAO,YAAO,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;QACvC,CAAC;QACD,MAAM,CAAC,KAAa;YAClB,OAAO,sBAAW,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;QACD,IAAI,CAAC,GAA6B,EAAE,IAAU;YAC5C,MAAM,OAAO,GAAG,kBAAa,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;YAC3D,OAAO,YAAO,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;QACvC,CAAC;QACD,GAAG,CAAC,GAA6B,EAAE,IAAU;YAC3C,MAAM,OAAO,GAAG,kBAAa,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;YAC3D,OAAO,YAAO,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;QACtC,CAAC;KACF,CAAC;AACJ,CAAC;AA7BD,8BA6BC"}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":";;AAEA,yCAAyC;AAEzC,6BAA2D;AAG9C,QAAA,aAAa,GAAG;IAC3B,GAAG,EAAE,IAAI;IACT,IAAI,EAAE,IAAI;IACV,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,IAAI;IACT,KAAK,EAAE,IAAI;IACX,IAAI,EAAE,IAAI;IACV,MAAM,EAAE,KAAK;CACd,CAAC;AAEF,SAAgB,SAAS,CACvB,KAAmD,EACnD,OAA0C,EAC1C,GAA+B;IAE/B,OAAO;QACL,GAAG,CAAC,GAA0B;YAC5B,MAAM,OAAO,GAAG,kBAAa,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACrD,OAAO,YAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;QAChD,CAAC;QACD,IAAI,CAAC,IAAS,EAAE,IAAS;YACvB,OAAO,gBAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACjC,CAAC;QACD,GAAG,CAAC,GAA0B;YAC5B,MAAM,OAAO,GAAG,kBAAa,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACrD,OAAO,YAAO,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;QAC7C,CAAC;QACD,KAAK,CAAC,GAAW,EAAE,CAAS;YAC1B,MAAM,OAAO,GAAG,kBAAa,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YACnE,OAAO,YAAO,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;QAC9C,CAAC;QACD,MAAM,CAAC,KAAa;YAClB,OAAO,sBAAW,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;QACD,IAAI,CAAC,GAA6B,EAAE,IAAU;YAC5C,MAAM,OAAO,GAAG,kBAAa,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;YAC3D,OAAO,YAAO,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;QAC9C,CAAC;QACD,GAAG,CAAC,GAA6B,EAAE,IAAU;YAC3C,MAAM,OAAO,GAAG,kBAAa,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;YAC3D,OAAO,YAAO,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;QAC7C,CAAC;KACF,CAAC;AACJ,CAAC;AAjCD,8BAiCC"}

@@ -1,5 +0,6 @@

import { Request } from 'express';
import { RequestAPI, Request, Options, RequiredUriUrl } from 'request';
import { Request as ExpressRequest } from 'express';
import { MutationOptions, QueryOptions } from '../types';
export declare function request(method: string, req: Request | undefined, options: MutationOptions): Promise<unknown>;
export declare function request(fetch: RequestAPI<Request, Options, RequiredUriUrl>, method: string, req: ExpressRequest | undefined, options: MutationOptions): Promise<unknown>;
export declare function getFormData(upload: any, data: any): Promise<unknown>;
export declare function createOptions(host: string, pathOrOptions: string | (QueryOptions & Partial<MutationOptions>), body?: any): MutationOptions;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const fetch = require("request");
const url_1 = require("url");

@@ -9,3 +8,3 @@ const concat = require('concat-stream');

}
function request(method, req, options) {
function request(fetch, method, req, options) {
return new Promise((resolve, reject) => {

@@ -12,0 +11,0 @@ const headers = (req && req.headers) || {};

@@ -1,1 +0,1 @@

{"version":3,"file":"io.js","sourceRoot":"","sources":["../../src/api/io.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"io.js","sourceRoot":"","sources":["../../src/api/io.ts"],"names":[],"mappings":"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"}

@@ -12,6 +12,7 @@ import { Argv, Arguments } from 'yargs';

debug?: boolean;
header?: string[];
}
export declare const command = "serve <source>";
export declare const describe = "Validates the schema from the given source gqlx file.";
export declare function builder(args: Argv): Argv<import("yargs").Omit<import("yargs").Omit<import("yargs").Omit<import("yargs").Omit<import("yargs").Omit<import("yargs").Omit<import("yargs").Omit<{
export declare function builder(args: Argv): Argv<import("yargs").Omit<import("yargs").Omit<import("yargs").Omit<import("yargs").Omit<import("yargs").Omit<import("yargs").Omit<import("yargs").Omit<import("yargs").Omit<{
source: unknown;

@@ -27,2 +28,6 @@ } & {

} & {
header: (string | number)[] | undefined;
}, "header"> & {
header: never[];
} & {
"service-url": string | undefined;

@@ -29,0 +34,0 @@ } & {

@@ -5,2 +5,3 @@ "use strict";

const bodyParser = require("body-parser");
const request = require("request");
const path_1 = require("path");

@@ -23,2 +24,6 @@ const inspector_1 = require("inspector");

.default('host', 'http://localhost')
.array('header')
.describe('header', 'Additional http headers to be set on every request')
.example('$0 serve --header="Authorization=Bearer *****"', 'sets the Authorization header to "Bearer *****" for every request')
.default('header', [])
.string('service-url')

@@ -53,2 +58,9 @@ .describe('service-url', 'The root URL of the service target, if any.')

const app = express();
const fetch = request.defaults({
headers: argv.header &&
argv.header
.map(arg => arg.split('=', 2)) // split key=value
.filter(tuple => tuple.length === 2 && tuple[1]) // remove elements without a value
.reduce((headers, [key, value]) => (Object.assign({}, headers, { [key]: headers[key] ? [...headers[key], value] : [value] })), {}),
});
const gqlxServer = gqlx_apollo_express_server_1.configureGqlx({

@@ -61,3 +73,5 @@ port: argv.port,

},
createApi,
createApi(...args) {
return createApi(fetch, ...args);
},
services: [originalService],

@@ -64,0 +78,0 @@ });

@@ -1,1 +0,1 @@

{"version":3,"file":"serve.js","sourceRoot":"","sources":["../../src/commands/serve.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"serve.js","sourceRoot":"","sources":["../../src/commands/serve.ts"],"names":[],"mappings":"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"}
{
"name": "gqlx-cli",
"description": "Command line utility for GraphQL eXtended.",
"version": "0.2.1",
"version": "0.3.0",
"main": "dist",

@@ -6,0 +6,0 @@ "types": "dist",

@@ -1,4 +0,5 @@

import { Request } from 'express';
import { Request as ExpressRequest } from 'express';
import { Service } from 'gqlx-apollo-express-server';
import { subscribeTo } from './listener';
import { RequestAPI, Request, Options, RequiredUriUrl } from 'request';
import { createOptions, request, getFormData } from './io';

@@ -17,7 +18,11 @@ import { ResolverApi, QueryOptions, MutationOptions, ServiceData } from '../types';

export function createApi(service: Service<ResolverApi, ServiceData>, req: Request | undefined): ResolverApi {
export function createApi(
fetch: RequestAPI<Request, Options, RequiredUriUrl>,
service: Service<ResolverApi, ServiceData>,
req: ExpressRequest | undefined,
): ResolverApi {
return {
del(url: string | QueryOptions) {
const options = createOptions(service.data.url, url);
return request('DELETE', req, options);
return request(fetch, 'DELETE', req, options);
},

@@ -29,7 +34,7 @@ form(file: any, data: any) {

const options = createOptions(service.data.url, url);
return request('GET', req, options);
return request(fetch, 'GET', req, options);
},
query(url: string, q: string) {
const options = createOptions(service.data.url, url, { query: q });
return request('POST', req, options);
return request(fetch, 'POST', req, options);
},

@@ -41,9 +46,9 @@ listen(topic: string) {

const options = createOptions(service.data.url, url, body);
return request('POST', req, options);
return request(fetch, 'POST', req, options);
},
put(url: string | MutationOptions, body?: any) {
const options = createOptions(service.data.url, url, body);
return request('PUT', req, options);
return request(fetch, 'PUT', req, options);
},
};
}

@@ -1,3 +0,3 @@

import * as fetch from 'request';
import { Request } from 'express';
import { RequestAPI, Request, Options, RequiredUriUrl } from 'request';
import { Request as ExpressRequest } from 'express';
import { resolve } from 'url';

@@ -12,3 +12,8 @@ import { MutationOptions, QueryOptions } from '../types';

export function request(method: string, req: Request | undefined, options: MutationOptions) {
export function request(
fetch: RequestAPI<Request, Options, RequiredUriUrl>,
method: string,
req: ExpressRequest | undefined,
options: MutationOptions,
) {
return new Promise((resolve, reject) => {

@@ -15,0 +20,0 @@ const headers = (req && req.headers) || {};

import * as express from 'express';
import * as bodyParser from 'body-parser';
import * as request from 'request';
import { resolve } from 'path';
import { Argv, Arguments } from 'yargs';
import { open } from 'inspector';
import { configureGqlx, createService } from 'gqlx-apollo-express-server';
import { configureGqlx, createService, Service } from 'gqlx-apollo-express-server';
import { readFile, watch } from '../utils';

@@ -19,2 +20,3 @@

debug?: boolean;
header?: string[];
}

@@ -37,2 +39,9 @@

.default('host', 'http://localhost')
.array('header')
.describe('header', 'Additional http headers to be set on every request')
.example(
'$0 serve --header="Authorization=Bearer *****"',
'sets the Authorization header to "Bearer *****" for every request',
)
.default('header', [])
.string('service-url')

@@ -74,2 +83,15 @@ .describe('service-url', 'The root URL of the service target, if any.')

const app = express();
const fetch = request.defaults({
headers:
argv.header &&
argv.header
.map(arg => arg.split('=', 2)) // split key=value
.filter(tuple => tuple.length === 2 && tuple[1]) // remove elements without a value
.reduce(
(headers, [key, value]) => ({ ...headers, [key]: headers[key] ? [...headers[key], value] : [value] }),
{},
),
});
const gqlxServer = configureGqlx({

@@ -82,3 +104,5 @@ port: argv.port,

},
createApi,
createApi(...args) {
return createApi(fetch, ...args);
},
services: [originalService],

@@ -85,0 +109,0 @@ });