1.0.0-beta.1 • Published 4 years ago
defaultjs-expression-language v1.0.0-beta.1
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="defaultjs-expression-language.min.js"></script>
Nodejs/NPM
npm install defaultjs-expression-language
import ExpressionResolver from "@modules/ExpressionResolver"
/*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 "@modules/ExpressionResolver"
/*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!
Promise value replacement
/*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!
promise value replacement
/*promise value replacement*/
defaultjs.el.ExpressionResolver.resolve("${name}", {"name": function(){
return Promise.resolve("max mustermann");
}).then(console.log); // max mustermann
defaultjs.el.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
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.0-beta.1
4 years ago