Skip to content

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

License

Notifications You must be signed in to change notification settings

rbkrabbe/node-cobol

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

64 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

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

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • COBOL 62.3%
  • JavaScript 37.7%