Compare commits
	
		
			No commits in common. "master" and "v2.0.1" have entirely different histories.
		
	
	
		
	
		
							
								
								
									
										191
									
								
								LICENSE
									
									
									
									
									
								
							
							
						
						
									
										191
									
								
								LICENSE
									
									
									
									
									
								
							| @ -1,191 +0,0 @@ | |||||||
| Apache License |  | ||||||
| Version 2.0, January 2004 |  | ||||||
| http://www.apache.org/licenses/ |  | ||||||
| 
 |  | ||||||
| TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION |  | ||||||
| 
 |  | ||||||
| 1. Definitions. |  | ||||||
| 
 |  | ||||||
| "License" shall mean the terms and conditions for use, reproduction, and |  | ||||||
| distribution as defined by Sections 1 through 9 of this document. |  | ||||||
| 
 |  | ||||||
| "Licensor" shall mean the copyright owner or entity authorized by the copyright |  | ||||||
| owner that is granting the License. |  | ||||||
| 
 |  | ||||||
| "Legal Entity" shall mean the union of the acting entity and all other entities |  | ||||||
| that control, are controlled by, or are under common control with that entity. |  | ||||||
| For the purposes of this definition, "control" means (i) the power, direct or |  | ||||||
| indirect, to cause the direction or management of such entity, whether by |  | ||||||
| contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the |  | ||||||
| outstanding shares, or (iii) beneficial ownership of such entity. |  | ||||||
| 
 |  | ||||||
| "You" (or "Your") shall mean an individual or Legal Entity exercising |  | ||||||
| permissions granted by this License. |  | ||||||
| 
 |  | ||||||
| "Source" form shall mean the preferred form for making modifications, including |  | ||||||
| but not limited to software source code, documentation source, and configuration |  | ||||||
| files. |  | ||||||
| 
 |  | ||||||
| "Object" form shall mean any form resulting from mechanical transformation or |  | ||||||
| translation of a Source form, including but not limited to compiled object code, |  | ||||||
| generated documentation, and conversions to other media types. |  | ||||||
| 
 |  | ||||||
| "Work" shall mean the work of authorship, whether in Source or Object form, made |  | ||||||
| available under the License, as indicated by a copyright notice that is included |  | ||||||
| in or attached to the work (an example is provided in the Appendix below). |  | ||||||
| 
 |  | ||||||
| "Derivative Works" shall mean any work, whether in Source or Object form, that |  | ||||||
| is based on (or derived from) the Work and for which the editorial revisions, |  | ||||||
| annotations, elaborations, or other modifications represent, as a whole, an |  | ||||||
| original work of authorship. For the purposes of this License, Derivative Works |  | ||||||
| shall not include works that remain separable from, or merely link (or bind by |  | ||||||
| name) to the interfaces of, the Work and Derivative Works thereof. |  | ||||||
| 
 |  | ||||||
| "Contribution" shall mean any work of authorship, including the original version |  | ||||||
| of the Work and any modifications or additions to that Work or Derivative Works |  | ||||||
| thereof, that is intentionally submitted to Licensor for inclusion in the Work |  | ||||||
| by the copyright owner or by an individual or Legal Entity authorized to submit |  | ||||||
| on behalf of the copyright owner. For the purposes of this definition, |  | ||||||
| "submitted" means any form of electronic, verbal, or written communication sent |  | ||||||
| to the Licensor or its representatives, including but not limited to |  | ||||||
| communication on electronic mailing lists, source code control systems, and |  | ||||||
| issue tracking systems that are managed by, or on behalf of, the Licensor for |  | ||||||
| the purpose of discussing and improving the Work, but excluding communication |  | ||||||
| that is conspicuously marked or otherwise designated in writing by the copyright |  | ||||||
| owner as "Not a Contribution." |  | ||||||
| 
 |  | ||||||
| "Contributor" shall mean Licensor and any individual or Legal Entity on behalf |  | ||||||
| of whom a Contribution has been received by Licensor and subsequently |  | ||||||
| incorporated within the Work. |  | ||||||
| 
 |  | ||||||
