Compare commits
	
		
			17 Commits
		
	
	
		
			btoa-v1.0.
			...
			master
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 3acf6a0abf | ||
|  | c532da6cca | ||
|  | 0d914a3661 | ||
|  | 001cf59083 | ||
|  | 7294e5e787 | ||
|  | b69db22284 | ||
| 9807dbedc6 | |||
| 8b15697a10 | |||
| 07082fdb4e | |||
| 0f12759eb8 | |||
|  | c391d903e3 | ||
| c1673f281c | |||
| ba6a6282f1 | |||
| d86a3f5fc3 | |||
|  | 00b5c14843 | ||
|  | 133496cd12 | ||
| 48288ef240 | 
| @ -1,5 +1,2 @@ | |||||||
| Goals | # 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) | ||||||
| 
 |  | ||||||
|   * reserve the names of W3C modules ('geolocation', 'locacStorage', etc) on npm |  | ||||||
|   * implement W3C modules for node |  | ||||||
|  | |||||||
							
								
								
									
										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,10 +0,0 @@ | |||||||
| #!/usr/bin/env node
 |  | ||||||
| /*jshint strict:true node:true es5:true onevar:true laxcomma:true laxbreak:true eqeqeq:true immed:true latedef:true*/ |  | ||||||
| (function () { |  | ||||||
|   "use strict"; |  | ||||||
| 
 |  | ||||||
|   var atob = require('../index') |  | ||||||
|     ; |  | ||||||
| 
 |  | ||||||
|   console.log(atob(process.argv[2])); |  | ||||||
| }()); |  | ||||||
| @ -1,9 +0,0 @@ | |||||||
| (function () { |  | ||||||
|   "use strict"; |  | ||||||
| 
 |  | ||||||
|   function atob(str) { |  | ||||||
|     return new Buffer(str, 'base64').toString('utf8'); |  | ||||||
|   } |  | ||||||
| 
 |  | ||||||
|   module.exports = atob; |  | ||||||
| }()); |  | ||||||
| @ -1,22 +0,0 @@ | |||||||
| { |  | ||||||
|   "name": "atob", |  | ||||||
|   "homepage": "https://github.com/coolaj86/node-browser-compat", |  | ||||||
|   "description": "atob for Node.JS and Linux / Mac / Windows CLI (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" |  | ||||||
|   }, |  | ||||||
|   "main": "index", |  | ||||||
|   "bin": { |  | ||||||
|     "atob": "bin/atob.js" |  | ||||||
|   }, |  | ||||||
|   "version": "1.0.1" |  | ||||||
| } |  | ||||||
							
								
								
									
										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. | Now at https://github.com/node-browser-compat/dom-storage | ||||||
| 
 |  | ||||||
| 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 |  | ||||||
|  | |||||||
| @ -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