Giter VIP home page Giter VIP logo

juancarlospaco / nodejs Goto Github PK

View Code? Open in Web Editor NEW
194.0 10.0 52.0 3.28 MB

Alternative StdLib for Nim for NodeJS/JavaScript targets, hijacks NodeJS StdLib for Nim

Home Page: https://juancarlospaco.github.io/nodejs

License: MIT License

Nim 99.92% CSS 0.08%
nim nim-lang javascript typescript nodejs nodejs-modules webassembly server-side-javascript javascript-compiler client-side-code async deno needs-sponsors coffeescript python high-performance stdlib-extras denoland

nodejs's Introduction

Alternative StdLib for Nim for NodeJS/JavaScript targets

Documentation

Mobile

Client Side

Single file executable

Install

  • nimble install nodejs OR nimble install https://github.com/juancarlospaco/nodejs.git

Testing CI

All commits are run in CI using this matrix:

matrix:
  platform:     [ubuntu-latest, windows-latest]
  architecture: ["x64", "x86"]
  node:         [12, 13, 14, 15, 16, 17]
  nim-channel:  [stable, devel]

Everything works from Node 12 and newer.

Design

  • It does not use anything from Nim standard library, very future-proof, just imports some types to be compatible with it, like RegExp, etc.
  • We do not deprecate stuff, even if NodeJS deprecate/remove it, it will keep working for Nim.
  • Stuff deprecated/demoved before year 2020 will not be supported.
  • Experimental or Unstable API on NodeJS are automatically implicitly considered Experimental here.
  • Package version == NodeJS version.

Doing Python ?

See also:

💰➡️🍕

Bitcoin BTC

BEP20 Binance Smart Chain Network BSC

0xb78c4cf63274bb22f83481986157d234105ac17e

BTC Bitcoin Network

1Pnf45MgGgY32X4KDNJbutnpx96E4FxqVi

Lightning Network

Ethereum ETH Dai DAI Uniswap UNI Axie Infinity AXS Smooth Love Potion SLP Uniswap UNI USDC

BEP20 Binance Smart Chain Network BSC

0xb78c4cf63274bb22f83481986157d234105ac17e

ERC20 Ethereum Network

0xb78c4cf63274bb22f83481986157d234105ac17e
Tether USDT

BEP20 Binance Smart Chain Network BSC

0xb78c4cf63274bb22f83481986157d234105ac17e

ERC20 Ethereum Network

0xb78c4cf63274bb22f83481986157d234105ac17e

TRC20 Tron Network

TWGft53WgWvH2mnqR8ZUXq1GD8M4gZ4Yfu
Solana SOL

BEP20 Binance Smart Chain Network BSC

0xb78c4cf63274bb22f83481986157d234105ac17e

SOL Solana Network

FKaPSd8kTUpH7Q76d77toy1jjPGpZSxR4xbhQHyCMSGq
Cardano ADA

BEP20 Binance Smart Chain Network BSC

0xb78c4cf63274bb22f83481986157d234105ac17e

ADA Cardano Network

DdzFFzCqrht9Y1r4Yx7ouqG9yJNWeXFt69xavLdaeXdu4cQi2yXgNWagzh52o9k9YRh3ussHnBnDrg7v7W2hSXWXfBhbo2ooUKRFMieM
Sandbox SAND Decentraland MANA

ERC20 Ethereum Network

0xb78c4cf63274bb22f83481986157d234105ac17e
Algorand ALGO

ALGO Algorand Network

WM54DHVZQIQDVTHMPOH6FEZ4U2AU3OBPGAFTHSCYWMFE7ETKCUUOYAW24Q
Polkadot DOT

DOT Network

13GdxHQbQA1K6i7Ctf781nQkhQhoVhGgUnrjn9EvcJnYWCEd

BEP20 Binance Smart Chain Network BSC

0xb78c4cf63274bb22f83481986157d234105ac17e
Binance

https://pay.binance.com/en/checkout/e92e536210fd4f62b426ea7ee65b49c3

Stars

@juancarlospaco@tandy-1000@alexgustafson@bradjasper@AndrielFR@whee@jonlroy2020@S0Sbrigade8@stisa@heinthanth@jhgalino@YanMu2020@haikyuu@matkuki@eqf0@nkot56297@adam-acosta@uly-s@Comamoca@bsouthern@reubano@darkmusic@Geksan@lzehrung@jmgomez@ritmos@colias-palaeno@zendbit@vonwao@japgro@elcritch@qaziquza@singularperturbation@sdmcallister@adokitkat@mkopa@hylid43@alehander92@foxoman@theAkito@deem0n@Himujjal@drighty@xilicode@soomtong@aviynw@Braden-Preston@termermc@KlausEverWalkingDev@nodrygo@scroot@codehangen@drewbitt@fadzikri@ArikRahman@yaroslav-gwit@konsumer@jpetrucciani@weitzj@whitebm2024@GeorgeChan@shizhaojingszj@YeonjiKim0316@mode80@SiraKen@nicks515@kshutkin@prostospirit@jdf-id-au@zhangweiii@W1M0R@AlexW00@Kisvey@piertoni@eantho@quantimnot@shirk33y@Uzo2005@theSherwood@maleyva1@ray-delossantos@raphaellouisandress@raphaellouisandress@Fedsam@bsljth@bsljth@keidrych@KolyaRS@degaur@catsuns@marcusramberg@Wutras@caden-parajuli@ysnbogt@aiank@m0xbf@nubunto@jinczing@xgr@victorgabrielbs@majj@scupit@wjl12@WangWei90@hpstep@gkze@mikra01@waytozen@lzw-723@nichdemos@8uff3r@ThunderGod95@enaaab460@wiredmatt@hewhocannotbetamed@kauderk@rxx@FI-Mihej@khalidx

