not able to use swa cli as node dependencies in typescript project
Before filing this issue, please ensure you're using the latest CLI by running swa --version and comparing to the latest version on npm.
1.1.1
Are you accessing the CLI from the default port :4280 ?
- [ ] No, I am using a different port number (
--port) and accessing the CLI from that port - [x] Yes, I am accessing the CLI from port
:4280
Make sure you are accessing the URL printed in the console when running
swa start!
ℹ️ NOTE: Make sure to enable debug logs when running any swa commands using --verbose=silly
Describe the bug
I'm trying to use swa cli programmable in typescript project, but @azure/static-web-apps-cli package itself does not export/expose all types.

To Reproduce Steps to reproduce the behavior:
- Add
@azure/static-web-apps-clias project dependencies - Import config/deploy from the package, e.g.:
import { DEFAULT_CONFIG as swaConfig } from '@azure/static-web-apps-cli/dist/config.js'
import { deploy as swaDeploy } from '@azure/static-web-apps-cli/dist/cli/commands/deploy/index.js'
- Assign some properties to config, and run deploy e.g.:
swaConfig.appLocation = 'myapp'
swaConfig.deploymentToken = 'xxxxxx...'
swaConfig.verbose = 'silly'
await swaDeploy(swaConfig)
- Build the project
tsc - See error:
> tsc
node_modules/@azure/static-web-apps-cli/dist/cli/commands/deploy/deploy.d.ts:1:41 - error TS2304: Cannot find name 'SWACLIConfig'.
1 export declare function deploy(options: SWACLIConfig): Promise<void>;
~~~~~~~~~~~~
node_modules/@azure/static-web-apps-cli/dist/config.d.ts:1:38 - error TS2304: Cannot find name 'SWACLIConfig'.
1 export declare const DEFAULT_CONFIG: SWACLIConfig;
~~~~~~~~~~~~
Found 2 errors in 2 files.
Errors Files
1 node_modules/@azure/static-web-apps-cli/dist/cli/commands/deploy/deploy.d.ts:1
1 node_modules/@azure/static-web-apps-cli/dist/config.d.ts:1
Expected behavior swa cli used in a typescript project as a dependencies package
Screenshots If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):
- OS: Windows
- Version: 11
Additional context
After exploring content of node_modules/@azure/static-web-apps-cli/dist, I saw not all types have been exported in distribution, lack of types defined here: https://github.com/Azure/static-web-apps-cli/blob/main/src/swa.d.ts
I would like to revive this as I am trying to do something similar.
I would like to be able to get the deploy token during a CI build, but even though there is a way to do it
swa deploy --print-token
it produces a lot of unnecessary output.
Welcome to Azure Static Web Apps CLI (1.1.4)
Using configuration "attendance-tracker" from file:
C:\Users\Kevin Hill\projects\Fortunaverse\attendance-app\swa-cli.config.json
Deploying front-end files from folder:
C:\Users\Kevin Hill\projects\Fortunaverse\attendance-app\out
Deploying to environment: preview
Deployment token:
TOKENTOKENTOKENTOKENTOKENTOKENTOKENTOKENTOKENTOKENTOKENTOKEN
I would prefer the --print-token flag to print just the token and exclude the extra output. Maybe there is a better way to get the value programmatically, but I didn't see a documented way to require/import the tool in a script and use it.
This is my little wrapper script as a work-around...
const { spawnSync } = require("node:child_process");
// Find the SWA CLI script
const binPath = require.resolve("@azure/static-web-apps-cli/dist/cli/bin.js");
// Run the script and capture the output
const { stdout } = spawnSync("node", [binPath, "deploy", "--print-token"], {
stdio: "pipe",
});
// Remove empty lines from the output
const lines = `${stdout}`.split("\n").filter(Boolean);
// The last line is the token
const token = lines.pop();
process.stdout.write(token);
Drop that in a script and call like node .\scripts\get-azure-deploy-token.cjs to get your token printed to stdout for capturing into a variable during a CI build. 🙂