1.0.3 • Published 5 years ago

function-sniffer v1.0.3

Weekly downloads
1
License
MIT
Repository
github
Last release
5 years ago

CircleCI Coverage Status NPM version download license

Features

  • Sniffer function can or can't run.
  • can do lazy run until function is loaded.

Environment Support

  • Modern browsers and Internet Explorer 6+
IE / EdgeFirefoxChromeSafariOperaElectron
IE6+, Edgelast 2 versionslast 2 versionslast 2 versionslast 2 versionslast 2 versions

Usage

Using npm

npm install --save function-sniffer

node environment:

var Sniffer = require('function-sniffer');

webpack or similar environment:

import Sniffer from 'function-sniffer';

requirejs environment:

requirejs(['node_modules/function-sniffer/dist/function-sniffer.cjs.js'], function (base) {
    // do something...
})

browser environment:

<script src="node_modules/function-sniffer/dist/ifunction-sniffer.min.js"></script>

Example

This is a Object Tool has a function do. // tool.js

(function(Tool, undefined){
    Tool.do = function(thing){
        console.log('try to do '+ thing);
    }
})(window.Tool || (window.Tool = {});

Now, Sniffer.run can execute function just like Tool.do.

  • Sniffer.run
    • base default: window, base is not required, if object is base on window.
    • name executebase.namefunction. is required.
    • prompt prompting when function can't be found and execute. not required.
    • showPromptFn custom prompt function. default is alert. not required.
    • subscribe if you want to lazy run function which is not exist now.Sniffer memory it.When function loaded, try Sniffer.trigger to run it. not required.
import Sniffer from 'function-sniffer';
Sniffer.run({
    name: 'Tool.do', 
    prompt: 'Tool.do is not exist.',
    showPromptFn: (str)=>{ console.log(str);}, 
    subscribe: true
});

Sniffer.trigger can run the memory list of function.

  • Sniffer.trigger
    • base default: window, base is not required, if object is base on window.
    • name executebase.namefunction. is required.
import Sniffer from 'function-sniffer';
Sniffer.run({
    name: 'Tool.walk', 
    subscribe: true
});

// walk() is not exist in Tool.And Sniffer memory it, Because `subscribe:true`.

Tool.walk = function(person){
    console.log(person + ' is walking.');
}

// walk loaded.And trigger to run it.

Sniffer.trigger({
    base: Tool,
    name: 'walk'
}, 'leon')

// => leon is walking.

License

MIT