Mini Core Library functions implemented in Javascript
Install
npm install
Create
Each function needs an XML file in the ../xml folder. If necessary, create a new function using [../xml/.fun.xml] as a template.
Implement
In the revelant .fun.xml file (an existing one, or one which you created above) add a <implem language="js"> element under <implems>. This registers the implementation with the Stencila execution engine.
Create the Javascript function in the relevant ./src/*.js file with the same name as the Mini function e.g. function sum(x)... for sum.fun.xml.
If your implementation overloads parameter types then you need to add those type names to the function signature. e.g. function sum_arraynumber(x), function sum_matrixnumber(x)
Currently, the following are available in the global environment:
Test
Run all tests in Node.js:
npm test
Run all tests in the browser:
npm run test-browser
then open test/index.html.
Try
You can try out functions in the browser developer console by building the distribution:
npm run build
then open index.html.
Check
Check that the Javascript functions the you have implemented match the XML definitions:
npm run check
This will also produce build/func.js : A dictionary of XML Function definitions to be loaded into stencila/stencila for function documentation, reflection (e.g. function call tips) and dispatching. Currently, this file contains the entire XML file for each function.