UNPKG

seeq

Version:

Search or detect name on some resource (GitHub, NPM, Bower, ...)

396 lines (313 loc) 9.86 kB
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>seeq Source: format/index.js</title> <!--[if lt IE 9]> <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script> <![endif]--> <link type="text/css" rel="stylesheet" href="styles/sunlight.default.css"> <link type="text/css" rel="stylesheet" href="styles/site.spacelab.css"> </head> <body> <div class="container-fluid"> <div class="navbar navbar-fixed-top "> <div class="navbar-inner"> <a class="brand" href="index.html">seeq</a> <ul class="nav"> <li class="dropdown"> <a href="modules.list.html" class="dropdown-toggle" data-toggle="dropdown">Modules<b class="caret"></b></a> <ul class="dropdown-menu "> <li> <a href="module-bower.html">bower</a> </li> <li> <a href="module-cdn.html">cdn</a> </li> <li> <a href="module-cdnjs.html">cdnjs</a> </li> <li> <a href="module-cli.html">cli</a> </li> <li> <a href="module-component.html">component</a> </li> <li> <a href="module-customelements.html">customelements</a> </li> <li> <a href="module-format.html">format</a> </li> <li> <a href="util.html">format/util</a> </li> <li> <a href="module-github.html">github</a> </li> <li> <a href="module-grunt.html">grunt</a> </li> <li> <a href="module-gulp.html">gulp</a> </li> <li> <a href="module-jam.html">jam</a> </li> <li> <a href="module-jsdelivr.html">jsdelivr</a> </li> <li> <a href="module-json.html">json</a> </li> <li> <a href="module-jster.html">jster</a> </li> <li> <a href="module-markdown.html">markdown</a> </li> <li> <a href="module-microjs.html">microjs</a> </li> <li> <a href="module-npm.html">npm</a> </li> <li> <a href="module-raw.html">raw</a> </li> <li> <a href="module-resource.html">resource</a> </li> <li> <a href="util_.html">resource/util</a> </li> <li> <a href="module-seeq.html">seeq</a> </li> <li> <a href="module-spm.html">spm</a> </li> <li> <a href="module-text.html">text</a> </li> </ul> </li> <li class="dropdown"> <a href="classes.list.html" class="dropdown-toggle" data-toggle="dropdown">Classes<b class="caret"></b></a> <ul class="dropdown-menu "> <li> <a href="util-FailedHttpRequestError.html">FailedHttpRequestError</a> </li> <li> <a href="util-IncorrectResponseError.html">IncorrectResponseError</a> </li> </ul> </li> </ul> </div> </div> <div class="row-fluid"> <div class="span12"> <div id="main"> <h1 class="page-title">Source: format/index.js</h1> <section> <article> <pre class="sunlight-highlight-javascript linenums">/** * API to work with formatters that can be used to format result of {@link module:seeq.search search}. * &lt;br> * Each formatter is a function that should return string representing result of search. * The following parameters are passed to the format function: &lt;ul> &lt;li>object that is result of {@link module:seeq.search search} &lt;li>object that represents format settings; the following settings can be used (name - type - description): &lt;ul> &lt;li>&lt;code>queryList&lt;/code> - &lt;code>Array&lt;/code> - list of names/strings that were checked/searched &lt;li>&lt;code>verbose&lt;/code> - &lt;code>boolean&lt;/code> - whether basic or detailed result should be returned &lt;/ul> &lt;/ul> * * @module format */ "use strict"; var formatMap = {}; /** * Format result of search by using specified formatter. * * @param {Object} data * Result of {@link module:seeq.search search}. * @param {String} name * Name of formatter that should be used. * @param {Object} [settings] * Format settings. Default values for settings are the following: &lt;ul> &lt;li>&lt;code>queryList&lt;/code> - extracted from &lt;code>data&lt;/code> parameter &lt;li>&lt;code>verbose&lt;/code> - &lt;code>false&lt;/code> &lt;/ul> * @return {String} * Result returned by specified formatter or empty string if no one of formatters has the specified name. * @alias module:format.format */ function format(data, name, settings) { var fmt = formatMap[name]; if (! settings) { settings = {}; } if (! settings.queryList) { settings.queryList = Object.keys(data); } else if (! Array.isArray(settings.queryList)) { settings.queryList = [settings.queryList]; } if (! ("verbose" in settings)) { settings.verbose = false; } return fmt ? fmt(data, settings) : ""; } /** * Return formatter with specified name. * * @param {String} name * Name of formatter that should be returned. * @return {Function | null} * Function that represents formatter * or &lt;code>null&lt;/code> if no one of formatters has the specified name. * @alias module:format.get */ function get(name) { return formatMap[name] || null; } /** * Check whether formatter with specified name exists. * * @param {String} name * Name that should be checked. * @return {Boolean} * &lt;code>true&lt;/code> if there is a formatter with the specified name, * &lt;code>false&lt;/code> if no one of formatters has the specified name. * @alias module:format.exists * @see {@link module:format.get get} */ function exists(name) { return get(name) !== null; } /** * Return object that represents all available formatters. * * @return {Object} * Object that represents all available formatters. * Fields are names of formatters, values are corresponding formatters. * @alias module:format.getMap */ function getMap() { return formatMap; } /** * Return list containing names of all available formatters. * * @return {Array} * List containing names of all available formatters. * @alias module:format.getNameList */ function getNameList() { var result = [], sName; for (sName in formatMap) { result.push(sName); } return result; } /** * Set formatter with specified name. * * @param {String} name * Name of formatter. * @param {Function | null} format * Function that represents formatter. * @return {Object} * Object that represents module &lt;code>exports&lt;/code>. * @throws Will throw an error if format is not a function. * @alias module:format.set */ function set(name, format) { /*jshint newcap:false*/ if (typeof format !== "function") { throw Error("Format should be a function"); } formatMap[name] = format; return exports; } /** * Remove formatter with specified name. * * @param {String} name * Name of formatter. * @return {Function | null} * Function that represents formatter * or &lt;code>null&lt;/code> if no one of formatters has the specified name. * @alias module:format.remove */ function remove(name) { var format = formatMap[name] || null; if (format) { delete formatMap[name]; } return format; } // Set predefined formatters set("text", require("./text")); set("json", require("./json")); set("markdown", require("./markdown")); set("raw", require("./raw")); //Exports exports.format = format; exports.get = get; exports.exists = exists; exports.getMap = getMap; exports.getNameList = getNameList; exports.set = set; exports.remove = remove; </pre> </article> </section> </div> <div class="clearfix"></div> <footer> <span class="copyright"> Copyright (c) 2014 Denis Sikuler </span> <br /> <span class="jsdoc-message"> Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.2.2</a> on Thu Aug 21 2014 23:46:51 GMT+0400 (MSK) using the <a href="https://github.com/terryweiss/docstrap">DocStrap template</a>. </span> </footer> </div> <br clear="both"> </div> </div> <script src="scripts/sunlight.js"></script> <script src="scripts/sunlight.javascript.js"></script> <script src="scripts/sunlight-plugin.doclinks.js"></script> <script src="scripts/sunlight-plugin.linenumbers.js"></script> <script src="scripts/sunlight-plugin.menu.js"></script> <script src="scripts/jquery.min.js"></script> <script src="scripts/jquery.scrollTo.js"></script> <script src="scripts/jquery.localScroll.js"></script> <script src="scripts/bootstrap-dropdown.js"></script> <script src="scripts/toc.js"></script> <script> Sunlight.highlightAll({lineNumbers:true, showMenu: true, enableDoclinks :true}); </script> <script> $( function () { $( "#toc" ).toc( { selectors : "h1,h2,h3,h4", showAndHide : false, scrollTo : 60 } ); $( "#toc>ul" ).addClass( "nav nav-pills nav-stacked" ); $( "#main span[id^='toc']" ).addClass( "toc-shim" ); } ); </script> </body> </html>