A fast native pattern matcher addon on JavaScript object properties.
It's necessary, before using DevisPattern to install:
-
python v2.7, and make a c ++ compiler like gcc under unix / linux-gnu and install more xcode with command line tools if you are under mac os
-
on Windows: Install all the required tools and configurations using Microsoft's windows-build-tools using
npm install --global --production windows-build-tools
from an elevated PowerShell or CMD.exe (run as Administrator).
This addon is used by the devis framework to pattern match actions.
Here's how you register some patterns, and then search for matches:
const devisPattern =require("devisPattern"); //or require("./devisPattern/devisPattern"); if you download the project
devisPattern.add({
action: 'game',
cmd: 'play'
}, (args, done) => {
done({
result: 'play'
});
});
devisPattern.add({
action: 'game',
cmd: 'pause'
}, (args, done)=> {
done({
result: 'pause'
});
});
devisPattern.call({
action: 'game',
cmd: 'play'
}, (result)=> {
console.log(result);
});
devisPattern.call({
action: 'game',
cmd: 'pause'
}, (result) =>{
console.log(result);
});
npm install devisPattern
Or, if you download the project:
Generate the appropriate project build files for the current platform. Use configure
for that:
node-gyp configure
Now you will have either a Makefile
(on Unix platforms) or a vcxproj
file (on Windows) in the build/
directory. Next invoke the build command:
node-gyp build
This addon lets you build a simple decision tree so you can avoid writing if statements. It tries to make the minimum number of comparisons necessary to pick out the most specific match.
Generates a new pattern matcher instance.
Register a pattern, and the object that will be returned if an input matches. Both keys and values are considered to be strings. Other types are converted to strings.
Return the unique match for this pattern, or null if not found.
Act this pattern.
Return the list of registered patterns that contain this partial pattern.