WelsonJS - Build a Windows app on the Windows built-in JavaScript engine
Go to file
2023-11-28 01:45:24 +09:00
.github/workflows Create codeql-analysis.yml 2022-03-04 15:19:29 +09:00
app Add WYSIWYG HTML Editor #92 2023-11-22 18:02:03 +09:00
bin Update README.MD 2023-11-28 01:45:24 +09:00
data MS Office #93 2023-11-27 19:14:11 +09:00
examples Update testloader.js and more 2023-10-31 05:41:52 +09:00
lib Change the calling convention excel.getCellByPosition() to excel.getCellByPosition(x, y).setValue() 2023-11-28 00:51:54 +09:00
tmp Create README.md 2022-04-15 14:44:06 +09:00
WelsonJS.Toolkit Update Toolkit.cs 2022-11-26 02:23:22 +09:00
.gitignore ChatGPT + MS Office 2023-11-27 18:03:22 +09:00
app.hta Update app.hta, app/index.js, app/signin.html, app/test.html 2023-10-30 16:58:29 +09:00
app.js Update app.js 2023-09-05 03:27:00 +09:00
bgloader.js Update bgloader.js 2020-12-10 11:27:05 +09:00
bootstrap.bat Clean unnecessary code 2021-09-21 20:59:57 +09:00
bootstrap.js Update bootstrap.js 2023-01-03 16:35:53 +09:00
build.bat Clean unnecessary code 2021-09-21 20:59:57 +09:00
config.example.xml add config.example.xml 2020-11-05 11:24:01 +09:00
config.template.json fix 2020-11-05 17:51:09 +09:00
Default_HTA.reg fix 2020-11-18 13:13:38 +09:00
FUNDING.yml Update FUNDING.yml 2023-11-14 17:38:28 +09:00
grpcloader_test.bat Add files via upload 2023-09-07 20:33:45 +09:00
grpcloader.bat Add files via upload 2023-09-07 20:14:22 +09:00
grpcloader.js Add files via upload 2023-09-07 20:14:22 +09:00
helloworld.coffee Add support LiveScript 2022-11-29 14:42:34 +09:00
helloworld.js Add CryptoJS libraries 2023-07-27 18:09:20 +09:00
helloworld.ls Add support LiveScript 2022-11-29 14:42:34 +09:00
helloworld.re [app] Add support ReasonML/Rescript #77 2023-08-02 16:06:08 +09:00
helloworld.ts Add support TypeScript 2022-12-22 16:17:10 +09:00
IEMaxScriptStatements.bat Create IEMaxScriptStatements.bat 2022-05-03 13:27:09 +09:00
LICENSE Change GPLv2 to GPLv3 2023-09-09 01:33:02 +09:00
LICENSE_MSRL Rename LICENSE to LICENSE_MSRL 2023-07-18 16:03:23 +09:00
officeloader.js Change the calling convention excel.getCellByPosition() to excel.getCellByPosition(x, y).setValue() 2023-11-28 00:51:54 +09:00
package-lock.json Bump jquery-ui from 1.13.1 to 1.13.2 2022-07-18 17:21:07 +00:00
package.json Update package.json 2023-09-26 11:56:59 +09:00
README.md Update README.md 2023-11-24 16:28:17 +09:00
REGASM.MD Update REGASM.MD 2021-11-01 18:18:37 +09:00
registerDLLs.bat Update lib/autoit.js, Create registerDLLs.bat 2022-02-10 12:42:11 +09:00
scriptcontrol.js Add files via upload 2023-09-05 03:27:16 +09:00
SECURITY.MD Update SECURITY.MD 2023-09-05 03:44:28 +09:00
setup.iss Update setup.iss 2023-09-26 11:57:13 +09:00
shoutcut.js Update shoutcut.js 2022-11-06 19:00:42 +09:00
shoutcut.legacy.js Add files via upload 2021-08-11 03:04:11 +09:00
start.bat fix 2020-11-18 15:46:34 +09:00
testloader.js Remove gtk.demo.js, toolkit.demo.js, squel.demo.js, and merge to testloader.js 2023-11-07 11:24:36 +09:00
uriloader.js Update uriloader.js 2022-08-22 01:43:15 +09:00
userid.txt fix 2020-11-12 15:39:50 +09:00
webloader.js Change "utf-8" to FILE.CdoCharset.CdoUTF_8 2023-10-30 13:56:43 +09:00
WelsonJS.Toolkit.dll Update toolkit files 2022-10-21 04:03:06 +09:00

welsonjs

WelsonJS - Build a Windows app on the Windows built-in JavaScript engine.

Now, You can build an Windows desktop app with JavaScript, TypeScript, ReScript, and HTML/CSS on Windows built-in ECMAScript engine.

WelsonJS = Windows + Electron-like + Javascript(JS) + Your contribution

Dual license notice: The default license for this project is GPL 3.0. However, if the GPL 3.0 license is not compatible with Microsoft products, it is subject to the MS-RL license.

I presented this project in the open-source contest in the Republic of Korea in November 2023.

Structure

Structure

Specifications

Included libraries

  • lib/std (Standard library)
  • lib/system (System library)
  • lib/base64 (BASE64 Encode and Decode)
  • lib/db (Database interface)
  • lib/file (File I/O interface)
  • lib/http (HTTP interface)
  • lib/json (JSON Encode and Decode)
  • lib/registry (Windows Registry interface)
  • lib/security (Security Policy interface)
  • lib/sendmail (Sendmail interface with 3rdparty)
  • lib/shell (Command Prompt interface)
  • lib/timer (setTimeout polyfills)
  • lib/powershell (Windows Powershell interface)
  • lib/service (Windows Service interface)
  • lib/oldbrowser (ES5/ES6, HTML/JS/CSS compatibility)
  • lib/uri (URI scheme interface)
  • lib/winlibs (Windows DLL(Dynamic-link library) interface)
  • lib/autohotkey (AutoHotkey interface)
  • lib/autoit (AutoIt3/AutoItX interface)
  • lib/shadowsocks (Shadowsocks interface)
  • lib/excel (Microsoft Excel interface)
  • lib/vbscript (VBScript interface)
  • lib/wintap (Windows-TAP interface)
  • lib/tun2socks (TUN2SOCKS interface)
  • lib/hosts (Hosts file interface)
  • lib/gtk (GTK/GladeXML server GUI interface)
  • lib/chrome (Chrome Web Browser Debugging interface)
  • lib/toolkit (WelsonJS.Toolkit native component)
  • lib/pipe-ipc (PIPE-based IPC(Inter-Process Communication) implementation)

Make your own sayhello example

1. Write a file lib/sayhello.js

exports.VERSIONINFO = "SayHello Library (sayhello.js) version 0.1
exports.global = global;
exports.require = global.require;

exports.say = function() {
    console.log("hello");
}

2. Write a file sayhello.js

var SayHello = require("lib/sayhello");

function main() {
    console.log("calling say()");
    SayHello.say();
    console.log("ended say()");
}

exports.main = main;

3. Execute file on the command prompt

C:\Users\John\Documents\GitHub\welsonjs> cscript app.js sayhello
calling say()
hello
ended say()

How to make your own setup file

  • Please check setup.iss file it could be compile with Inno Setup

Screenshots

Screenshot 1

Thanks!

Thanks 1

Image stocks

Contact me

If you have any inquiries about this project or if you are interested in becoming a partner, please feel free to contact us. By becoming an official partner, you can initiate exclusive (e.g. EULA) projects using WelsonJS. Explore the potential for achievements in various areas, such as website quality improvement and performance evaluation automation, with WelsonJS.