Compare commits
	
		
			No commits in common. "master" and "v1.0.2" have entirely different histories.
		
	
	
		
	
		
							
								
								
									
										41
									
								
								LICENSE
									
									
									
									
									
								
							
							
						
						
									
										41
									
								
								LICENSE
									
									
									
									
									
								
							@ -1,41 +0,0 @@
 | 
				
			|||||||
Copyright 2018 AJ ONeal
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
This is open source software; you can redistribute it and/or modify it under the
 | 
					 | 
				
			||||||
terms of either:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
   a) the "MIT License"
 | 
					 | 
				
			||||||
   b) the "Apache-2.0 License"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
MIT License
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
   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.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Apache-2.0 License Summary
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
   Licensed under the Apache License, Version 2.0 (the "License");
 | 
					 | 
				
			||||||
   you may not use this file except in compliance with the License.
 | 
					 | 
				
			||||||
   You may obtain a copy of the License at
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
     http://www.apache.org/licenses/LICENSE-2.0
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
   Unless required by applicable law or agreed to in writing, software
 | 
					 | 
				
			||||||
   distributed under the License is distributed on an "AS IS" BASIS,
 | 
					 | 
				
			||||||
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
					 | 
				
			||||||
   See the License for the specific language governing permissions and
 | 
					 | 
				
			||||||
   limitations under the License.
 | 
					 | 
				
			||||||
@ -12,10 +12,9 @@ This works in both the Browser and SSJS.
 | 
				
			|||||||
Notes
 | 
					Notes
 | 
				
			||||||
----
 | 
					----
 | 
				
			||||||
 | 
					
 | 
				
			||||||
