{"_id":"glsl-token-inject-block","_rev":"409575","name":"glsl-token-inject-block","description":"safely inject a block of tokens into a shader","dist-tags":{"latest":"1.1.0"},"maintainers":[{"name":"mattdesl","email":"dave.des@gmail.com"}],"time":{"modified":"2021-08-04T05:03:18.000Z","created":"2015-06-25T21:05:59.042Z","1.1.0":"2016-02-11T20:49:00.199Z","1.0.0":"2015-06-25T21:05:59.042Z"},"users":{},"author":{"name":"Matt DesLauriers","email":"dave.des@gmail.com","url":"https://github.com/mattdesl"},"repository":{"type":"git","url":"git://github.com/Jam3/glsl-token-inject-block.git"},"versions":{"1.1.0":{"name":"glsl-token-inject-block","version":"1.1.0","description":"safely inject a block of tokens into a shader","main":"index.js","license":"MIT","author":{"name":"Matt DesLauriers","email":"dave.des@gmail.com","url":"https://github.com/mattdesl"},"dependencies":{},"devDependencies":{"faucet":"0.0.1","glsl-token-string":"^1.0.1","glsl-tokenizer":"^2.0.2","tape":"^4.0.0"},"scripts":{"test":"node test.js | faucet"},"keywords":["glsl","glslify","stackgl","token","tokenize","tokenizer","start","varying","define","inject"],"repository":{"type":"git","url":"git://github.com/Jam3/glsl-token-inject-block.git"},"homepage":"https://github.com/Jam3/glsl-token-inject-block","bugs":{"url":"https://github.com/Jam3/glsl-token-inject-block/issues"},"gitHead":"1d5c57154cbe6a98a9f1094b7496e5c79414c2d7","_id":"glsl-token-inject-block@1.1.0","_shasum":"e1015f5980c1091824adaa2625f1dfde8bd00034","_from":".","_npmVersion":"2.14.12","_nodeVersion":"5.0.0","_npmUser":{"name":"mattdesl","email":"dave.des@gmail.com"},"dist":{"shasum":"e1015f5980c1091824adaa2625f1dfde8bd00034","size":2447,"noattachment":false,"key":"/glsl-token-inject-block/-/glsl-token-inject-block-1.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/glsl-token-inject-block/download/glsl-token-inject-block-1.1.0.tgz"},"maintainers":[{"name":"mattdesl","email":"dave.des@gmail.com"}],"_npmOperationalInternal":{"host":"packages-5-east.internal.npmjs.com","tmp":"tmp/glsl-token-inject-block-1.1.0.tgz_1455223738384_0.0514927024487406"},"directories":{},"publish_time":1455223740199,"_cnpm_publish_time":1455223740199,"_hasShrinkwrap":false},"1.0.0":{"name":"glsl-token-inject-block","version":"1.0.0","description":"safely inject a block of tokens into a shader","main":"index.js","license":"MIT","author":{"name":"Matt DesLauriers","email":"dave.des@gmail.com","url":"https://github.com/mattdesl"},"dependencies":{},"devDependencies":{"faucet":"0.0.1","glsl-token-string":"^1.0.1","glsl-tokenizer":"^2.0.2","tape":"^4.0.0"},"scripts":{"test":"node test.js | faucet"},"keywords":["glsl","glslify","stackgl","token","tokenize","tokenizer","start","varying","define","inject"],"repository":{"type":"git","url":"git://github.com/Jam3/glsl-token-inject-block.git"},"homepage":"https://github.com/Jam3/glsl-token-inject-block","bugs":{"url":"https://github.com/Jam3/glsl-token-inject-block/issues"},"gitHead":"0497a41bfffc2dc3e7e32536865e10552207557f","_id":"glsl-token-inject-block@1.0.0","_shasum":"3a89e45336ab3d204edfa73dd5b08fd9427561ce","_from":".","_npmVersion":"2.1.18","_nodeVersion":"0.10.32","_npmUser":{"name":"mattdesl","email":"dave.des@gmail.com"},"dist":{"shasum":"3a89e45336ab3d204edfa73dd5b08fd9427561ce","size":2289,"noattachment":false,"key":"/glsl-token-inject-block/-/glsl-token-inject-block-1.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/glsl-token-inject-block/download/glsl-token-inject-block-1.0.0.tgz"},"maintainers":[{"name":"mattdesl","email":"dave.des@gmail.com"}],"directories":{},"publish_time":1435266359042,"_cnpm_publish_time":1435266359042,"_hasShrinkwrap":false}},"readme":"# glsl-token-inject-block\n\n[![unstable](http://badges.github.io/stability-badges/dist/unstable.svg)](http://github.com/badges/stability-badges)\n\nInjects a \"block\" of GLSL tokens into a shader, after any `#version`, `#extension` and `precision` statements. This will pad the new tokens with the necessary amount of newlines (but no more).\n\nThis module ignores token `line`, `column` and `position`.\n\n## Example\n\nYour source:\n\n```js\nvar tokenizer = require('glsl-tokenizer')\nvar inject = require('glsl-token-inject-block')\nvar stringify = require('glsl-token-string')\n\nvar tokens = tokenizer(shaderInput)\nvar newToken = { \n  type: 'preprocessor', \n  data: '#define FOOBAR' \n}\n\nvar source = stringify(inject(tokens, newToken))\nconsole.log(source)\n```\n\nThe following shader input:\n\n```glsl\n// some comment\n#version 300 es\n#extension SOME_EXTENSION : enable\n\nvoid main() {}\n```\n\nResults in the following injected define:\n\n```glsl\n// some comment\n#version 300 es\n#extension SOME_EXTENSION : enable\n#define FOOBAR\n\nvoid main() {}\n```\n\n## Usage\n\n[![NPM](https://nodei.co/npm/glsl-token-inject-block.png)](https://www.npmjs.com/package/glsl-token-inject-block)\n\n#### `tokens = inject(tokens, newTokens)`\n\nFor the given shader source (`tokens`), injects `newTokens` into them, assuming the new tokens are a \"block\" of code that should be placed on its own line. \n\n`newTokens` can be a single token object, or an array of token objects.\n\nModifies `tokens` in place and returns it.\n\n## License\n\nMIT, see [LICENSE.md](http://github.com/Jam3/glsl-token-inject-block/blob/master/LICENSE.md) for details.\n","_attachments":{},"homepage":"https://github.com/Jam3/glsl-token-inject-block","bugs":{"url":"https://github.com/Jam3/glsl-token-inject-block/issues"},"license":"MIT"}