A dynamic environment variable evaluator that compiles to bytecode (simple array of bytes or not 😄) with a custom language and vm.
- Vite support
- Webpack support
- production
- staging
- preview
- development
- vue 3+ JS/TS (vite)
- React JS/TS (vite)
- Svelte JS/TS (vite)
- if/else statement
- switch statement and expression
- class declairation
- function declairation
- number
- string
- boolean
- null
- ternary
- undefined
- array
- method call
- function call
- attribute access
- index
- object/hashmap
- while loop
- do-while loop
- for loop
- type prototypes for method
- JS interoperability
/**** vite.config.js **/
// ...other imports
import envxPluginVite from 'dto-envx/vite'
// https://vitejs.dev/config/
export default defineConfig({
plugins: [
vue(),
vueJsx(),
envxPluginVite()
]
});
/**** page.(vue | jsx | tsx) **/
import { envx, envxCall } from 'env:dto-envx'; // import 'env:dto-envx' instead of 'dto-envx'
// Get variable defined inside env file
envx("SOME_VARIABLE_DEFINED_INSIDE_ENV_FILE");
// Call function inside env file
envxCall("functionDefined", "arg0", "arg1");
file: development.envx
var REACT_APP_API_URL="https://public-domain.com/api";
fn fact(n) {
if (n <= 1)
return 1;
return n * fact(n - 1);
}
fn add(a, b) {
return a + b;
}
const PRIVATE_HASH = "qsdad123q3";
fn getHash() {
return PRIVATE_HASH;
}
fn printArray(arr) {
println(arr);
return arr.toString();
}
const { envx, envxCall } = require('dto-envx');
console.log("JS:>>", envx ('REACT_APP_API_URL'));
console.log("JS:>>", envxCall("fact", 5));
console.log("JS:>>", envxCall("add" , 69, 420));
console.log("JS:>>", envx ('PRIVATE_HASH')); // hidden private variable basta nag start sa 'PRIVATE_'
console.log("JS:>>", envxCall("getHash")); // Need ug getter para ma access ang private variable
console.log("JS:>>", envxCall("println", "From dto-envx :>>", 1, 2, 4, 5, 6, "Hello!"));
console.log("JS:>>", envxCall("printArray", [6,9,4,2,0]));