Compare commits
	
		
			18 Commits
		
	
	
		
			atob-v1.0.
			...
			master
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 3acf6a0abf | ||
|  | c532da6cca | ||
|  | 0d914a3661 | ||
|  | 001cf59083 | ||
|  | 7294e5e787 | ||
|  | b69db22284 | ||
| 9807dbedc6 | |||
| 8b15697a10 | |||
| 07082fdb4e | |||
| 0f12759eb8 | |||
|  | c391d903e3 | ||
| c1673f281c | |||
| ba6a6282f1 | |||
| d86a3f5fc3 | |||
|  | 00b5c14843 | ||
|  | 133496cd12 | ||
| 48288ef240 | |||
| 30c4163ba8 | 
| @ -1,5 +1,2 @@ | ||||
| Goals | ||||
| === | ||||
| 
 | ||||
|   * reserve the names of W3C modules ('geolocation', 'locacStorage', etc) on npm | ||||
|   * implement W3C modules for node | ||||
| # Moved | ||||
| ### [node-browser-compat](https://git.daplie.com/coolaj86/node-browser-compat) is now at [git.daplie.com/coolaj86/node-browser-compat](https://git.daplie.com/coolaj86/node-browser-compat) | ||||
|  | ||||
							
								
								
									
										4
									
								
								atob/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								atob/README.md
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,4 @@ | ||||
| MOVED | ||||
| ==== | ||||
| 
 | ||||
| Now at https://github.com/node-browser-compat/atob | ||||
| @ -1,9 +0,0 @@ | ||||
| (function () { | ||||
|   "use strict"; | ||||
| 
 | ||||
|   function atob(str) { | ||||
|     return new Buffer(str, 'base64').toString('utf8'); | ||||
|   } | ||||
| 
 | ||||
|   module.exports = atob; | ||||
| }()); | ||||
| @ -1,18 +0,0 @@ | ||||
| { | ||||
|   "name"          : "atob", | ||||
|   "homepage"      : "https://github.com/coolaj86/node-browser-compat", | ||||
|   "description"   : "atob for Node.JS (it's a one-liner)", | ||||
|    "repository"   : { | ||||
|                       "type": "git", | ||||
|                       "url": "git://github.com/coolaj86/node-browser-compat.git" | ||||
|                     }, | ||||
|   "keywords"      : ["atob", "browser"], | ||||
|   "author"        : "AJ ONeal <coolaj86@gmail.com> (http://coolaj86.info)", | ||||
|   "engines"       : { | ||||
|                       "node": ">= 0.4.0" | ||||
|                     }, | ||||
|   "dependencies"  : { | ||||
|                     }, | ||||
|   "main"          : "index", | ||||
|   "version"       : "1.0.0" | ||||
| } | ||||
							
								
								
									
										15
									
								
								atob/test.js
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								atob/test.js
									
									
									
									
									
								
							| @ -1,15 +0,0 @@ | ||||
| (function () { | ||||
|   "use strict"; | ||||
| 
 | ||||
|   var atob = require('./index') | ||||
|     , encoded = "SGVsbG8gV29ybGQ=" | ||||
|     , unencoded = "Hello World" | ||||
|     , result | ||||
|     ; | ||||
| 
 | ||||
|   if (unencoded !== atob(encoded)) { | ||||
|     return; | ||||
|   } | ||||
| 
 | ||||
|   console.log('[PASS] all tests pass'); | ||||
| }()); | ||||
							
								
								
									
										4
									
								
								btoa/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								btoa/README.md
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,4 @@ | ||||
| MOVED | ||||
| ==== | ||||
| 
 | ||||
