wgc
Version:
The official CLI tool to manage the GraphQL Federation Platform Cosmo
36 lines • 1.42 kB
JavaScript
import { createClient as createConnectClient, createRouterTransport } from '@connectrpc/connect';
import { PlatformService, } from '@wundergraph/cosmo-connect/dist/platform/v1/platform_pb';
import { Command } from 'commander';
import RecomposeCommand from '../../src/commands/graph/common/recompose.js';
export function createMockTransport(response) {
return createRouterTransport(({ service }) => {
service(PlatformService, {
recomposeGraph: () => response,
});
});
}
export function createTestClient(response) {
return {
platform: createConnectClient(PlatformService, createMockTransport(response)),
};
}
export async function runRecompose(response, opts = {}) {
var _a;
const args = ['recompose', 'mygraph'];
if (opts.namespace) {
args.push('--namespace', opts.namespace);
}
if (opts.failOnCompositionError) {
args.push('--fail-on-composition-error');
}
if (opts.failOnAdmissionWebhookError) {
args.push('--fail-on-admission-webhook-error');
}
if (opts.suppressWarnings) {
args.push('--suppress-warnings');
}
const program = new Command();
program.addCommand(RecomposeCommand({ client: createTestClient(response), isMonograph: (_a = opts.isMonograph) !== null && _a !== void 0 ? _a : false }));
await program.parseAsync(args, { from: 'user' });
}
//# sourceMappingURL=utils.js.map