Gathering detailed insights and metrics for graderjs
Gathering detailed insights and metrics for graderjs
Gathering detailed insights and metrics for graderjs
Gathering detailed insights and metrics for graderjs
💦 Turn your full-stack NodeJS application into a downloadable cross-platform binary. Also works for SPAs, or regular web-sites.
npm install graderjs
Typescript
Module System
Node Version
NPM Version
48.4
Supply Chain
91.3
Quality
76.1
Maintenance
100
Vulnerability
81.3
License
Shell (100%)
Total Downloads
4,297
Last Day
1
Last Week
12
Last Month
74
Last Year
593
NOASSERTION License
155 Stars
97 Commits
3 Forks
3 Watchers
13 Branches
1 Contributors
Updated on Apr 11, 2025
Latest Version
3.0.0
Package Id
graderjs@3.0.0
Unpacked Size
54.91 kB
Size
19.13 kB
File Count
5
NPM Version
8.18.0
Node Version
16.17.0
Cumulative downloads
Total Downloads
Last Day
-50%
1
Compared to previous day
Last Week
-7.7%
12
Compared to previous week
Last Month
-1.3%
74
Compared to previous month
Last Year
30.6%
593
Compared to previous year
Turn your full-stack NodeJS application into a downloadable cross-platform binary. Also works for SPAs, or regular web-sites.
A GraderJS app is just a full-stack application written in NodeJS that runs locally on your client's machine. It achieves this by:
GraderJS apps are un-opinionated. You can code the front and back-end however you like, and all details like persisting state to the client's machine, and other useful things, are left to the app author to figure out themselves, and decide which way they want to go.
Unlike a regular full-stack app, GraderJS apps:
Minimal binary is 50MB (Macos, Hello World App, using node v16.16.0, with executable built by pkg).
Copyright (c) 2020, Dosyago and/or its affiliates. All rights reserved.
This is a release of Grader, an cross-platform app builder.
License information can be found in the LICENSE file.
This software is dual-licensed. For information about commercial licensing, see Dosyago Commercial License for OEMs, ISVs and VARs.
1npx graderjs my-app
Only a couple of API calls, classed into four categories: Protocol, NodeJS, App, Window.
Read the API docs for a detailed usage or see below for an overview.
Instrument the browser directly with DevTools*.
*See commands available at DevTools protocol homepage
As normal just use npm to add dependencies and import to use them
go()
stop()
Then, read the API docs or see below for the Getting Started Goose Guide.
Open an issue!
Use npm to get the Grader.JS tool to automatically populate your new grader app.
1 $ npm i -g graderjs@latest 2 $ graderjs my-new-app
Then, read the API docs or see below for the Getting Started Goose Guide.
Or...
Click "Use This Template" on the base-repo and you will have a new repo, then clone it to your workspace and cd
into it, and run:
1npm i
Then...
Read the API docs, or create yer binaries right away:
1./scripts/compile.sh
You now have a GUI app in Node.JS and JavaScript/HTML/CSS.
And you will have cross-platform binaries available in /bin
(and also for download from the computer you're on at port 8080.)
Put your own code into, src/app.js
:
E.g:
1 import Grader from './index.js'; 2 3 start(); 4 5 async function start() { 6 await Grader.go(); 7 }
And put your JS/HTML/CSS into, src/public/index.html
:
1 <meta charset=utf-8> 2 <title>Your Cross-Platform App</title> 3 <style> 4 :root { 5 font-family: sans-serif; 6 background: lavenderblush; 7 } 8 body { 9 display: table; 10 margin: 0 auto; 11 background: silver; 12 padding: 0.5em; 13 box-shadow: 0 1px 1px purple; 14 } 15 h1 { 16 margin: 0; 17 } 18 h2 { 19 margin-top: 0; 20 } 21 </style> 22 <h1>Hello World!</h1> 23 <h2>Meet <i>Grader</i></h2> 24 <p> 25 <button onclick="grader.ui.minimize();">_</button> 26 <button onclick="grader.ui.restore();">⬜</button> 27 <button onclick="grader.ui.close();">x</button> 28 <script> 29 (async () => { 30 await graderReady(); 31 32 const [title, favicon, startURL] = (await Promise.allSettled([ 33 grader.meta.getTitle(), 34 grader.meta.getFavicon(), 35 grader.meta.getStartURL() 36 ])).map(({status, value, reason}) => { 37 if ( status == 'fulfilled' ) return value; 38 return reason; 39 }); 40 41 console.log({title, favicon, startURL}); 42 43 document.title = title; 44 })(); 45 </script>
Read the API docs!
1./scripts/compile.sh
You now have a GUI app in Node.JS and JavaScript/HTML/CSS.
And you will have cross-platform binaries available in /bin
and also for download from the computer you're on at port 8080.
For more demos see the demos in src/demos
.
You can configure some options, via the configuration located in src/config.js
:
1module.exports = { 2 name: "MyGraderApp", 3 entry: "./app.js", 4 author: { 5 name: "my name", 6 url: "https://github.com/my-github-username", 7 }, 8 desiredPort: 49666, 9 version: "0.0.1", 10 description: "A Beautiful Demonstration", 11 source: "https://github.com/my-github-username/MyGraderApp", 12 organization: { 13 name: "My Org", 14 url: "https://github.com/my-github-org-name" 15 }, 16 apiOrigins: [], // origins allowed to call API from UI (not implemented) 17 DEBUG: false // switch on debug output when you're ready to debug 18}
See the API docs for more. Or just read the README.md of the grader app you've just created, it contains the full API docs. You can also take a look at the API code in src/index.js
.
You're free to use this so long as you abide by AGPL-3.0. If you want to use it commercially or don't want this license, you can purchase an exemption.
See this list of Electron alternatives for more options for cross-platform desktop app developement using web technologies.
WARNING: This project uses Google Chrome to display the UI. Running this will download and install Google Chrome if you don't already have it installed. If you are allergic to Google Chrome, please avoid running or ingesting this coode.
No vulnerabilities found.
No security vulnerabilities found.