1.0.2 • Published 1 year ago
@default-js/defaultjs-expression-language v1.0.2
defaultjs-expression-language
** Table of Contents
Intro
This lib provide functionallity similar to the text literals at javascript, but this lib supports Promise results from an Expression.
** Use this lib for dynamic content solutions.
Install
Browser
<script type="text/javascript" src="browser-defaultjs-expression-language.min.js"></script>
Nodejs/NPM
npm install @default-js/defaultjs-expression-language
import ExpressionResolver from "@default-js/defaultjs-expression-language"
/*simple value replacement*/
ExpressionResolver.resolve("${name}", {"name": "max mustermann"})
.then(console.log); // max mustermann
ExpressionResolver.resolveText("hello ${name}, nice to see you!", {"name": "max mustermann"})
.then(console.log); // hello max mustermann, nice to see you!
Using
Simple value replacement
import ExpressionResolver from "@default-js/defaultjs-expression-language"
/*resolve an expression*/
ExpressionResolver.resolve("${name}", {"name": "max mustermann"})
.then(console.log); // max mustermann
/*replace expression at string*/
ExpressionResolver.resolveText("hello ${name}, nice to see you!", {"name": "max mustermann"})
.then(console.log); // hello max mustermann, nice to see you!
Promise / async support
/*promise value replacement*/
ExpressionResolver.resolve("${name}", {"name": function(){
return Promise.resolve("max mustermann");
}).then(console.log); // max mustermann
ExpressionResolver.resolveText("hello ${name}, nice to see you!", {"name": function(){
return Promise.resolve("max mustermann");
}).then(console.log); // hello max mustermann, nice to see you!
API Documentation
import ExpressionResolver from "@default-js/defaultjs-expression-language";
ExpressionResolver.resolve(aStatement, aContext, aDefault, aTimeout)
// returned a promise and the expression can be resolved to any type
ExpressionResolver.resolveText(aStatement, aContext, aDefault, aTimeout)
// returned a promise and the expression would be resolved to an string
Context sensitive behavior
const global = window || global || self || this || {};
global.test = "global test var";
ExpressionResolver.resolve("${test}"); // global test var
ExpressionResolver.resolve("${test}", {}); // global test var
ExpressionResolver.resolve("${test}", {test: "local test var"}); // local test var
ExpressionResolver.resolveText("text ${test} text"); // text global test var text
ExpressionResolver.resolveText("text ${test} text", {}); // text global test var text
ExpressionResolver.resolveText("text ${test} text", {test: "local test var"}); // text local test var text
Default value behavior
const global = window || global || self || this || {};
global.test = undefined;
ExpressionResolver.resolve("${test}", global, "var is undefined"); // var is undefined
ExpressionResolver.resolveText("text ${test} text", global, "var is undefined"); // text var is undefined text
Timeout behavior
const global = window || global || self || this || {};
global.test = "global test var";
ExpressionResolver.resolve("${test}", global, undefined, 1000);
// the expression resolver waits 1000ms, before starting the resolving process
ExpressionResolver.resolveText("text ${test} text", global, undefined, 1000);
// the expression resolver waits 1000ms, before starting the resolving process
License
1.0.2
1 year ago
1.0.1
1 year ago
1.0.0
4 years ago
1.0.0-beta.14
4 years ago
1.0.0-beta.13
5 years ago
1.0.0-beta.12
5 years ago
1.0.0-beta.11
5 years ago
1.0.0-beta.10
5 years ago
1.0.0-beta.9
5 years ago
1.0.0-beta.8
5 years ago
1.0.0-beta.7
5 years ago
1.0.0-beta.6
5 years ago
1.0.0-beta.5
5 years ago
1.0.0-beta.4
5 years ago
1.0.0-beta.3
5 years ago
1.0.0-beta.2
5 years ago
1.0.0-beta.1
6 years ago