@omnigraph/soap
Version:
35 lines (34 loc) • 1.31 kB
JavaScript
import { defaultImportFn, readFileOrUrl } from '@graphql-mesh/utils';
import { handleMaybePromise } from '@whatwg-node/promise-helpers';
import { SOAPLoader } from './SOAPLoader.js';
export * from './SOAPLoader.js';
export * from '@graphql-mesh/transport-soap';
export function loadSOAPSubgraph(subgraphName, options) {
return ({ cwd, fetch, logger }) => {
const soapLoader = new SOAPLoader({
subgraphName,
fetch,
logger,
cwd,
// Configuration from the user
schemaHeaders: options.schemaHeaders,
operationHeaders: options.operationHeaders,
endpoint: options.endpoint,
bodyAlias: options.bodyAlias,
soapHeaders: options.soapHeaders,
});
return {
name: subgraphName,
schema$: handleMaybePromise(() => readFileOrUrl(options.source, {
allowUnknownExtensions: true,
cwd,
fetch,
importFn: defaultImportFn,
logger,
}), wsdl => handleMaybePromise(() => soapLoader.loadWSDL(wsdl), object => {
soapLoader.loadedLocations.set(options.source, object);
return soapLoader.buildSchema();
})),
};
};
}