Skip to content

through stream that transforms glsl-parser AST nodes and rewrites variables into shorter forms

Notifications You must be signed in to change notification settings

isabella232/glsl-min-stream

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NPM npm npm Build Status Coverage Status

glsl-min-stream

Transform glsl-parser AST nodes on-the-fly by renaming variables into shorter forms.

var tokenizer = require('glsl-tokenizer/stream')
  , parser = require('glsl-parser')
  , deparser = require('glsl-deparser')
  , minify = require('./index')

process.stdin
  .pipe(tokenizer())
  .pipe(parser())
  .pipe(minify())           // <-- the minifier
  .pipe(deparser(false))    // <-- "false" == no unnecessary whitespace, please.
  .pipe(process.stdout)

process.stdin.resume()

API

minifier = require('glsl-minifier')([safe_word_list], should_mutate_storages) -> minifier stream

Create a through stream that rewrites incoming declared variables.

  • safe_word_list defaults to ["main"] so that the main function is not overridden.
  • should_mutate_storages, a boolean defaulted to false, determines whether the minifier should attempt to rewrite variables declared as varying, attribute, or uniform (usually you do not want to do this, as the client program is expecting specific variable names).

Testing

Run npm test to run tests


When adding a code change that differs the output, make sure to run tap with snapshots by running npm run test -- --snapshot. This will regenerate the tap-snapshot files. Make sure to commit those along with other code and test changes.

License

MIT

About

through stream that transforms glsl-parser AST nodes and rewrites variables into shorter forms

Resources

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 68.9%
  • GLSL 31.1%