`typeOf` is taken from `jQuery.type`, which is more accurate than Crockford's original and even simpler
 | 
					This uses the ["Flanagan / Miller device"](http://groups.google.com/group/nodejs/msg/0670a986a2906aeb) rather than the Crockford's original.
 | 
				
			||||||
than the ["Flanagan / Miller device"](http://groups.google.com/group/nodejs/msg/0670a986a2906aeb).
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
There is [a more specific typeof()](http://rolandog.com/archives/2007/01/18/typeof-a-more-specific-typeof/) implementation also worthy of consideration.
 | 
					There is [a more specific typeof()](http://rolandog.com/archives/2007/01/18/typeof-a-more-specific-typeof/) implementation worthy of consideration.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Globals
 | 
					Globals
 | 
				
			||||||
====
 | 
					====
 | 
				
			||||||
 | 
				
			|||||||
@ -1,23 +1,18 @@
 | 
				
			|||||||
/*jslint onevar: true, undef: true, nomen: true, eqeqeq: true, plusplus: true, bitwise: true, regexp: true, newcap: true, immed: true */
 | 
					/*jslint onevar: true, undef: true, nomen: true, eqeqeq: true, plusplus: true, bitwise: true, regexp: true, newcap: true, immed: true */
 | 
				
			||||||
 | 
					"use strict";
 | 
				
			||||||
(function () {
 | 
					(function () {
 | 
				
			||||||
    "use strict";
 | 
					    function typeOf(value) {
 | 
				
			||||||
 | 
					        var s = typeof value;
 | 
				
			||||||
    var global = Function('return this')()
 | 
					        if (s === 'object') {
 | 
				
			||||||
      , classes = "Boolean Number String Function Array Date RegExp Object".split(" ")
 | 
					            if (value) {
 | 
				
			||||||
      , i
 | 
					                if ((/array/i).test(({}).toString.call(value))) {
 | 
				
			||||||
      , name
 | 
					                    s = 'array';
 | 
				
			||||||
      , class2type = {}
 | 
					                }
 | 
				
			||||||
      ;
 | 
					            } else {
 | 
				
			||||||
 | 
					                s = 'null';
 | 
				
			||||||
    for (i in classes) {
 | 
					            }
 | 
				
			||||||
      if (classes.hasOwnProperty(i)) {
 | 
					        }
 | 
				
			||||||
        name = classes[i];
 | 
					        return s;
 | 
				
			||||||
        class2type["[object " + name + "]"] = name.toLowerCase();
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    function typeOf(obj) {
 | 
					 | 
				
			||||||
      return (null === obj || undefined === obj) ? String(obj) : class2type[Object.prototype.toString.call(obj)] || "object";
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    function isEmpty(o) {
 | 
					    function isEmpty(o) {
 | 
				
			||||||
@ -95,11 +90,15 @@
 | 
				
			|||||||
        };
 | 
					        };
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // CommonJS / npm / Ender.JS
 | 
					    // Boiler Plate
 | 
				
			||||||
 | 
					    if ('undefined' === typeof module) { module = {}; }
 | 
				
			||||||
    module.exports = {
 | 
					    module.exports = {
 | 
				
			||||||
        typeOf: typeOf,
 | 
					        typeOf: typeOf,
 | 
				
			||||||
        isEmpty: isEmpty
 | 
					        isEmpty: isEmpty
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					    if ('undefined' === typeof global) { global = window; }
 | 
				
			||||||
    global.typeOf = global.typeOf || typeOf;
 | 
					    global.typeOf = global.typeOf || typeOf;
 | 
				
			||||||
    global.isEmpty = global.isEmpty || isEmpty;
 | 
					    global.isEmpty = global.isEmpty || isEmpty;
 | 
				
			||||||
 | 
					    if ('undefined' === typeof provide) { provide = function () {}; }
 | 
				
			||||||
 | 
					    provide('remedial');
 | 
				
			||||||
}());
 | 
					}());
 | 
				
			||||||
							
								
								
									
										33
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										33
									
								
								package.json
									
									
									
									
									
								
							@ -1,14 +1,23 @@
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
  "name"          : "remedial",
 | 
					  "author": "AJ ONeal <coolaj86@gmail.com> (https://coolaj86.com)",
 | 
				
			||||||
  "description"   : "Deprecated. Utilities for ES3, most of which have been adopted or superseded in ES5.1. Adapted from Douglas Crockford's Remedial JavaScript",
 | 
					  "contributors": [ "Douglas Crockford <douglas@crockford.com>" ],
 | 
				
			||||||
  "url"           : "http://javascript.crockford.com/remedial.html",
 | 
					  "dependencies": {},
 | 
				
			||||||
  "keywords"      : ["util", "isEmpty", "typeOf", "entityify", "quote", "supplant", "trim"],
 | 
					  "description": "Deprecated. Utilities for ES3, most of which have been adopted or superseded in ES5.1. Adapted from Douglas Crockford's Remedial JavaScript",
 | 
				
			||||||
  "author"        : "AJ ONeal <coolaj86@gmail.com> (https://coolaj86.com)",
 | 
					  "engines": {
 | 
				
			||||||
  "contributors"  : [ "Douglas Crockford <douglas@crockford.com>" ],
 | 
					    "node": "*"
 | 
				
			||||||
  "dependencies"  : {},
 | 
					  },
 | 
				
			||||||
  "engines"       : { "node": "*" },
 | 
					  "keywords": [
 | 
				
			||||||
  "homepage"      : "https://git.coolaj86.com/coolaj86/remedial.js",
 | 
					    "util",
 | 
				
			||||||
  "license"       : "(MIT OR Apache-2.0)",
 | 
					    "isEmpty",
 | 
				
			||||||
  "main"          : "./index",
 | 
					    "typeOf",
 | 
				
			||||||
  "version"       : "1.0.8"
 | 
					    "entityify",
 | 
				
			||||||
 | 
					    "quote",
 | 
				
			||||||
 | 
					    "supplant",
 | 
				
			||||||
 | 
					    "trim"
 | 
				
			||||||
 | 
					  ],
 | 
				
			||||||
 | 
					  "lib": "lib",
 | 
				
			||||||
 | 
					  "main": "./lib/remedial",
 | 
				
			||||||
 | 
					  "name": "remedial",
 | 
				
			||||||
 | 
					  "homepage": "https://git.coolaj86.com/coolaj86/remedial.js",
 | 
				
			||||||
 | 
					  "version": "1.0.2"
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -24,7 +24,7 @@
 | 
				
			|||||||
  // Expected: 3
 | 
					  // Expected: 3
 | 
				
			||||||
  // Node/V8/FF: 0
 | 
					  // Node/V8/FF: 0
 | 
				
			||||||
  console.log(typeOf(b));
 | 
					  console.log(typeOf(b));
 | 
				
			||||||
  // Expected: Object (with Flanagan / Miller device or jQuery's type)
 | 
					  // Expected: Object
 | 
				
			||||||
  // Node/V8/FF: array (with Crockford's original)
 | 
					  // Node/V8/FF: array (with Crockford's original)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -1,31 +0,0 @@
 | 
				
			|||||||
(function () {
 | 
					 | 
				
			||||||
  require('../lib/remedial');
 | 
					 | 
				
			||||||
  var n = null,
 | 
					 | 
				
			||||||
    u;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  if (
 | 
					 | 
				
			||||||
    'object' === typeOf(Object.create([])) &&
 | 
					 | 
				
			||||||
    'object' === typeOf(Object.create(function () {})) &&
 | 
					 | 
				
			||||||
    'array' === typeOf([]) &&
 | 
					 | 
				
			||||||
    'string' === typeOf('') &&
 | 
					 | 
				
			||||||
    'regexp' === typeOf(/ /) &&
 | 
					 | 
				
			||||||
    'number' === typeOf(0) &&
 | 
					 | 
				
			||||||
    'function' === typeOf(function () {}) &&
 | 
					 | 
				
			||||||
    'function' === typeOf((function () {
 | 
					 | 
				
			||||||
      var a = function () {}; 
 | 
					 | 
				
			||||||
      a.foo = 'bar';
 | 
					 | 
				
			||||||
      return a;
 | 
					 | 
				
			||||||
    }())) &&
 | 
					 | 
				
			||||||
    'boolean' === typeOf(true) &&
 | 
					 | 
				
			||||||
    'boolean' === typeOf(false) &&
 | 
					 | 
				
			||||||
    'date' === typeOf(new Date()) &&
 | 
					 | 
				
			||||||
    'undefined' === typeOf(u) &&
 | 
					 | 
				
			||||||
    'undefined' === typeOf(undefined) &&
 | 
					 | 
				
			||||||
    'null' === typeOf(n) &&
 | 
					 | 
				
			||||||
    'object' === typeOf({})
 | 
					 | 
				
			||||||
      ) {
 | 
					 | 
				
			||||||
    console.log('passed type detections')
 | 
					 | 
				
			||||||
  } else {
 | 
					 | 
				
			||||||
    console.log('failed type detections')
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}());
 | 
					 | 
				
			||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user