{"id":19551815,"url":"https://github.com/basics/jsto...","last_synced_at":"2025-07-17T10:36:21.637Z","repository":{"id":38386071,"uuid":"257626255","full_name":"basics/jsto...","owner":"basics","description":"transpile javascript code to other languages","archived":false,"fork":false,"pushed_at":"2024-04-23T05:16:24.000Z","size":563,"stargazers_count":1,"open_issues_count":17,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-04-23T09:39:52.287Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/basics.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-04-21T14:43:23.000Z","updated_at":"2024-04-29T21:29:45.922Z","dependencies_parsed_at":"2022-08-24T15:04:46.804Z","dependency_job_id":"97054240-f3d4-4f81-839f-e0d4422c4db9","html_url":"https://github.com/basics/jsto...","commit_stats":{"total_commits":237,"total_committers":3,"mean_commits":79.0,"dds":0.2784810126582279,"last_synced_commit":"eee82b46177c771f9c59c199a8aff629af1162a7"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":"basics/blueprint-npm-module","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basics%2Fjsto...","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basics%2Fjsto.../tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basics%2Fjsto.../releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/basics%2Fjsto.../manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/basics","download_url":"https://codeload.github.com/basics/jsto.../tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240807566,"owners_count":19860772,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-11T04:15:26.024Z","updated_at":"2025-02-26T07:17:14.234Z","avatar_url":"https://github.com/basics.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![GitHub package version](https://img.shields.io/github/package-json/v/basics/jsto....svg)](https://github.com/basics/jsto...)\n[![npm version](https://img.shields.io/npm/v/@js-basics/jsto....svg)](https://www.npmjs.com/package/@js-basics/jsto...)\n[![license](https://img.shields.io/github/license/basics/jsto....svg)](https://github.com/basics/jsto...)\n\n[![OSX/Linux Build Status](https://travis-ci.org/basics/jsto....svg?branch=master)](https://travis-ci.org/basics/jsto...)\n[![Dependencies Status](https://david-dm.org/basics/jsto.../status.svg)](https://david-dm.org/basics/jsto...)\n[![DevDependencies Status](https://david-dm.org/basics/jsto.../dev-status.svg)](https://david-dm.org/basics/jsto...?type=dev)\n\n# jsto\n\nthis libary is going to provide you a simple way of writing typed js code.\nthis code can run and tested directly with js.\nbut with types it can be transpiled to other languages, too.\n\ntype inference is supported by type checker.\n\n| environment              | jsto... checker | typescript |\n| ------------------------ | :-------------: | :--------: |\n| run time                 |        ✓        |     ✗      |\n| build time               |        ✓        |     ✓      |\n| IDE time (the best time) |        ✗        |     ✓      |\n\n| typesafe    | jsto... checker | typescript |\n| ----------- | :-------------: | :--------: |\n| functions   |        ✓        |     ✓      |\n| arguments   |        ✓        |     ✓      |\n| classes     |        ✓        |     ✓      |\n| methods     |        ✓        |     ✓      |\n| variables   |        ✗        |     ✓      |\n| arithmetics |        ✓        |     ✗      |\n\n# features in process\n\n- [x] generate JSTree out of js\n  - ESTree + type annotations\n- [x] type inference\n- [ ] jstoGLSL transpiler great for performance\n  - [x] generate valid glsl code\n  - [ ] js transformations to glsl\n    - [x] modulo as arithmetic operator\n    - [x] pow as arithmetic operator\n    - [x] variable index expression for vectors\n    - [ ] gentype for function outline\n    - [x] functional structs\n    - [ ] destruct\n    - [ ] symbols and enums\n\n- [x] jstoGLSL simulator great for testing\n  - [x] painting (slowly) to image buffer\n  - [x] vector arithmetic (component wise) operator support\n  - [x] partly matrix algebraic operator support\n  - [ ] typesafety\n\nin future\n\n- [ ] jstoWorker\n  - [ ] transpile js code without overhead of types and arithmetics\n\n# JSTree extended from ESTree\n\n`typeAnnotation` for Literals and Identifiers\n\n`returnType` for Functions\n\n# Demos\n\n[first glsl simulation in js](https://unpkg.com/@js-basics/jsto.../demo/index.html)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbasics%2Fjsto...","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbasics%2Fjsto...","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbasics%2Fjsto.../lists"}