JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 747
  • Score
    100M100P100Q116812F
  • License 0BSD

Intercept iterable string - backbone for template engines

Package Exports

  • iterable-string-interceptor

Readme

npm License Typed with TypeScript bundlejs downloads GitHub Issues Build Status Styled with prettier Commitizen friendly Known Vulnerabilities Coverage Status

iterable-string-interceptor

Intercept Iterable string - backbone for template engines

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);
}
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);
}

API

Table of Contents

ExpressionTransformer

Type: function (string, string, Iterable<string>, EarlyConsumerCallback, string, string): AsyncIterable<string>

Parameters

  • expression string detected expression without leadIn / leadOut
  • remainder string chunk after leadOut
  • source Iterable<string> original source
  • cb EarlyConsumerCallback to be called if remainder has changed
  • leadIn string expression entry sequence
  • leadOut string expression exit sequence

Returns AsyncIterable<string> transformed source

EarlyConsumerCallback

Will be called from the ExpressionTransformer if the given remainder needs to be altered.

Type: function (string): void

Parameters

  • remainder string new remainder to be used by iterableStringInterceptor

iterableStringInterceptor

Intercept into a async iterable string source, detecting lead in/outs like '{{' and '}}' and asking a transformer for a replacement iterable string.

Parameters

Returns AsyncIterable<string> transformed source

install

With npm do:

npm install iterable-string-interceptor

license

BSD-2-Clause