| | var { readdirSync, lstatSync } = require('fs'); |
| | var { join } = require('path'); |
| |
|
| | var escapeString = require('../util/escapeString'); |
| | var constants = require('../util/constants'); |
| |
|
| | exports.parseQueryString = function(uri) { |
| | |
| | var params = {}; |
| | uri.replace( |
| | new RegExp("([^?=&]+)(=([^&]*))?", "g"), |
| | function($0, $1, $2, $3) { params[$1] = $3; } |
| | ); |
| | return params; |
| | }; |
| |
|
| | exports.isBrowser = function() { |
| | var inBrowser = String(typeof window) !== 'undefined'; |
| | return inBrowser; |
| | }; |
| |
|
| | exports.splitTextCommand = function(value, func, context) { |
| | func = func.bind(context); |
| | value.split(';').forEach(function(command, index) { |
| | command = escapeString(command); |
| | command = command |
| | .replace(/^(\s+)/, '') |
| | .replace(/(\s+)$/, '') |
| | .replace(/"/g, '"') |
| | .replace(/'/g, "'") |
| | .replace(///g, "/"); |
| |
|
| | if (index > 0 && !command.length) { |
| | return; |
| | } |
| | func(command); |
| | }); |
| | }; |
| |
|
| | exports.genParseCommand = function(regexMap, eventName) { |
| | return function(str) { |
| | var method; |
| | var regexResults; |
| |
|
| | Object.keys(regexMap).forEach(function(_method) { |
| | var results = regexMap[_method].exec(str); |
| | if (results) { |
| | method = _method; |
| | regexResults = results; |
| | } |
| | }); |
| |
|
| | return (!method) ? false : { |
| | toSet: { |
| | eventName: eventName, |
| | method: method, |
| | regexResults: regexResults |
| | } |
| | }; |
| | }; |
| | }; |
| |
|
| | exports.readDirDeep = function(dir) { |
| | var paths = []; |
| | readdirSync(dir).forEach(function(path) { |
| | var aPath = join(dir, path); |
| | if (lstatSync(aPath).isDirectory()) { |
| | paths.push(...exports.readDirDeep(aPath)); |
| | } else { |
| | paths.push(aPath); |
| | } |
| | }); |
| | return paths; |
| | }; |
| |
|