https://github.com/homecarehomebase/azcli-npm
node module wrapper around azure cli 2.x
https://github.com/homecarehomebase/azcli-npm
azure azure-cli npm-module
Last synced: 6 months ago
JSON representation
node module wrapper around azure cli 2.x
- Host: GitHub
- URL: https://github.com/homecarehomebase/azcli-npm
- Owner: HomecareHomebase
- License: mit
- Created: 2018-11-16T21:04:36.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2019-03-20T18:10:18.000Z (almost 7 years ago)
- Last Synced: 2025-08-17T00:39:42.804Z (7 months ago)
- Topics: azure, azure-cli, npm-module
- Language: TypeScript
- Size: 263 KB
- Stars: 0
- Watchers: 7
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# azcli-npm
> node module wrapper around azure cli 2.x
[](https://www.npmjs.com/package/azcli-npm)
## Install
```bash
npm i -S azcli-npm
```
## Usage
Basic usage and CLI version reporting
```js
import azcli from 'azcli-npm'
var cli = new azcli()
console.log(cli.getAzCliVersion())
```
Set configuration property overrides
```js
import azcli from 'azcli-npm'
var cli = new azcli( {
minVersion: '2.0.0'
maxVersion: '2.1'
ignoreVersion: false
})
console.log(cli.getAzCliVersion())
```
Login with a SP and secret
```js
import azcli from 'azcli-npm';
var cli = new azcli()
cli.login('', '','')
cli.logout()
```
Login with a SP and PEM certificate
```js
import azcli from 'azcli-npm';
var cli = new azcli()
cli.loginWithCert('', '','')
cli.logout()
```
Set Subscription
```js
import azcli from 'azcli-npm';
var cli = new azcli()
cli.login(...)
.setSubscription('')
.logout()
```
List VMs via json object
```js
import azcli from 'azcli-npm';
var cli = new azcli()
var results =
cli.login(...)
.setSubscription(...)
.start()
.arg('vm')
.arg('list')
.execJson()
results.forEach(function(element)=>{
console.log(element.id)
console.log(element.name)
console.log(element.location)
})
cli.logout()
```
## Unit test/mocking
If you want to incoroporate this module into your unit tests we provide a built-in mocking system, or you can roll your own.
To roll your own create a class that implements ShellRunner and its constructor. Then just override all the public facing functions
```js
import azcli, { ShellRunner, ShellRunnerType, IExecResults } from 'azcli-npm'
export class MyMock extends ShellRunner {
constructor(shellPath: string){
super(shellPath)
};
}
//Now you can use this class as the shell override type when creating a new cli()
var cli = new azcli( {
shellRunner: MyMock
})
```
You can instead use the built-in mocking system which provides helpers for setting expected response types for commands
```js
import cli, { IAzOptions, IExecResults,
MockResponseTypes, MockRunner, MockResponse, MockResponseFunctions} 'azcli-npm'
let options = { shellRunner: MockRunner}
let wrapper = MockResponse(options)
//grab the cli instance injected with MockRunner
let runner = wrapper.cli
//the mr object is used to inject responses before commands are executed
//these functions return the cli instance so you can directly chain off it
let mr = wrapper.mr
//now you can assign response objects before calling commands
//this will be the result for the setSubscription() call
mr.AddMockResponse( MockResponseTypes.justReturnCode ) //-> returns wrapper.cli
.setSubscription('subscription with space')
//this creates a custom result for the 'webapp list' cmd after
let results =
mr.AddResponse({
code: 0,
stdout: JSON.stringify([{id: '/id'}])
}) // -> returns wrapper.cli so we can chain from it
.start()
.arg('webapp')
.arg('list')
.execJson()
console.log(results[0].id)
//You can also use this without chaining if you have commands pre-wrapped
mr.AddMockResponse( MockResponseTypes.justReturnCode )
mr.AddMockResponse( MockResponseTypes.justReturnCode )
//this chain will consume the two mock responses above
runner.login(...)
.setSubscription(...)
```
## Contributing
[Contribution Guide](./CONTRIBUTING.md)
## License
[MIT](./LICENSE)