/node-cobol

:tv: COBOL bridge for NodeJS which allows you to run COBOL code from NodeJS.

Primary LanguageJavaScriptOtherNOASSERTION

cobol

cobol Donate now

COBOL bridge for NodeJS which allows you to run COBOL code from NodeJS.

Can I use this on production?

Of course, you can! It's production ready! If you ever did such a thing, ping me (@IonicaBizau). 💥 💫

Installation

Currently GNUCobol is required. If you are using a debian-based distribution you can install it using:

$ sudo apt-get install open-cobol

It would be interesting to fallback into a COBOL compiler written in NodeJS. Contributions are welcome! 😄

Then, install the cobol package.

$ npm i cobol

Press Highlights

This project seems to more popular than I expected. 😄 If you wrote or found an article about this project which is not added in this list, add it.

Example

// Dependencies
var Cobol = require("cobol");

// Execute some COBOL snippets
Cobol(function () { /*
       IDENTIFICATION DIVISION.
       PROGRAM-ID. HELLO.
       ENVIRONMENT DIVISION.
       DATA DIVISION.
       PROCEDURE DIVISION.

       PROGRAM-BEGIN.
           DISPLAY "Hello world".

       PROGRAM-DONE.
           STOP RUN.
*/ }, function (err, data) {
    console.log(err || data);
});
// => "Hello World"

Cobol(__dirname + "/args.cbl", {
    args: ["Alice"]
}, function (err, data) {
    console.log(err || data);
});
// => "Your name is: Alice"

// This will read data from stdin
Cobol(function () { /*
       IDENTIFICATION DIVISION.
       PROGRAM-ID. APP.
      *> http://stackoverflow.com/q/938760/1420197

       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
       SELECT SYSIN ASSIGN TO KEYBOARD ORGANIZATION LINE SEQUENTIAL.

       DATA DIVISION.
       FILE SECTION.
       FD SYSIN.
       01 ln PIC X(64).
          88 EOF VALUE HIGH-VALUES.
       WORKING-STORAGE SECTION.
       PROCEDURE DIVISION.
       DISPLAY "Write something and then press the <Enter> key"
       OPEN INPUT SYSIN
       READ SYSIN
       AT END SET EOF TO TRUE
       END-READ
       PERFORM UNTIL EOF
       DISPLAY "You wrote: ", ln
       DISPLAY "------------"
       READ SYSIN
       AT END SET EOF TO TRUE
       END-READ
       END-PERFORM
       CLOSE SYSIN
       STOP RUN.
*/ }, {
    stdin: process.stdin
  , stdout: process.stdout
}, function (err) {
    if (err) {
        console.log(err);
    }
});
// => Write something and then press the <Enter> key
// <= Hi there!
// => You wrote: Hi there!
// => ------------

Documentation

Cobol(input, options, callback)

Runs COBOL code from Node.JS side.

Params

  • Function|String|Path input: A function containing a comment with inline COBOL code, the cobol code itself or a path to a COBOL file.
  • Object options: An object containing the following fields:
  • cwd (String): Where the COBOL code will run (by default in the current working directory)
  • args (Array): An array of strings to pass to the COBOL process.
  • stdin (Stream): An optional stdin stream used to pipe data to the stdin stream of the COBOL process.
  • stderr (Stream): An optional stderr stream used to pipe data to the stdin stream of the COBOL process.
  • stdeout (Stream): An optional stdout stream used to pipe data to the stdin stream of the COBOL process.
  • Function callback: The callback function called with err, stdout and stderr.

How to contribute

Have an idea? Found a bug? See how to contribute.

License

KINDLY © Ionică Bizău–The LICENSE file contains a copy of the license.

Heading image source–Thanks! 🍰