A Javascript/Typescript wrapper to manage VPN connections using OpenVPN command line instructions.
npm install openvpn-cli-wrapperOpenVPN CLI Wrapper
===================
A Javascript/Typescript wrapper to manage VPN connections using OpenVPN command-line instructions.
This minimal implementation library is used in a production software to open a VPN connection using Electron.
Thanks to resin.io openvpn-client project for the original coffeescript
implementation.
-------------------
Installation
------------
The OpenVPN community binaries have to be pre-installed and
put in the PATH environment folder under Windows.
Install via npm.
``
`
$ npm install openvpn-cli-wrapper
`
or
Install via git clone
`
$ git clone https://github.com/masvis/openvpn-cli-wrapper
$ cd openvpn-cli-wrapper
$ npm install
test/openvpn-client.test.ts
Documentation
-------
Under you can read a default implementation of a connection and disconnection test.
sudo
Class: OpenVPN
* [Method: Constructor(vpnOpts, [executablePath]='openvpn')](#openvpn_constructor)
* Method: .connect()
* Method: .disconnect()
* Events
$3
This class is the core of the library.
#### Method: Constructor(vpnOpts, [executablePath]='openvpn')
The constructor needs to be used sending
* vpnOpts: an array of CLI options.
* executablePath _(optional, default is 'openvpn')_: the path of the OpenVPN executable. This could be used to
avoid to change the PATH env variable under Windows or to use different versions of the executable.
#### Method: .connect()
Launch the OpenVPN process
> Note: If your configuration need a superuser operation in Linux (ex.: creating a TAP device), you need to run
the test or your parent application using .
events
#### Method: .disconnect()
Close the OpenVPN process
> Note: Under a Linux environment you need to shutdown the process calling the disconnect before quitting you
application.
#### Events
Events are emitted by the field of an OpenVPN class instance.
connect
* connected: this event is emitted after method is called, only if connection is established without
connect
errors.
* disconnected: this event is emitted after method is called if an error occurs or after connected
`
event if a disconnection or an error occurs.
* data: the process is writing a new line of info data. This event will emit the data as parameter.
Test
----
Using
``
$ npm test
you can check that all the dependencies are correctly installed.
LICENSE
-------
MIT license. See the LICENSE file for details.