welsonjs/README.md
2024-01-05 16:05:43 +09:00

7.0 KiB

welsonjs

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

(Image) A man programming against a power plant facility, the screen that the man is watching shows the Windows logo

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 interface)
  • lib/base64 (BASE64 encode and decode)
  • lib/file (File I/O interface)
  • lib/http (HTTP interface with MSXML and cURL)
  • lib/json (JSON library)
  • lib/registry (Windows Registry interface)
  • lib/security (Windows Security Policy interface)
  • lib/shell (Windows Shell (Command Prompt) interface)
  • lib/powershell (Windows Powershell interface)
  • lib/service (Windows Service interface)
  • lib/oldbrowser (ES5, HTML5/CSS3 compatibility layer)
  • lib/uri (URI scheme interface)
  • lib/winlibs (Windows DLL(Dynamic-link library) interface)
  • lib/autohotkey (AutoHotkey interface)
  • lib/autoit (AutoIt3/AutoItX interface)
  • lib/msoffice (Microsoft Office (e.g. Excel) 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)
  • lib/chatgpt (ChatGPT integration)
  • Everything you can imagine.

Make your own sayhello example

1. Write a file lib/sayhello.js

// lib/sayhello.js
function say() {
    console.log("hello");
}

exports.say = say;

exports.VERSIONINFO = "SayHello Library (sayhello.js) version 0.1";
exports.AUTHOR = "abuse@catswords.net";   // e.g. YOUR EMAIL ADDRESS
exports.global = global;
exports.require = global.require;

2. Write a file sayhello.js

// 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\oss\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

Screenshot 2

Screenshot 3

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.