Extendiendo el sistema JS a través de módulos
Para extender el código JS recomendamos utilizar dos estrategias:
Módulos¶
Clarive sigue la especificación CommonJS para cargar módulos, puede dividir sus bloques de construcción javascript entre
varios archivos, exportar funciones necesarias y luego requerirlas donde sea necesario.
Por ejemplo:
/* foo.js */ var Foo = function () {}; Foo.prototype.log = function () { console.log('Foo!'); }; exports.Foo = new Foo(); /* foo/bar.js */ module.exports = function(){ console.log('fooBar!'); }; /* index.js */ var foo = require('./foo'); var bar = require('./foo/bar.js'); foo.log(); // Foo! bar(); // fooBar!
Se recomienda que los módulos incluidos por el usuario se almacenen en el sistema de archivos, bajo la carpeta
DECLARATIVE_BASE/plugins/[nombre-plugin]/modules.
Para crear la carpeta de módulos, se recomienda crear antes el plugin en el directorio
CLARIVE_BASE.
// crear el fichero plugins/myplugin/modules/myutil.js: exports.doThis = function(num) { print("Esto es: " + num); }; // Ahora uselo en su código var myutils = require("myutil"); myutils.doThis(123);
Reglas¶
Escribe una regla independiente con la lógica necesaria para ser usada por otras reglas. Luego invocar esa regla como parte de su código.
Escriba una regla con una operación en código JS con el siguiente contenido:
var something = cla.stash("something"); cla.stash("myresults", something * 1000 ); var stash = { something: 123 }; cla.rule.run('my_rule_runner', stash); print( "results=" + stash.myresults ); // obtienes 123000
Lea más sobre cla.rule aquí