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]; |  | ||||||
|         class2type["[object " + name + "]"] = name.toLowerCase(); |  | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
| 
 |         return s; | ||||||
|     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