Skip to content

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

License

Notifications You must be signed in to change notification settings

IBM/nodejs-itoolkit

Repository files navigation

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, with the help of an XML parser, can run the same CL command with:

const { Connection, CommandCall } = require('itoolkit');
const { XMLParser } = require('fast-xml-parser');

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;
  }

  const Parser = new XMLParser();
  const result = Parser.parse(xmlOutput);

  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

Release

For information on making a release, read RELEASE.md.