UNPKG

sassdoc

Version:
126 lines (104 loc) 3.2 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.is = exports.splitNamespace = undefined; var _typeof2 = require('babel-runtime/helpers/typeof'); var _typeof3 = _interopRequireDefault(_typeof2); var _promise = require('babel-runtime/core-js/promise'); var _promise2 = _interopRequireDefault(_promise); exports.denodeify = denodeify; exports.defer = defer; exports.g2b = g2b; var _glob2base = require('glob2base'); var _glob2base2 = _interopRequireDefault(_glob2base); var _glob = require('glob'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } // Namespace delimiters. var nsDelimiters = ['::', ':', '\\.', '/']; var ns = new RegExp(nsDelimiters.join('|'), 'g'); // Split a namespace on possible namespace delimiters. var splitNamespace = exports.splitNamespace = function splitNamespace(value) { return value.split(ns); }; function denodeify(fn) { return function () { for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } return new _promise2.default(function (resolve, reject) { fn.apply(undefined, args.concat([function (err) { for (var _len2 = arguments.length, args = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) { args[_key2 - 1] = arguments[_key2]; } if (err) { reject(err); return; } resolve.apply(undefined, args); }])); }); }; } function defer() { var resolve = void 0, reject = void 0; var promise = new _promise2.default(function (resolve_, reject_) { resolve = resolve_; reject = reject_; }); return { promise: promise, resolve: resolve, reject: reject }; } /** * Get the base directory of given glob pattern (see `glob2base`). * * If it's an array, take the first one. * * @param {Array|String} src Glob pattern or array of glob patterns. * @return {String} */ function g2b(src) { return (0, _glob2base2.default)(new _glob.Glob([].concat(src)[0])); } /** * Type checking helpers. */ var toString = function toString(arg) { return Object.prototype.toString.call(arg); }; var is = exports.is = { undef: function undef(arg) { return arg === void 0; }, string: function string(arg) { return typeof arg === 'string'; }, function: function _function(arg) { return typeof arg === 'function'; }, object: function object(arg) { return (typeof arg === 'undefined' ? 'undefined' : (0, _typeof3.default)(arg)) === 'object' && arg !== null; }, plainObject: function plainObject(arg) { return toString(arg) === '[object Object]'; }, array: function array(arg) { return Array.isArray(arg); }, error: function error(arg) { return is.object(arg) && (toString(arg) === '[object Error]' || arg instanceof Error); }, promise: function promise(arg) { return arg && is.function(arg.then); }, stream: function stream(arg) { return arg && is.function(arg.pipe); }, vinylFile: function vinylFile(arg) { return is.plainObject(arg) && arg.constructor.name === 'File'; } };