| 2. Grant of Copyright License. |  | ||||||
| 
 |  | ||||||
| Subject to the terms and conditions of this License, each Contributor hereby |  | ||||||
| grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, |  | ||||||
| irrevocable copyright license to reproduce, prepare Derivative Works of, |  | ||||||
| publicly display, publicly perform, sublicense, and distribute the Work and such |  | ||||||
| Derivative Works in Source or Object form. |  | ||||||
| 
 |  | ||||||
| 3. Grant of Patent License. |  | ||||||
| 
 |  | ||||||
| Subject to the terms and conditions of this License, each Contributor hereby |  | ||||||
| grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, |  | ||||||
| irrevocable (except as stated in this section) patent license to make, have |  | ||||||
| made, use, offer to sell, sell, import, and otherwise transfer the Work, where |  | ||||||
| such license applies only to those patent claims licensable by such Contributor |  | ||||||
| that are necessarily infringed by their Contribution(s) alone or by combination |  | ||||||
| of their Contribution(s) with the Work to which such Contribution(s) was |  | ||||||
| submitted. If You institute patent litigation against any entity (including a |  | ||||||
| cross-claim or counterclaim in a lawsuit) alleging that the Work or a |  | ||||||
| Contribution incorporated within the Work constitutes direct or contributory |  | ||||||
| patent infringement, then any patent licenses granted to You under this License |  | ||||||
| for that Work shall terminate as of the date such litigation is filed. |  | ||||||
| 
 |  | ||||||
| 4. Redistribution. |  | ||||||
| 
 |  | ||||||
| You may reproduce and distribute copies of the Work or Derivative Works thereof |  | ||||||
| in any medium, with or without modifications, and in Source or Object form, |  | ||||||
| provided that You meet the following conditions: |  | ||||||
| 
 |  | ||||||
| You must give any other recipients of the Work or Derivative Works a copy of |  | ||||||
| this License; and |  | ||||||
| You must cause any modified files to carry prominent notices stating that You |  | ||||||
| changed the files; and |  | ||||||
| You must retain, in the Source form of any Derivative Works that You distribute, |  | ||||||
| all copyright, patent, trademark, and attribution notices from the Source form |  | ||||||
| of the Work, excluding those notices that do not pertain to any part of the |  | ||||||
| Derivative Works; and |  | ||||||
| If the Work includes a "NOTICE" text file as part of its distribution, then any |  | ||||||
| Derivative Works that You distribute must include a readable copy of the |  | ||||||
| attribution notices contained within such NOTICE file, excluding those notices |  | ||||||
| that do not pertain to any part of the Derivative Works, in at least one of the |  | ||||||
| following places: within a NOTICE text file distributed as part of the |  | ||||||
| Derivative Works; within the Source form or documentation, if provided along |  | ||||||
| with the Derivative Works; or, within a display generated by the Derivative |  | ||||||
| Works, if and wherever such third-party notices normally appear. The contents of |  | ||||||
| the NOTICE file are for informational purposes only and do not modify the |  | ||||||
| License. You may add Your own attribution notices within Derivative Works that |  | ||||||
| You distribute, alongside or as an addendum to the NOTICE text from the Work, |  | ||||||
| provided that such additional attribution notices cannot be construed as |  | ||||||
| modifying the License. |  | ||||||
| You may add Your own copyright statement to Your modifications and may provide |  | ||||||
| additional or different license terms and conditions for use, reproduction, or |  | ||||||
| distribution of Your modifications, or for any such Derivative Works as a whole, |  | ||||||
| provided Your use, reproduction, and distribution of the Work otherwise complies |  | ||||||
| with the conditions stated in this License. |  | ||||||
| 
 |  | ||||||
| 5. Submission of Contributions. |  | ||||||
| 
 |  | ||||||
