Skip to content

A template parser in Node.js that supports replacers and functions. Allows users to use custom outputs and access functions and variables in a custom template file.

License

Notifications You must be signed in to change notification settings

jeffplays2005/termfxjs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Termfx JS

A template parser in Node.js that supports replacers and functions. Allows users to use custom outputs and access functions and variables in a custom template file.

npm version install size

Table of contents:

Installation

npm install termfx

Usage

Note: An update has been planned to remove the need to explicitly declare if the file is CRLF or LF break files!

import termfx from "termfx";

termfx() is the main class, create a new instance of this! The instance of termfx has three main functions, two of them registering variables and functions, the third being the executer.

registerVariable - Takes in two strings, the first is the replacer(or tag) and the second is the "to be replaced". registerFunction - Takes in a string and a function, the first one being the tag, the second one being the function that can be executed.

execute - Takes a string and writer(a function/method), the string template is parsed. Any regular strings that are not variable/function tags will be executed by the writer. Variable tags will be replaced and functions will be executed with respect to the parameters that were provided in the string template.

Examples:

import termfx from "termfx";
const registry = new termfx();

registry.registerVariable("foo", "bar");
registry.registerFunction("sleep",
  function(delayInms){
    return new Promise(resolve => setTimeout(resolve, delayInms));
  }
);

const string =
`<<sleep(1000)>>that was 1 second
<<sleep(5000)>>that was 5 seconds
<<$foo>> <- this is a variable replacer!`;

Carriage Return Line Feed Files

Also known as CRLF, this is what most files termfx is supposedly parsing, files are expected to have \r\n at the end of each line. This mode will not add a carriage return \r at the end of each line.

import termfx from "termfx";
const registry = new termfx();

Line feed

Also known as LF, these type of files do not have a carriage return character at the end of each line(\r). A \r character will be added to the end of every line. This is used to handle the issue where everything is output in 1 line by the writer.

import termfx from "termfx";
const registry = new termfx({
  carriageReturn: true
});

Custom delimiters

Using custom delimiters that aren't the default <<, >>.

// custom delimiters
import termfx from "termfx";
const registry = new termfx({ delimiters: ["[[", "]]"] });
// E.g. This will now allow you to use [[$tag]] instead of <<$tag>>

Bugs or suggestions

  • Please report any bugs or provide suggestions on github!

License

Copyright Apache 2.0 License © 2022 Jeffplays2005.

About

A template parser in Node.js that supports replacers and functions. Allows users to use custom outputs and access functions and variables in a custom template file.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published