open-index/open-npm huggingface dataset:
npm package: @js-basics/blueprint-npm-module
Description: blueprint to create npm modules
Latest version: 1.3.2

[![GitHub package version](https://img.shields.io/github/package-json/v/basics/blueprint-npm-module.svg)](https://github.com/basics/blueprint-npm-module)
[![license](https://img.shields.io/github/license/basics/blueprint-npm-module.svg)](https://github.com/basics/blueprint-npm-module)

[![OSX/Linux Build Status](https://travis-ci.org/basics/blueprint-npm-module.svg?branch=master)](https://travis-ci.org/basics/blueprint-npm-module)
[![Windows Build status](https://ci.appveyor.com/api/projects/status/7v3b1mv72vll3fd8?svg=true)](https://ci.appveyor.com/project/StephanGerbeth/blueprint-npm-module)
[![NSP Status](https://nodesecurity.io/orgs/basics/projects/4c593704-b3ef-4475-95ce-5e3bfeaf3261/badge)](https://nodesecurity.io/orgs/basics/projects/4c593704-b3ef-4475-95ce-5e3bfeaf3261)
[![Dependencies Status](https://david-dm.org/basics/blueprint-npm-module/status.svg)](https://david-dm.org/basics/blueprint-npm-module)
[![DevDependencies Status](https://david-dm.org/basics/blueprint-npm-module/dev-status.svg)](https://david-dm.org/basics/blueprint-npm-module?type=dev)

[![start with why](https://img.shields.io/badge/start%20with-why%3F-brightgreen.svg?style=flat)](http://www.ted.com/talks/simon_sinek_how_great_leaders_inspire_action)
[![JavaScript Style Guide: Good Parts](https://img.shields.io/badge/code%20style-goodparts-brightgreen.svg?style=flat)](https://github.com/dwyl/goodparts "JavaScript The Good Parts") [![Greenkeeper badge](https://badges.greenkeeper.io/basics/blueprint-npm-module.svg)](https://greenkeeper.io/)

# Blueprint - NPM Module
npm package: @js-basics/jsto...
Description: transpile js to other languages
Latest version: 0.8.1

[![GitHub package version](https://img.shields.io/github/package-json/v/basics/jsto....svg)](https://github.com/basics/jsto...)
[![npm version](https://img.shields.io/npm/v/@js-basics/jsto....svg)](https://www.npmjs.com/package/@js-basics/jsto...)
[![license](https://img.shields.io/github/license/basics/jsto....svg)](https://github.com/basics/jsto...)

[![OSX/Linux Build Status](https://travis-ci.org/basics/jsto....svg?branch=master)](https://travis-ci.org/basics/jsto...)
[![Dependencies Status](https://david-dm.org/basics/jsto.../status.svg)](https://david-dm.org/basics/jsto...)
[![DevDependencies Status](https://david-dm.org/basics/jsto.../dev-status.svg)](https://david-dm.org/basics/jsto...?type=dev)

# jsto

this libary is going to provide you a simple way of writing typed js code.
this code can run and tested directly with js.
but with types it can be transpiled to other languages, too.

type inference is supported by type checker.

| environment              | jsto... checker | typescript |
| ------------------------ | :-------------: | :--------: |
| run time                 |        ✓        |     ✗      |
| build time               |        ✓        |     ✓      |
| IDE time (the best time) |        ✗        |     ✓      |

| typesafe    | jsto... checker | typescript |
| ----------- | :-------------: | :--------: |
| functions   |        ✓        |     ✓      |
| arguments   |        ✓        |     ✓      |
| classes     |        ✓        |     ✓      |
| methods     |        ✓        |     ✓      |
| variables   |        ✗        |     ✓      |
| arithmetics |        ✓        |     ✗      |

# features in process

- [x] generate JSTree out of js
  - ESTree + type annotations
- [x] type inference
- [ ] jstoGLSL transpiler great for performance
  - [x] generate valid glsl code
  - [ ] js transformations to glsl
    - [x] modulo as arithmetic operator
    - [x] pow as arithmetic operator
    - [x] variable index expression for vectors
    - [ ] gentype for function outline
    - [x] functional structs
    - [ ] destruct
    - [ ] symbols and enums

- [x] jstoGLSL simulator great for testing
  - [x] painting (slowly) to image buffer
  - [x] vector arithmetic (component wise) operator support
  - [x] partly matrix algebraic operator support
  - [ ] typesafety

in future

- [ ] jstoWorker
  - [ ] transpile js code without overhead of types and arithmetics

# JSTree extended from ESTree

`typeAnnotation` for Literals and Identifiers

`returnType` for Functions

# Demos

[first glsl simulation in js](https://unpkg.com/@js-basics/jsto.../demo/index.html)