Initial
This commit is contained in:
22
resources/app/node_modules/fn.name/LICENSE
generated
vendored
Normal file
22
resources/app/node_modules/fn.name/LICENSE
generated
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2015 Arnout Kazemier, Martijn Swaagman, the Contributors.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
42
resources/app/node_modules/fn.name/index.js
generated
vendored
Normal file
42
resources/app/node_modules/fn.name/index.js
generated
vendored
Normal file
@@ -0,0 +1,42 @@
|
||||
'use strict';
|
||||
|
||||
var toString = Object.prototype.toString;
|
||||
|
||||
/**
|
||||
* Extract names from functions.
|
||||
*
|
||||
* @param {Function} fn The function who's name we need to extract.
|
||||
* @returns {String} The name of the function.
|
||||
* @public
|
||||
*/
|
||||
module.exports = function name(fn) {
|
||||
if ('string' === typeof fn.displayName && fn.constructor.name) {
|
||||
return fn.displayName;
|
||||
} else if ('string' === typeof fn.name && fn.name) {
|
||||
return fn.name;
|
||||
}
|
||||
|
||||
//
|
||||
// Check to see if the constructor has a name.
|
||||
//
|
||||
if (
|
||||
'object' === typeof fn
|
||||
&& fn.constructor
|
||||
&& 'string' === typeof fn.constructor.name
|
||||
) return fn.constructor.name;
|
||||
|
||||
//
|
||||
// toString the given function and attempt to parse it out of it, or determine
|
||||
// the class.
|
||||
//
|
||||
var named = fn.toString()
|
||||
, type = toString.call(fn).slice(8, -1);
|
||||
|
||||
if ('Function' === type) {
|
||||
named = named.substring(named.indexOf('(') + 1, named.indexOf(')'));
|
||||
} else {
|
||||
named = type;
|
||||
}
|
||||
|
||||
return named || 'anonymous';
|
||||
};
|
||||
19
resources/app/node_modules/fn.name/package.json
generated
vendored
Normal file
19
resources/app/node_modules/fn.name/package.json
generated
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"name": "fn.name",
|
||||
"version": "1.1.0",
|
||||
"description": "Extract names from functions",
|
||||
"main": "index.js",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/3rd-Eden/fn.name"
|
||||
},
|
||||
"author": "Arnout Kazemier",
|
||||
"license": "MIT",
|
||||
"devDependencies": {
|
||||
"assume": "2.x.x",
|
||||
"istanbul": "0.3.x",
|
||||
"mocha": "5.x.x",
|
||||
"pre-commit": "1.x.x"
|
||||
},
|
||||
"homepage": "https://github.com/3rd-Eden/fn.name"
|
||||
}
|
||||
73
resources/app/node_modules/fn.name/test.js
generated
vendored
Normal file
73
resources/app/node_modules/fn.name/test.js
generated
vendored
Normal file
@@ -0,0 +1,73 @@
|
||||
describe('fn.name', function () {
|
||||
'use strict';
|
||||
|
||||
var assume = require('assume')
|
||||
, name = require('./');
|
||||
|
||||
it('is exported as a function', function () {
|
||||
assume(name).is.a('function');
|
||||
});
|
||||
|
||||
it('can extract the name from a function declaration', function () {
|
||||
function foobar() {}
|
||||
|
||||
assume(name(foobar)).equals('foobar');
|
||||
});
|
||||
|
||||
it('can extract the name from a function expression', function () {
|
||||
var a = function bar() {};
|
||||
|
||||
assume(name(a)).equals('bar');
|
||||
});
|
||||
|
||||
it('can be overriden using displayName', function () {
|
||||
var a = function bar() {};
|
||||
a.displayName = 'bro';
|
||||
|
||||
assume(name(a)).equals('bro');
|
||||
});
|
||||
|
||||
it('works with constructed instances', function () {
|
||||
function Bar(){}
|
||||
|
||||
var foo = new Bar();
|
||||
|
||||
assume(name(foo)).equals('Bar');
|
||||
});
|
||||
|
||||
it('works with anonymous', function () {
|
||||
assume(name(function () {})).equals('anonymous');
|
||||
});
|
||||
|
||||
it('returns the className if we were not given a function', function () {
|
||||
assume(name('string')).equals('String');
|
||||
});
|
||||
|
||||
//
|
||||
// Test if the env supports async functions, if so add a test to ensure
|
||||
// that we will work with async functions.
|
||||
//
|
||||
var asyncfn = true;
|
||||
try { new Function('return async function hello() {}')(); }
|
||||
catch (e) { asyncfn = false; }
|
||||
|
||||
if (asyncfn) it('detects the name of async functions', function () {
|
||||
var fn = new Function('return async function hello() {}')();
|
||||
|
||||
assume(name(fn)).equals('hello');
|
||||
});
|
||||
|
||||
//
|
||||
// Test that this env supports generators, if so add a test to ensure that
|
||||
// we will work with generators.
|
||||
//
|
||||
var generators = true;
|
||||
try { new Function('return function* generator() {}')(); }
|
||||
catch (e) { generator = false; }
|
||||
|
||||
if (generators) it('detecs the name of a generator', function () {
|
||||
var fn = new Function('return function* hello() {}')();
|
||||
|
||||
assume(name(fn)).equals('hello');
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user