eng/common/tsp-client/README.md
This directory contains npm package definitions for @azure-tools/typespec-client-generator-cli (tsp-client) with pinned versions to ensure reproducible builds across environments.
package.json - npm package definition with pinned tsp-client versionpackage-lock.json - Lock file ensuring exact dependency versions# Navigate to this directory
cd eng/common/tsp-client
# Install dependencies
npm ci
After installation, you can run tsp-client using npm exec --prefix {path_to_the_eng/common/tsp-client}.
Note that you should not navigate into the eng/common/tsp-client folder, since several tsp-client commands require the current working directory to be the client library's root.
# Set the tsp-client directory path relative to your current working directory
_TspClientDir=eng/common/tsp-client
# Get help
npm exec --prefix ${_TspClientDir} --no -- tsp-client --help
# Check version
npm exec --prefix ${_TspClientDir} --no -- tsp-client version
# Generate client code
npm exec --prefix ${_TspClientDir} --no -- tsp-client generate --output-dir ./generated
# Initialize a new project
npm exec --prefix ${_TspClientDir} --no -- tsp-client init --tsp-config ./tspconfig.yaml
_TspClientDir=eng/common/tsp-client
npm ci --prefix ${_TspClientDir}
npm exec --prefix ${_TspClientDir} --no -- tsp-client init --update-if-exists --tsp-config https://github.com/Azure/azure-rest-api-specs/blob/dee71463cbde1d416c47cf544e34f7966a94ddcb/specification/contosowidgetmanager/Contoso.WidgetManager/tspconfig.yaml
Dependabot is configured to automatically check for updates to @azure-tools/typespec-client-generator-cli daily and create pull requests with updated package.json and package-lock.json files. This ensures the package stays current with the latest versions while maintaining security through the PR review process.
If you need to manually update the tsp-client version:
Edit package.json to update the version:
{
"dependencies": {
"@azure-tools/typespec-client-generator-cli": "0.28.1"
}
}
Update the lock file:
npm install
Commit both package.json and package-lock.json