| Now at https://github.com/node-browser-compat/btoa | ||||
| @ -1,9 +0,0 @@ | ||||
| (function () { | ||||
|   "use strict"; | ||||
| 
 | ||||
|   function btoa(str) { | ||||
|     return new Buffer(str, 'utf8').toString('base64'); | ||||
|   } | ||||
| 
 | ||||
|   module.exports = btoa; | ||||
| }()); | ||||
| @ -1,18 +0,0 @@ | ||||
| { | ||||
|   "name"          : "btoa", | ||||
|   "homepage"      : "https://github.com/coolaj86/node-browser-compat", | ||||
|   "description"   : "btoa for Node.JS (it's a one-liner)", | ||||
|    "repository"   : { | ||||
|                       "type": "git", | ||||
|                       "url": "git://github.com/coolaj86/node-browser-compat.git" | ||||
|                     }, | ||||
|   "keywords"      : ["btoa", "browser"], | ||||
|   "author"        : "AJ ONeal <coolaj86@gmail.com> (http://coolaj86.info)", | ||||
|   "engines"       : { | ||||
|                       "node": ">= 0.4.0" | ||||
|                     }, | ||||
|   "dependencies"  : { | ||||
|                     }, | ||||
|   "main"          : "index", | ||||
|   "version"       : "1.0.0" | ||||
| } | ||||
							
								
								
									
										15
									
								
								btoa/test.js
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								btoa/test.js
									
									
									
									
									
								
							| @ -1,15 +0,0 @@ | ||||
| (function () { | ||||
|   "use strict"; | ||||
| 
 | ||||
|   var btoa = require('./index') | ||||
|     , encoded = "SGVsbG8gV29ybGQ=" | ||||
|     , unencoded = "Hello World" | ||||
|     , result | ||||
|     ; | ||||
| 
 | ||||
|   if (encoded !== btoa(unencoded)) { | ||||
|     return; | ||||
|   } | ||||
| 
 | ||||
|   console.log('[PASS] all tests pass'); | ||||
| }()); | ||||
| @ -1,56 +1,4 @@ | ||||
| localStorage | ||||
| === | ||||
| MOVED | ||||
| ===== | ||||
| 
 | ||||
| An inefficient, but as W3C-compliant as possible using only pure JavaScript, `localStorage` implementation. | ||||
| 
 | ||||
| Purpose | ||||
| ---- | ||||
| 
 | ||||
| This is meant for the purpose of being able to run unit-tests and such for browser-y modules in node. | ||||
| 
 | ||||
| Usage | ||||
| ---- | ||||
| 
 | ||||
|     var localStorage = require('localStorage') | ||||
|       , myValue = { foo: 'bar', baz: 'quux' } | ||||
|       ; | ||||
| 
 | ||||
|     localStorage.setItem('myKey', JSON.stringify(myValue)); | ||||
|     myValue = localStorage.getItem('myKey'); | ||||
| 
 | ||||
| API | ||||
| --- | ||||
| 
 | ||||
|   * getItem(key) | ||||
|   * setItem(key, value) | ||||
|   * removeItem(key) | ||||
|   * clear() | ||||
|   * key(n) | ||||
|   * length | ||||
| 
 | ||||
| Tests | ||||
| --- | ||||
| 
 | ||||
