mirror of
				https://github.com/Jermolene/TiddlyWiki5
				synced 2025-10-31 07:32:59 +00:00 
			
		
		
		
	Add saver for Hyperdrive protocol used in Beaker 1.x (#4777)
This commit is contained in:
		
							
								
								
									
										64
									
								
								core/modules/savers/hyperdrive.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										64
									
								
								core/modules/savers/hyperdrive.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,64 @@ | |||||||
|  | /*\ | ||||||
|  | title: $:/core/modules/savers/hyperdrive.js | ||||||
|  | type: application/javascript | ||||||
|  | module-type: saver | ||||||
|  |  | ||||||
|  | Saves files using the Hyperdrive Protocol (https://hypercore-protocol.org/#hyperdrive) Beaker browser beta-1.0 and later (https://beakerbrowser.com) | ||||||
|  | Compatible with beaker >= V1.0.0 | ||||||
|  |  | ||||||
|  | \*/ | ||||||
|  | (function(){ | ||||||
|  |  | ||||||
|  | /*jslint node: true, browser: true */ | ||||||
|  | /*global $tw: false */ | ||||||
|  | "use strict"; | ||||||
|  |  | ||||||
|  | /* | ||||||
|  | Set up the saver | ||||||
|  | */ | ||||||
|  | var HyperdriveSaver = function(wiki) { | ||||||
|  | 	this.wiki = wiki; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | HyperdriveSaver.prototype.save = function(text,method,callback) { | ||||||
|  | 	var dat = beaker.hyperdrive.drive("" + window.location), | ||||||
|  | 		pathname = ("" + window.location.pathname).split("#")[0]; | ||||||
|  | 	dat.stat(pathname).then(function(value) { | ||||||
|  | 		if(value.isDirectory()) { | ||||||
|  | 			pathname = pathname + "/index.html"; | ||||||
|  | 		} | ||||||
|  | 		dat.writeFile(pathname,text,"utf8").then(function(value) { | ||||||
|  | 			callback(null); | ||||||
|  | 		},function(reason) { | ||||||
|  | 			callback("Hyperdrive Saver Write Error: " + reason); | ||||||
|  | 		}); | ||||||
|  | 	},function(reason) { | ||||||
|  | 		callback("Hyperdrive Saver Stat Error: " + reason); | ||||||
|  | 	}); | ||||||
|  | 	return true; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | /* | ||||||
|  | Information about this saver | ||||||
|  | */ | ||||||
|  | HyperdriveSaver.prototype.info = { | ||||||
|  | 	name: "beaker-1.x", | ||||||
|  | 	priority: 3000, | ||||||
|  | 	capabilities: ["save", "autosave"] | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | /* | ||||||
|  | Static method that returns true if this saver is capable of working | ||||||
|  | */ | ||||||
|  | exports.canSave = function(wiki) { | ||||||
|  | 	return !!window.beaker && !!beaker.hyperdrive && location.protocol==="hyper:"; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | /* | ||||||
|  | Create an instance of this saver | ||||||
|  | */ | ||||||
|  | exports.create = function(wiki) { | ||||||
|  | 	return new HyperdriveSaver(wiki); | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | })(); | ||||||
		Reference in New Issue
	
	Block a user
	 John Duhamel
					John Duhamel