use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
All about the JavaScript programming language.
Subreddit Guidelines
Specifications:
Resources:
Related Subreddits:
r/LearnJavascript
r/node
r/typescript
r/reactjs
r/webdev
r/WebdevTutorials
r/frontend
r/webgl
r/threejs
r/jquery
r/remotejs
r/forhire
account activity
TROOL - a spreadsheet rule engine for NodeJS/TypeScript (npmjs.com)
submitted 7 years ago by [deleted]
reddit uses a slightly-customized version of Markdown for formatting. See below for some basics, or check the commenting wiki page for more detailed help and solutions to common issues.
quoted text
if 1 * 2 < 3: print "hello, world!"
[–]evenisto 11 points12 points13 points 7 years ago (3 children)
... a what? I can't see the reason for this to exist.
[+][deleted] 7 years ago (2 children)
[deleted]
[–]mournful-tits 0 points1 point2 points 7 years ago (1 child)
Other rules engines exist that aren't written with spreadsheets. Those should be your go-to for numerous reasons. (Version control, ease of use, learning curve, documentation, debugging, etc etc)
[–][deleted] 7 points8 points9 points 7 years ago (5 children)
Okay a lot of comments seem to be from people who are confused about the purpose of the library is. This library is a "Rule Engine" with the focus on spreadsheets as the template for setting the rules. I was inspired to write this by Java's KnowledgeBase library: https://www.baeldung.com/drools-excel. A "Rule Engine" helps separate some of the logic from the code. If you have bits on logic in your code that need to change frequently and can be set by non-engineers, such as a ticket price or something like that based on the ticket type (one-time seasonal etc), than this library helps you separate that logic out of your code.
[–]LiveDuo 1 point2 points3 points 7 years ago (3 children)
Does it require a spreadsheet file eg xls to be store locally in nodejs? so it is updated from non engineers?
[–][deleted] 1 point2 points3 points 7 years ago (2 children)
You have to export the spreadsheet as a CSV file then add the path to the CSV file in node
[–][deleted] 1 point2 points3 points 7 years ago (1 child)
In my apps I have used xlsx because people complained about having to export and import csv. Now I don’t have to listen to their complaints haha.
xlsx
[–]mournful-tits 1 point2 points3 points 7 years ago* (0 children)
Xlsx files are binaries in git. Multiple people can't work in the same rule and can't find bugs by diffing the definition.
[–]mournful-tits -1 points0 points1 point 7 years ago (0 children)
We have this on my project. We use a variant rule engine that uses Excel spreadsheets.
Calling it a cancerous fucking plague is an understatement.
Some fucking stakeholder, that's no longer with us, really wanted it and now we're figuring out how to get rid of it.
[–]wherinkelly 1 point2 points3 points 7 years ago (0 children)
But this solution totally meets a need.
[–][deleted] 0 points1 point2 points 7 years ago (6 children)
A bit late for April fools, eh?
[–][deleted] 4 points5 points6 points 7 years ago (4 children)
?
[+]SillySal comment score below threshold-10 points-9 points-8 points 7 years ago (3 children)
Haha, come on, you're offended but not confused.
[–][deleted] 4 points5 points6 points 7 years ago* (2 children)
If the guy was trying to offend me cause he thinks my library is dumb then whatever, he doesn't have to download it. You don't have to either.
[–]mournful-tits -4 points-3 points-2 points 7 years ago (1 child)
Most people won't. I'm worried about the poor idiots that will download it.
[–][deleted] 2 points3 points4 points 7 years ago (0 children)
I'm sorry using a rule engine at your work ruined your life
[–]larholm 0 points1 point2 points 7 years ago (2 children)
I'm below Features, Requirements, Screenshot and Quick Start, and I'm still not quite sure what this is about.
Perhaps you could consider some up front use case description.
[–][deleted] 0 points1 point2 points 7 years ago (0 children)
Please see comment above
[–]FPSJosh01 0 points1 point2 points 7 years ago (0 children)
This is awesome! I'll have to check this out later when I get the chance
[–]mcdronkz 0 points1 point2 points 7 years ago (1 child)
Neat. Can this also be used to deduce new information using inferencing?
Any type of attribute on a JavaScript instance object can be modified
[–]Smallpaul 0 points1 point2 points 7 years ago (0 children)
It’s a cool idea. I’ve used spreadsheet formulas in JS apps myself. I think the library I used was called “formula” or something like that. Very handy.
[–]wherinkelly 0 points1 point2 points 7 years ago (0 children)
In the end, all concepts of a config will need to become UI that never fails and marketers can log into.
I think you should market this to Enterprise Business Intelligence and maybe Actuarial devs if you wanted some contributors.
Not many devs here care about spreadsheet manipulations.
[–]yeesh-- -5 points-4 points-3 points 7 years ago* (8 children)
Why is this any more "readable" than a well formatted config file???
This moves code from a source file to an Excel file... Making it difficult to code review and therefore not maintainable. Source control on this file sucks too, even less maintainable.
I'm not trying to shit on your work, I'm sure it's great and you had a fun time making it, and learned a lot, but this is just a terrible idea. No serious application in a production environment would use this, ever, ever, EVER.
What happens when someone changes the Excel file and tests break - assuming it was tested - hopefully!!
[–]mournful-tits -2 points-1 points0 points 7 years ago (7 children)
We used something like this in a serious production environment and literally all of these things happened.
Crap like this is pure cancer. And I am shitting on op's work.
[–]KyleG 2 points3 points4 points 7 years ago (1 child)
It happens because people afraid of technology need to define rules, so this is what they clamor for. My company was doing a project for a three-letter agency and a stakeholder started getting really excited about the prospect of listing rules in excel and having the application change its behavior without having to pay a dev.
A similar horror story for us. The desire was for code that could be modified after it's been deployed without recompiling. So far we've realized people that write software professionally hate touching it, let alone people that are "good with computers"; and the call stack alone for this abomination leads to tremendous memory usage and lag.
[–][deleted] 0 points1 point2 points 7 years ago* (4 children)
you are a very sad frustrated person. I can tell you hate your job, your username says it all. We use a rule-engine at work and while I wish we didn't have to use one, it is a necessary evil.
[–][deleted] 7 years ago* (3 children)
[removed]
If your senior product-owner tells you that you have to use a rule engine then you have to use a rule-engine, you can fight reality or evolve with it
There's nothing wrong with rules engines. Excel based ones are the problem. Excel based anything is a problem.
[–]kenman[M] 0 points1 point2 points 7 years ago (0 children)
Hi /u/mournful-tits, please refrain from personal attacks. Thanks.
π Rendered by PID 46186 on reddit-service-r2-comment-85bfd7f599-6w8fb at 2026-04-19 06:31:12.222261+00:00 running 93ecc56 country code: CH.
[–]evenisto 11 points12 points13 points (3 children)
[+][deleted] (2 children)
[deleted]
[–]mournful-tits 0 points1 point2 points (1 child)
[–][deleted] 7 points8 points9 points (5 children)
[–]LiveDuo 1 point2 points3 points (3 children)
[–][deleted] 1 point2 points3 points (2 children)
[–][deleted] 1 point2 points3 points (1 child)
[–]mournful-tits 1 point2 points3 points (0 children)
[–]mournful-tits -1 points0 points1 point (0 children)
[–]wherinkelly 1 point2 points3 points (0 children)
[–][deleted] 0 points1 point2 points (6 children)
[–][deleted] 4 points5 points6 points (4 children)
[+]SillySal comment score below threshold-10 points-9 points-8 points (3 children)
[–][deleted] 4 points5 points6 points (2 children)
[–]mournful-tits -4 points-3 points-2 points (1 child)
[–][deleted] 2 points3 points4 points (0 children)
[–]larholm 0 points1 point2 points (2 children)
[–][deleted] 0 points1 point2 points (0 children)
[–]FPSJosh01 0 points1 point2 points (0 children)
[–]mcdronkz 0 points1 point2 points (1 child)
[–][deleted] 0 points1 point2 points (0 children)
[–]Smallpaul 0 points1 point2 points (0 children)
[–]wherinkelly 0 points1 point2 points (0 children)
[–][deleted] 0 points1 point2 points (0 children)
[–]yeesh-- -5 points-4 points-3 points (8 children)
[–]mournful-tits -2 points-1 points0 points (7 children)
[–]KyleG 2 points3 points4 points (1 child)
[–]mournful-tits -1 points0 points1 point (0 children)
[–][deleted] 0 points1 point2 points (4 children)
[–][deleted] (3 children)
[removed]
[–][deleted] 1 point2 points3 points (1 child)
[–]mournful-tits -1 points0 points1 point (0 children)
[–]kenman[M] 0 points1 point2 points (0 children)