| Unless You explicitly state otherwise, any Contribution intentionally submitted |  | ||||||
| for inclusion in the Work by You to the Licensor shall be under the terms and |  | ||||||
| conditions of this License, without any additional terms or conditions. |  | ||||||
| Notwithstanding the above, nothing herein shall supersede or modify the terms of |  | ||||||
| any separate license agreement you may have executed with Licensor regarding |  | ||||||
| such Contributions. |  | ||||||
| 
 |  | ||||||
| 6. Trademarks. |  | ||||||
| 
 |  | ||||||
| This License does not grant permission to use the trade names, trademarks, |  | ||||||
| service marks, or product names of the Licensor, except as required for |  | ||||||
| reasonable and customary use in describing the origin of the Work and |  | ||||||
| reproducing the content of the NOTICE file. |  | ||||||
| 
 |  | ||||||
| 7. Disclaimer of Warranty. |  | ||||||
| 
 |  | ||||||
| Unless required by applicable law or agreed to in writing, Licensor provides the |  | ||||||
| Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, |  | ||||||
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, |  | ||||||
| including, without limitation, any warranties or conditions of TITLE, |  | ||||||
| NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are |  | ||||||
| solely responsible for determining the appropriateness of using or |  | ||||||
| redistributing the Work and assume any risks associated with Your exercise of |  | ||||||
| permissions under this License. |  | ||||||
| 
 |  | ||||||
| 8. Limitation of Liability. |  | ||||||
| 
 |  | ||||||
| In no event and under no legal theory, whether in tort (including negligence), |  | ||||||
| contract, or otherwise, unless required by applicable law (such as deliberate |  | ||||||
| and grossly negligent acts) or agreed to in writing, shall any Contributor be |  | ||||||
| liable to You for damages, including any direct, indirect, special, incidental, |  | ||||||
| or consequential damages of any character arising as a result of this License or |  | ||||||
| out of the use or inability to use the Work (including but not limited to |  | ||||||
| damages for loss of goodwill, work stoppage, computer failure or malfunction, or |  | ||||||
| any and all other commercial damages or losses), even if such Contributor has |  | ||||||
| been advised of the possibility of such damages. |  | ||||||
| 
 |  | ||||||
| 9. Accepting Warranty or Additional Liability. |  | ||||||
| 
 |  | ||||||
| While redistributing the Work or Derivative Works thereof, You may choose to |  | ||||||
| offer, and charge a fee for, acceptance of support, warranty, indemnity, or |  | ||||||
| other liability obligations and/or rights consistent with this License. However, |  | ||||||
| in accepting such obligations, You may act only on Your own behalf and on Your |  | ||||||
| sole responsibility, not on behalf of any other Contributor, and only if You |  | ||||||
| agree to indemnify, defend, and hold each Contributor harmless for any liability |  | ||||||
| incurred by, or claims asserted against, such Contributor by reason of your |  | ||||||
| accepting any such warranty or additional liability. |  | ||||||
| 
 |  | ||||||
| END OF TERMS AND CONDITIONS |  | ||||||
| 
 |  | ||||||
| APPENDIX: How to apply the Apache License to your work |  | ||||||
| 
 |  | ||||||
