Example how to generate and use wsdl-tsclient: wsdl-tsclient-example
Generate a soap client with typescript definitions from a WSDL file.
This library uses ts-morph to generate typescript code and soap for runtime. Inspired by Java wsimport and openapi-generator.
NOTE: Add soap to your npm runtime dependencies (npm i soap
).
npm i wsdl-tsclient
or install it with -g
to have CLI globally available.
npm i -g wsdl-tsclient
You can check example repository wsdl-tsclient-example
Easiest way to generate client from is to use CLI. You need to provide only path to .wsdl
file and
path to output directory (-o
param). If you want to generate only typescript types (no runtime code) for node-soap, you can pass --emitDefinitionsOnly
param.
wsdl-tsclient ./soap.wsdl -o ./generated
wsdl-tsclient ./resources/**/*.wsdl -o ./generated
- using glob
you can also use npx
npx wsdl-tsclient ./soap.wsdl -o ./generated
wsdl-tsclient [options] [path]
Options:
--help Show help [boolean]
-v, --version [boolean]
-o Output directory [string] [required]
--emitDefinitionsOnly Generate only Definitions [boolean]
--modelNamePreffix Prefix for generated interface names[string]
--modelNameSuffix Suffix for generated interface names[string]
--caseInsensitiveNames Case-insensitive name while parsing
definition names [boolean]
--maxRecursiveDefinitionName Maximum count of definition's with same name
but increased suffix. Will throw an error if
exceed [number]
--kebabFileName Name files using kebab format (file-name.ts)
[boolean]
--deduplicateSoapMethods Remove duplicated methods from the client
--generateAttributes Generate element attributes [boolean]
interface [boolean]
--quiet Suppress all logs [boolean]
--verbose Print verbose logs [boolean]
--no-color Logs without colors [boolean]
Examples:
wsdl-tsclient file.wsdl -o ./generated/
wsdl-tsclient ./res/**/*.wsdl -o ./generated/
import { generateClient } from "wsdl-tsclient";
parseAndGenerate("./path/to/MyWsdl.wsdl", "./generated/");
Note: Make sure you have soap package in your runtime dependencies (npm i soap
)
import { createClientAsync } from "./generated/MyWsdl";
const client = await createClientAsync("./path/to/wsdl.wsdl");
client.CallSoapMethodAsync();
Setting basic auth
import soap from "soap";
import { createClientAsync } from "./generated/MyWsdl";
const client = await createClientAsync("./path/to/wsdl.wsdl");
const basicAuth = new soap.BasicAuthSecurity(auth.username, auth.password);
client.setSecurity(basicAuth);
client.CallSoapMethodAsync();
for more information about the use of the client, read more about soap
The source code is licensed under the MIT license