Intercept iterable string - backbone for template engines
npm install iterable-string-interceptor









Intercept Iterable string - backbone for template engines
``javascript
import { iterableStringInterceptor } from "iterable-string-interceptor";
import { createReadStream } from "fs";
import { readFile } from "fs/promises";
// double values inside {{}}
// {{7}} -> 14
for await (const chunk of iterableStringInterceptor(createReadStream('aFile', { encoding: "utf8" }),
expression => expression * 2
)) {
process.stdout.write(chunk);
}
`
`javascript
import { iterableStringInterceptor } from "iterable-string-interceptor";
import { createReadStream } from "fs";
import { readFile } from "fs/promises";
// handle expression as to be included content {{filename}}
for await (const chunk of iterableStringInterceptor(createReadStream('aFile', { encoding: "utf8" }),
async * (expression) => { yield readFile(expression, { encoding: "utf8" }); }
)) {
process.stdout.write(chunk);
}
`
* ExpressionTransformer
* Parameters
* EarlyConsumerCallback
* Parameters
* iterableStringInterceptor
* Parameters
Type: function (string, string, Iterable<string>, EarlyConsumerCallback, string, string): AsyncIterable<string>
* expression string detected expression without leadIn / leadOutremainder
* string chunk after leadOutsource
* Iterable<string> original sourcecb
* EarlyConsumerCallback to be called if remainder has changedleadIn
* string expression entry sequenceleadOut
* string expression exit sequence
Returns AsyncIterable<string> transformed source
Will be called from the ExpressionTransformer if the given remainder needs to be altered.
Type: function (string): void
* remainder string new remainder to be used by iterableStringInterceptor
Intercept into a async iterable string source, detecting lead in/outs like '{{' and '}}'
and asking a transformer for a replacement iterable string.
* source Iterable<string> transform
* ExpressionTransformer leadIn
* string expression entry sequence (optional, default "{{")leadOut
* string expression exit sequence (optional, default "}}")
Returns AsyncIterable<string> transformed source
With npm do:
`shell``
npm install iterable-string-interceptor
BSD-2-Clause