| To apply the Apache License to your work, attach the following boilerplate |  | ||||||
| notice, with the fields enclosed by brackets "[]" replaced with your own |  | ||||||
| identifying information. (Don't include the brackets!) The text should be |  | ||||||
| enclosed in the appropriate comment syntax for the file format. We also |  | ||||||
| recommend that a file or class name and description of purpose be included on |  | ||||||
| the same "printed page" as the copyright notice for easier identification within |  | ||||||
| third-party archives. |  | ||||||
| 
 |  | ||||||
|    Copyright [yyyy] [name of copyright owner] |  | ||||||
| 
 |  | ||||||
|    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. |  | ||||||
							
								
								
									
										39
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										39
									
								
								README.md
									
									
									
									
									
								
							| @ -1,13 +1,6 @@ | |||||||
| sessionStorage & localStorage for NodeJS | sessionStorage & localStorage for NodeJS | ||||||
| === | === | ||||||
| 
 | 
 | ||||||
| | **dom-storage** |  | ||||||
| | [atob](https://git.coolaj86.com/coolaj86/atob.js) |  | ||||||
| | [btoa](https://git.coolaj86.com/coolaj86/btoa.js) |  | ||||||
| | [unibabel.js](https://git.coolaj86.com/coolaj86/unibabel.js) |  | ||||||
| | Sponsored by [ppl](https://ppl.family) |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| An inefficient, but as W3C-compliant as possible using only pure JavaScript, `DOMStorage` implementation. | An inefficient, but as W3C-compliant as possible using only pure JavaScript, `DOMStorage` implementation. | ||||||
| 
 | 
 | ||||||
| Purpose | Purpose | ||||||
| @ -19,15 +12,16 @@ Usage | |||||||
| ---- | ---- | ||||||
| 
 | 
 | ||||||
| ```javascript | ```javascript | ||||||
| var Storage = require('dom-storage'); | var Storage = require('dom-storage') | ||||||
| 
 | 
 | ||||||
| // in-file, doesn't call `String(val)` on values (default) |     // in-file, doesn't call `String(val)` on values (default) | ||||||
| var localStorage = new Storage('./db.json', { strict: false, ws: '  ' }); |   , localStorage = new Storage('./db.json', { strict: false, ws: '  ' }) | ||||||
| 
 | 
 | ||||||
| // in-memory, does call `String(val)` on values (i.e. `{}` becomes `'[object Object]'` |     // in-memory, does call `String(val)` on values (i.e. `{}` becomes `'[object Object]'` | ||||||
| var sessionStorage = new Storage(null, { strict: true }); |   , sessionStorage = new Storage(null, { strict: true }) | ||||||
| 
 | 
 | ||||||
| var myValue = { foo: 'bar', baz: 'quux' }; |   , myValue = { foo: 'bar', baz: 'quux' } | ||||||
|  |   ; | ||||||
| 
 | 
 | ||||||
| localStorage.setItem('myKey', myValue); | localStorage.setItem('myKey', myValue); | ||||||
| myValue = localStorage.getItem('myKey'); | myValue = localStorage.getItem('myKey'); | ||||||
| @ -57,15 +51,15 @@ Tests | |||||||
| 
 | 
 | ||||||
| ```javascript | ```javascript | ||||||
| 0 === localStorage.length; | 0 === localStorage.length; | ||||||
| null === localStorage.getItem('doesn\'t exist'); | null === localStorage.getItem('doesn't exist'); | ||||||
| undefined === localStorage['doesn\'t exist']; | undefined === localStorage['doesn't exist']; | ||||||
| 
 | 
 | ||||||
| localStorage.setItem('myItem'); | localStorage.setItem('myItem'); | ||||||
| 'undefined' === localStorage.getItem('myItem'); | "undefined" === localStorage.getItem('myItem'); | ||||||
| 1 === localStorage.length; | 1 === localStorage.length; | ||||||
| 
 | 
 | ||||||
| localStorage.setItem('myItem', 0); | localStorage.setItem('myItem', 0); | ||||||
| '0' === localStorage.getItem('myItem'); | "0" === localStorage.getItem('myItem'); | ||||||
| 
 | 
 | ||||||
| localStorage.removeItem('myItem', 0); | localStorage.removeItem('myItem', 0); | ||||||
| 0 === localStorage.length; | 0 === localStorage.length; | ||||||
| @ -80,14 +74,3 @@ Notes | |||||||
|   * db is read in synchronously |   * db is read in synchronously | ||||||
|   * No callback when db is saved |   * No callback when db is saved | ||||||
|   * Doesn't not emit `Storage` events (not sure how to do) |   * Doesn't not emit `Storage` events (not sure how to do) | ||||||
| 
 |  | ||||||
| License |  | ||||||
| ------- |  | ||||||
| 
 |  | ||||||
| Code copyright 2012-2018 AJ ONeal |  | ||||||
| 
 |  | ||||||
| Dual-licensed MIT and Apache-2.0 |  | ||||||
| 
 |  | ||||||
| Docs copyright 2012-2018 AJ ONeal |  | ||||||
| 
 |  | ||||||
| Docs released under Creative Commons. |  | ||||||
|  | |||||||
							
								
								
									
										17
									
								
								lib/index.js
									
									
									
									
									
								
							
							
						
						
									
										17
									
								
								lib/index.js
									
									
									
									
									
								
							| @ -8,11 +8,13 @@ | |||||||
| (function () { | (function () { | ||||||
|   "use strict"; |   "use strict"; | ||||||
| 
 | 
 | ||||||
|   var fs = require('fs'); |   var fs = require('fs') | ||||||
|  |     ; | ||||||
| 
 | 
 | ||||||
|   function Storage(path, opts) { |   function Storage(path, opts) { | ||||||
|     opts = opts || {}; |     opts = opts || {}; | ||||||
|     var db; |     var db | ||||||
|  |       ; | ||||||
| 
 | 
 | ||||||
|     Object.defineProperty(this, '___priv_bk___', { |     Object.defineProperty(this, '___priv_bk___', { | ||||||
|       value: { |       value: { | ||||||
| @ -86,14 +88,13 @@ | |||||||
|     return Object.keys(this)[i]; |     return Object.keys(this)[i]; | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|   Object.defineProperty(Storage.prototype, 'length', { |   Storage.prototype.__defineGetter__('length', function () { | ||||||
|     get: function() { |     return Object.keys(this).length; | ||||||
|       return Object.keys(this).length; |  | ||||||
|     } |  | ||||||
|   }); |   }); | ||||||
| 
 | 
 | ||||||
|   Storage.prototype.___save___ = function () { |   Storage.prototype.___save___ = function () { | ||||||
|     var self = this; |     var self = this | ||||||
|  |       ; | ||||||
| 
 | 
 | ||||||
|     if (!this.___priv_bk___.path) { |     if (!this.___priv_bk___.path) { | ||||||
|       return; |       return; | ||||||
| @ -112,8 +113,6 @@ | |||||||
|     , function (e) { |     , function (e) { | ||||||
|       self.___priv_bk___.lock = false; |       self.___priv_bk___.lock = false; | ||||||
|       if (e) { |       if (e) { | ||||||
|         console.error('Could not write to database', self.___priv_bk___.path); |  | ||||||
|         console.error(e); |  | ||||||
|         return; |         return; | ||||||
|       } |       } | ||||||
|       if (self.___priv_bk___.wait) { |       if (self.___priv_bk___.wait) { | ||||||
|  | |||||||
							
								
								
									
										10
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								package.json
									
									
									
									
									
								
							| @ -1,18 +1,16 @@ | |||||||
| { | { | ||||||
|   "author": "AJ ONeal <coolaj86@gmail.com> (https://coolaj86.com)", |   "author": "AJ ONeal <coolaj86@gmail.com> (http://coolaj86.info)", | ||||||
|   "homepage": "https://git.coolaj86.com/coolaj86/dom-storage.js", |  | ||||||
|   "name": "dom-storage", |   "name": "dom-storage", | ||||||
|   "description": "W3C DOM Storage (localStorage and sessionStorage) for node.js", |   "description": "W3C DOM Storage (localStorage and sessionStorage) for Node.JS", | ||||||
|   "version": "2.1.0", |   "version": "2.0.1", | ||||||
|   "repository": { |   "repository": { | ||||||
|     "type": "git", |     "type": "git", | ||||||
|     "url": "git://git.coolaj86.com/coolaj86/dom-storage.js.git" |     "url": "git://github.com/coolaj86/node-dom-storage.git" | ||||||
|   }, |   }, | ||||||
|   "engines": { |   "engines": { | ||||||
|     "node": "*" |     "node": "*" | ||||||
|   }, |   }, | ||||||
|   "main": "lib/index.js", |   "main": "lib/index.js", | ||||||
|   "dependencies": {}, |   "dependencies": {}, | ||||||
|   "license": "(MIT or Apache-2.0)", |  | ||||||
|   "devDependencies": {} |   "devDependencies": {} | ||||||
| } | } | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user