/nodejs-itoolkit

A JavaScript (Node.js) library for communicating with IBM i

Primary LanguageJavaScriptMIT LicenseMIT

Node.js itoolkit

npm Supported Node Versions ryver-chat ryver-signup Documentation Status

itoolkit is a Node.js interface to XMLSERVICE to access all things IBM i.

Table of Contents

Introduction

XMLSERVICE provides interfaces to interact with IBM i resources such as programs and commands. XMLSERVICE receives xml input and returns xml output.

For example run a CL command by sending the following XML input to XMLSERVICE.

<?xml version="1.0" encoding="UTF-8"?>
<myscript>
   <cmd exec="rexx">RTVJOBA USRLIBL(?) SYSLIBL(?)</cmd>
</myscript>

XMLSERVICE will run the command and respond with XML output.

<?xml version="1.0" encoding="UTF-8"?>
<myscript>
   <cmd exec="rexx">
      <success>+++ success RTVJOBA USRLIBL(?) SYSLIBL(?)</success>
      <row>
         <data desc="USRLIBL">QGPL  QTEMP</data>
      </row>
      <row>
         <data desc="SYSLIBL">QSYS  QSYS2  QHLPSYS  QUSRSYS</data>
      </row>
   </cmd>
</myscript>

itoolkit can run the same CL command with:

const { Connection, CommandCall } = require('itoolkit');
const { parseString } = require('xml2js');

const connection = new Connection({
  transport: 'ssh',
  transportOptions: { host: 'myhost', username: 'myuser', password: 'mypassword' },
});

const command = new CommandCall({ type: 'cl', command: 'RTVJOBA USRLIBL(?) SYSLIBL(?)' });

connection.add(command);

connection.run((error, xmlOutput) => {
  if (error) {
    throw error;
  }
  parseString(xmlOutput, (parseError, result) => {
    if (parseError) {
      throw parseError;
    }
    console.log(JSON.stringify(result));
  });

The purpose of this package is to simplify the process of creating XMLSERVICE input, invoking XMLSERVICE, and returning XMLSERVICE output from Node.js.

Installation

$ npm install itoolkit

Features

Documentation

Please read the docs.

Tests

Refer to the README.

Contributing

Please read the contribution guidelines.

License

MIT