The Wayback Machine - https://web.archive.org/web/20170320120407/https://www.npmjs.com/package/cobol
node package manager

cobol

cobol

cobol

PayPal AMA Version Downloads Get help on Codementor

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

📋 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.
  • free (Boolean): Use free option while compiling with GnuCobol
  • 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.
  • remove (Boolean): Should the compiled executable be removed after running, default is true.
  • precompiled (Boolean): Run the precompiled executable instead of re-compiling, default is false.
  • Function callback: The callback function called with err, stdout and stderr.

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

😋 How to contribute

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

💫 Where is this library used?

If you are using this library in one of your projects, add it in this list. ✨

✨ Related

  • node.cobol—Node.js bridge for COBOL which allows you to run Node.js code from COBOL.
  • fortran—Fortran bridge for Node.js which allows you to run Fortran code from Node.js.
  • node.fortran—Execute Node.js in your Fortran programs.

📜 License

MIT © Ionică Bizău

Morty Proxy This is a proxified and sanitized view of the page, visit original site.