|     0 === localStorage.length; | ||||
|     null === localStorage.getItem('doesn't exist'); | ||||
|     undefined === localStorage['doesn't exist']; | ||||
| 
 | ||||
|     localStorage.setItem('myItem'); | ||||
|     "undefined" === localStorage.getItem('myItem'); | ||||
|     1 === localStorage.length; | ||||
| 
 | ||||
|     localStorage.setItem('myItem', 0); | ||||
|     "0" === localStorage.getItem('myItem'); | ||||
| 
 | ||||
|     localStorage.removeItem('myItem', 0); | ||||
|     0 === localStorage.length; | ||||
| 
 | ||||
|     localStorage.clear(); | ||||
|     0 === localStorage.length; | ||||
| 
 | ||||
| TODO / Bugs | ||||
| --- | ||||
| 
 | ||||
|   * Does not persist. | ||||
|     * could use `fs.readFileSync` at load and an occasional `fs.writeFile` to write-out localStorage.json | ||||
|   * Doesn't not emit `Storage` events | ||||
| Now at https://github.com/node-browser-compat/dom-storage | ||||
|  | ||||
| @ -1,54 +0,0 @@ | ||||
| // http://www.rajdeepd.com/articles/chrome/localstrg/LocalStorageSample.htm
 | ||||
| 
 | ||||
| // NOTE:
 | ||||
| // this varies from actual localStorage in some subtle ways
 | ||||
| 
 | ||||
| // also, there is no persistence
 | ||||
| // TODO persist
 | ||||
| (function () { | ||||
|   "use strict"; | ||||
| 
 | ||||
|   var db; | ||||
| 
 | ||||
|   function LocalStorage() { | ||||
|   } | ||||
|   db = LocalStorage; | ||||
| 
 | ||||
|   db.prototype.getItem = function (key) { | ||||
|     if (key in this) { | ||||
|       return String(this[key]); | ||||
|     } | ||||
|     return null; | ||||
|   }; | ||||
| 
 | ||||
|   db.prototype.setItem = function (key, val) { | ||||
|     this[key] = String(val); | ||||
|   }; | ||||
| 
 | ||||
|   db.prototype.removeItem = function (key) { | ||||
|     delete this[key]; | ||||
|   }; | ||||
| 
 | ||||
|   db.prototype.clear = function () { | ||||
|     var self = this; | ||||
|     Object.keys(self).forEach(function (key) { | ||||
|       self[key] = undefined; | ||||
|       delete self[key]; | ||||
|     }); | ||||
|   }; | ||||
| 
 | ||||
|   db.prototype.key = function (i) { | ||||
|     i = i || 0; | ||||
|     return Object.keys(this)[i]; | ||||
|   }; | ||||
| 
 | ||||
|   db.prototype.__defineGetter__('length', function () { | ||||
|     return Object.keys(this).length; | ||||
|   }); | ||||
| 
 | ||||
|   if (global.localStorage) { | ||||
|     module.exports = localStorage; | ||||
|   } else { | ||||
|     module.exports = new LocalStorage(); | ||||
|   } | ||||
| }()); | ||||
| @ -1,16 +0,0 @@ | ||||
| { | ||||
|   "author": "AJ ONeal <coolaj86@gmail.com> (http://coolaj86.info)", | ||||
|   "name": "localStorage", | ||||
|   "description": "W3C localStorage for Node.JS", | ||||
|   "version": "1.0.0", | ||||
|   "repository": { | ||||
|     "type": "git", | ||||
|     "url": "git://github.com/coolaj86/node-localStorage.git" | ||||
|   }, | ||||
|   "engines": { | ||||
|     "node": ">= v0.2.0" | ||||
|   }, | ||||
|   "main": "localStorage.js", | ||||
|   "dependencies": {}, | ||||
|   "devDependencies": {} | ||||
| } | ||||
| @ -1,34 +0,0 @@ | ||||
| (function () { | ||||
|   "use strict"; | ||||
| 
 | ||||
|   var assert = require('assert') | ||||
|     , localStorage = require('localStorage') | ||||
|     ; | ||||
| 
 | ||||
|   // can't make assuptions about key positioning
 | ||||
|   localStorage.setItem('a', 1); | ||||
|   assert.strictEqual(localStorage.key(0), 'a'); | ||||
| 
 | ||||
|   localStorage.setItem('b', '2'); | ||||
|   assert.strictEqual(localStorage.getItem('a'), '1'); | ||||
|   assert.strictEqual(localStorage.getItem('b'), '2'); | ||||
|   assert.strictEqual(localStorage.length, 2); | ||||
| 
 | ||||
|   assert.strictEqual(localStorage['c'], undefined); | ||||
|   assert.strictEqual(localStorage.getItem('c'), null); | ||||
| 
 | ||||
|   localStorage.setItem('c'); | ||||
|   assert.strictEqual(localStorage.getItem('c'), "undefined"); | ||||
|   assert.strictEqual(localStorage.length, 3); | ||||
| 
 | ||||
|   localStorage.removeItem('c'); | ||||
|   assert.strictEqual(localStorage.getItem('c'), null); | ||||
|   assert.strictEqual(localStorage.length, 2); | ||||
| 
 | ||||
|   localStorage.clear(); | ||||
|   assert.strictEqual(localStorage.getItem('a'), null); | ||||
|   assert.strictEqual(localStorage.getItem('b'), null); | ||||
|   assert.strictEqual(localStorage.length, 0); | ||||
| 
 | ||||
|   console.log('All tests passed'); | ||||
| }()); | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user