nodejs's People

Contributors

8uff3r avatar adam-acosta avatar adokitkat avatar aiank avatar alehander92 avatar alexgustafson avatar alexw00 avatar andrielfr avatar arikrahman avatar aviynw avatar braden-preston avatar bsljth avatar comamoca avatar fedsam avatar fi-mihej avatar geksan avatar georgechan avatar himujjal avatar juancarlospaco avatar kisvey avatar klauseverwalkingdev avatar kolyars avatar siraken avatar tandy-1000 avatar thundergod95 avatar uzo2005 avatar w1m0r avatar wangwei90 avatar wutras avatar yeonjikim0316 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

nodejs's Issues

check

for i in *.nim; do

$CMD2 $i

done

# TODO: check

      env:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

    - name: Test GUI
      shell: bash
      run: |
        cd tests/
        for i in *.nim; do
          $CMD $i
        done
    # TODO: check
    #     for i in *.nim; do
    #       $CMD2 $i
    #     done

JsSyncHttpClient broken

Console reports JsHttpClient object is null.

Code

Append to bottom of src/nodejs/jssynchttpclient.nim

when isMainModule:
  from std/uri import parseUri, Uri
  let client = newJsHttpClient()
  let url = parseUri("https://google.com")
  let content = client.getContent(url)

src/nodejs/index.html

<script src="jssynchttpclient.js"></script>

How to reproduce

Run nimhttpd and access http://localhost:1337/src/nodejs/index.html, check the browser console.

Console log

Uncaught TypeError: self_436207679 is null
    xmlHttpRequestImpl_436207675 http://localhost:1337/src/nodejs/jssynchttpclient.js:782
    getContent_436207670 http://localhost:1337/src/nodejs/jssynchttpclient.js:798
    <anonymous> http://localhost:1337/src/nodejs/jssynchttpclient.js:929
jssynchttpclient.js:782:5
    xmlHttpRequestImpl_436207675 http://localhost:1337/src/nodejs/jssynchttpclient.js:782
    getContent_436207670 http://localhost:1337/src/nodejs/jssynchttpclient.js:798
    <anonymous> http://localhost:1337/src/nodejs/jssynchttpclient.js:929

Examples don't work

import jsconsole, nodejs
console.log base64encode("example")
D:\Amjad\test.nim(2, 25) Error: ambiguous call; both jscore.base64encode(strng: cstring, encoding: cstring) [func declared in C:\Users\User\.nimble\pkgs\nodejs-17.4.0\nodejs\jscore.nim(151, 6)] and jsutils.base64encode(strng: cstring, encoding: cstring) [func declared in C:\Users\User\.nimble\pkgs\nodejs-17.4.0\nodejs\jscore.nim(151, 6)] match for: (string)

and:

import jsconsole, nodejs
console.log deduplicate([9, 2, 3, 9, 4, 5, 6, 9])
D:\Amjad\test.nim(3, 24) Error: ambiguous call; both jscore.deduplicate(arrai: openArray[T]) [func declared in C:\Users\User\.nimble\pkgs\nodejs-17.4.0\nodejs\jscore.nim(157, 6)] and jsutils.deduplicate(arrai: openArray[T]) [func declared in C:\Users\User\.nimble\pkgs\nodejs-17.4.0\nodejs\jscore.nim(157, 6)] match for: (array[0..7, int])

Compiling Nim with the Pretty-Printed JavaScript backend fails with a type mismatch error

I am trying to build the Nim compiler with the Pretty-Printed JavaScript backend from https://github.com/juancarlospaco/nodejs/tree/main/tools.

On the .build_all.sh command I get the following error:

/Users/alba/Nim/compiler/jsgen.nim(111, 15) Error: type mismatch: got <typeof(nil)> but expected 'Rope = string'
FAILURE

(Full command output in this gist.)

Any idea what's going wrong?


BTW, the commands in your README I had to modify slightly: All backslashes (like in rm compiler\jsgen.nim) I changed to forward slashes (e.g. rm compiler/jsgen.nim).

TypeError: c_1455079.charCodeAt is not a function" on jsfs' readFileSync

I'm trying nodejs/jsfs and get a node runtime error "TypeError: c_1455079.charCodeAt is not a function".

Here my little program read_try.nim:

import nodejs/jsfs

requireFs()
let data = readFileSync("sometext.txt")
echo $data

and I compile it with

nim js read_try.nim

Does this maybe means, node cannot find the file sometext.txt? But sounds weird to me.

[bug] Testing

Architecture

x86_64 (Default)

Operating System

Linux

Disk

SSD (Solid)

Memory

16 Gigabytes

CPU Cores

16 CPU Cores

Internet Connection

DSL (aDSL, DSL, etc)

What is your web browser?

Chrome/Chromium

Virtual Machine

  • Virtual Machine or Container

Where are you from?

Argentina

What happened?

foo with the bar

Standard Output Logs

DivisionByZeroException: foo

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.