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

Folders and files

NameName
Last commit message
Last commit date

Latest commit

d5776b4 · Jul 20, 2020
Jun 11, 2020
Apr 30, 2020
Jun 30, 2020
Jul 20, 2020
Jun 11, 2020
Mar 7, 2019
Mar 12, 2020
May 8, 2020
Apr 22, 2020
May 8, 2020
Feb 25, 2019
Mar 12, 2020
May 27, 2020
Feb 20, 2017
Jul 14, 2020
Jul 20, 2020

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