All Projects → IonicaBizau → Node Cobol

IonicaBizau / Node Cobol

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

Projects that are alternatives of or similar to Node Cobol

Saleor Storefront
A GraphQL-powered, PWA, single-page application storefront for Saleor.
Stars: ✭ 591 (-2.48%)
Mutual labels:  hacktoberfest
Core
Simple forum software for building great communities.
Stars: ✭ 5,372 (+786.47%)
Mutual labels:  hacktoberfest
Challenges
PyBites Code Challenges
Stars: ✭ 604 (-0.33%)
Mutual labels:  hacktoberfest
Sp Dev List Formatting
SharePoint List Formatting Samples
Stars: ✭ 594 (-1.98%)
Mutual labels:  hacktoberfest
Cordova Js
Apache Cordova JavaScript Bridge
Stars: ✭ 598 (-1.32%)
Mutual labels:  hacktoberfest
Runtime
.NET is a cross-platform runtime for cloud, mobile, desktop, and IoT apps.
Stars: ✭ 7,742 (+1177.56%)
Mutual labels:  hacktoberfest
Matrix React Sdk
Matrix SDK for React Javascript
Stars: ✭ 590 (-2.64%)
Mutual labels:  hacktoberfest
Remove Bg
A Python API wrapper for removing background using remove.bg's API
Stars: ✭ 606 (+0%)
Mutual labels:  hacktoberfest
Graphite Web
A highly scalable real-time graphing system
Stars: ✭ 5,384 (+788.45%)
Mutual labels:  hacktoberfest
Earthdata Search
Earthdata Search is a web application developed by NASA EOSDIS to enable data discovery, search, comparison, visualization, and access across EOSDIS' Earth Science data holdings.
Stars: ✭ 602 (-0.66%)
Mutual labels:  hacktoberfest
Yupe
Yupe! is an open source Yiiframework-based online e-commerce solution. Demo https://demo.yupe.ru/
Stars: ✭ 596 (-1.65%)
Mutual labels:  hacktoberfest
Homebrewery
Create authentic looking D&D homebrews using only markdown
Stars: ✭ 598 (-1.32%)
Mutual labels:  hacktoberfest
Bookreader
The Internet Archive BookReader
Stars: ✭ 596 (-1.65%)
Mutual labels:  hacktoberfest
Authpass
AuthPass - Password Manager based on Flutter for all platforms. Keepass 2.x (kdbx 3.x) compatible.
Stars: ✭ 591 (-2.48%)
Mutual labels:  hacktoberfest
Images To Pdf
An app to convert images to PDF file!
Stars: ✭ 602 (-0.66%)
Mutual labels:  hacktoberfest
Badgehub
A way to quickly add a notification badge icon to any view. Make any view of a full-fledged animated notification center.
Stars: ✭ 592 (-2.31%)
Mutual labels:  hacktoberfest
Xamarin.forms
Xamarin.Forms Official Home
Stars: ✭ 5,485 (+805.12%)
Mutual labels:  hacktoberfest
Pdoc
🐍 ➡️ 📜 Auto-generate API documentation for Python projects
Stars: ✭ 604 (-0.33%)
Mutual labels:  hacktoberfest
Awesome Oneliner Bugbounty
A collection of awesome one-liner scripts especially for bug bounty tips.
Stars: ✭ 594 (-1.98%)
Mutual labels:  hacktoberfest
Materialdialog Android
📱Android Library to implement animated, 😍beautiful, 🎨stylish Material Dialog in android apps easily.
Stars: ✭ 602 (-0.66%)
Mutual labels:  hacktoberfest

cobol

cobol

Support me on Patreon Buy me a book PayPal Ask me anything Version Downloads Get help on Codementor

Buy Me A Coffee

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.
                   */}, {
                       compileargs:{
                           free: true
                       }
                   }, 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!
// => ------------

❓ Get Help

There are few ways to get help:

  1. Please post questions on Stack Overflow. You can open issues with questions, as long you add a link to your Stack Overflow question.
  2. For bug reports and feature requests, open issues. 🐛
  3. For direct and quick help, you can use Codementor. 🚀

📝 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.
  • compileargs (Object): Use to specificy cobc compiler options
  • 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 has become more popular than I expected. 😄 If you wrote or found an article about this project that is not in the list below, please add it.

😋 How to contribute

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

💖 Support my projects

I open-source almost everything I can, and I try to reply to everyone needing help using these projects. Obviously, this takes time. You can integrate and use these projects in your applications for free! You can even change the source code and redistribute (even resell it).

However, if you get some profit from this or just want to encourage me to continue creating stuff, there are few ways you can do it:

  • Starring and sharing the projects you like 🚀

  • Buy me a book—I love books! I will remember you after years if you buy me one. 😁 📖

  • PayPal—You can make one-time donations via PayPal. I'll probably buy a coffee tea. 🍵

  • Support me on Patreon—Set up a recurring monthly donation and you will get interesting news about what I'm doing (things that I don't share with everyone).

  • Bitcoin—You can send me bitcoins at this address (or scanning the code below): 1P9BRsmazNQcuyTxEqveUsnf5CERdq35V6

Thanks! ❤️

💫 Where is this library used?

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

  • cobol-promises

📜 License

MIT © Ionică Bizău

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].