| 
									
										
										
										
											2016-04-02 23:03:18 +02:00
										 |  |  | "use strict"; | 
					
						
							| 
									
										
										
										
											2017-05-26 14:47:41 +02:00
										 |  |  | var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { | 
					
						
							|  |  |  |     return new (P || (P = Promise))(function (resolve, reject) { | 
					
						
							|  |  |  |         function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } | 
					
						
							|  |  |  |         function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } | 
					
						
							|  |  |  |         function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } | 
					
						
							|  |  |  |         step((generator = generator.apply(thisArg, _arguments || [])).next()); | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  | }; | 
					
						
							| 
									
										
										
										
											2017-03-04 21:10:46 +01:00
										 |  |  | Object.defineProperty(exports, "__esModule", { value: true }); | 
					
						
							| 
									
										
										
										
											2016-05-23 08:15:47 +02:00
										 |  |  | require("typings-global"); | 
					
						
							| 
									
										
										
										
											2016-07-17 17:34:15 +02:00
										 |  |  | const plugins = require("./smartfile.plugins"); | 
					
						
							| 
									
										
										
										
											2017-05-26 14:47:41 +02:00
										 |  |  | const smartfile_classes_smartfile_1 = require("./smartfile.classes.smartfile"); | 
					
						
							|  |  |  | const smartfileFs = require("./smartfile.fs"); | 
					
						
							| 
									
										
										
										
											2016-07-17 17:34:15 +02:00
										 |  |  | const SmartfileInterpreter = require("./smartfile.interpreter"); | 
					
						
							| 
									
										
										
										
											2016-04-07 23:38:24 +02:00
										 |  |  | /** | 
					
						
							| 
									
										
										
										
											2016-04-09 22:51:30 +02:00
										 |  |  |  * converts file to Object | 
					
						
							| 
									
										
										
										
											2016-04-07 23:38:24 +02:00
										 |  |  |  * @param fileStringArg | 
					
						
							|  |  |  |  * @param fileTypeArg | 
					
						
							|  |  |  |  * @returns {any|any} | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | exports.toObject = function (fileStringArg, fileTypeArg) { | 
					
						
							| 
									
										
										
										
											2016-06-23 18:31:55 +02:00
										 |  |  |     return SmartfileInterpreter.objectFile(fileStringArg, fileTypeArg); | 
					
						
							| 
									
										
										
										
											2016-04-07 23:38:24 +02:00
										 |  |  | }; | 
					
						
							| 
									
										
										
										
											2016-04-04 15:44:00 +02:00
										 |  |  | /** | 
					
						
							| 
									
										
										
										
											2017-08-02 13:10:30 +02:00
										 |  |  |  * writes string or Smartfile to disk. | 
					
						
							| 
									
										
										
										
											2016-04-04 15:44:00 +02:00
										 |  |  |  * @param fileArg | 
					
						
							|  |  |  |  * @param fileNameArg | 
					
						
							|  |  |  |  * @param fileBaseArg | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
										
										
											2017-05-26 14:47:41 +02:00
										 |  |  | exports.toFs = (fileContentArg, filePathArg, optionsArg = {}) => __awaiter(this, void 0, void 0, function* () { | 
					
						
							| 
									
										
										
										
											2016-09-17 23:11:44 +02:00
										 |  |  |     let done = plugins.q.defer(); | 
					
						
							| 
									
										
										
										
											2017-05-26 14:47:41 +02:00
										 |  |  |     // check args
 | 
					
						
							| 
									
										
										
										
											2016-09-20 17:56:49 +02:00
										 |  |  |     if (!fileContentArg || !filePathArg) { | 
					
						
							|  |  |  |         throw new Error('expected valid arguments'); | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2016-06-24 03:36:51 +02:00
										 |  |  |     // prepare actual write action
 | 
					
						
							| 
									
										
										
										
											2016-07-17 17:34:15 +02:00
										 |  |  |     let fileString; | 
					
						
							|  |  |  |     let filePath = filePathArg; | 
					
						
							| 
									
										
										
										
											2017-05-26 14:47:41 +02:00
										 |  |  |     // handle Smartfile
 | 
					
						
							|  |  |  |     if (fileContentArg instanceof smartfile_classes_smartfile_1.Smartfile) { | 
					
						
							| 
									
										
										
										
											2017-01-21 00:47:48 +01:00
										 |  |  |         let fileContentArg2 = fileContentArg; | 
					
						
							| 
									
										
										
										
											2017-05-26 14:47:41 +02:00
										 |  |  |         fileString = fileContentArg.contentBuffer.toString(); | 
					
						
							|  |  |  |         // handle options
 | 
					
						
							| 
									
										
										
										
											2017-05-27 02:05:31 +02:00
										 |  |  |         if (optionsArg.respectRelative) { | 
					
						
							|  |  |  |             filePath = plugins.path.join(filePath, fileContentArg.path); | 
					
						
							|  |  |  |         } | 
					
						
							| 
									
										
										
										
											2016-04-04 15:44:00 +02:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2016-09-20 17:56:49 +02:00
										 |  |  |     else if (typeof fileContentArg === 'string') { | 
					
						
							| 
									
										
										
										
											2016-06-24 03:36:51 +02:00
										 |  |  |         fileString = fileContentArg; | 
					
						
							| 
									
										
										
										
											2016-04-02 23:03:18 +02:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2017-05-26 14:47:41 +02:00
										 |  |  |     else { | 
					
						
							|  |  |  |         throw new Error('fileContent is neither string nor Smartfile'); | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2017-05-27 02:05:31 +02:00
										 |  |  |     yield smartfileFs.ensureDir(plugins.path.parse(filePath).dir); | 
					
						
							| 
									
										
										
										
											2017-07-30 22:53:54 +02:00
										 |  |  |     plugins.fsExtra.writeFile(filePath, fileString, { encoding: 'utf8' }, done.resolve); | 
					
						
							| 
									
										
										
										
											2017-05-26 14:47:41 +02:00
										 |  |  |     return yield done.promise; | 
					
						
							|  |  |  | }); | 
					
						
							|  |  |  | /** | 
					
						
							|  |  |  |  * writes a string or a Smartfile to disk synchronously, only supports string | 
					
						
							|  |  |  |  * @param fileArg | 
					
						
							|  |  |  |  * @param filePathArg | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
										
										
											2016-06-24 03:36:51 +02:00
										 |  |  | exports.toFsSync = function (fileArg, filePathArg) { | 
					
						
							| 
									
										
										
										
											2016-09-20 17:56:49 +02:00
										 |  |  |     // function checks to abort if needed
 | 
					
						
							|  |  |  |     if (!fileArg || !filePathArg) { | 
					
						
							|  |  |  |         throw new Error('expected a valid arguments'); | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2016-06-24 03:36:51 +02:00
										 |  |  |     // prepare actual write action
 | 
					
						
							| 
									
										
										
										
											2016-07-17 17:34:15 +02:00
										 |  |  |     let fileString; | 
					
						
							|  |  |  |     let filePath = filePathArg; | 
					
						
							| 
									
										
										
										
											2017-01-01 02:45:53 +01:00
										 |  |  |     if (typeof fileArg !== 'string') { | 
					
						
							| 
									
										
										
										
											2017-05-26 14:47:41 +02:00
										 |  |  |         throw new Error('fileArg is not of type String.'); | 
					
						
							| 
									
										
										
										
											2016-04-04 15:44:00 +02:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2016-09-20 17:56:49 +02:00
										 |  |  |     else if (typeof fileArg === 'string') { | 
					
						
							| 
									
										
										
										
											2016-04-04 15:44:00 +02:00
										 |  |  |         fileString = fileArg; | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2017-07-30 22:53:54 +02:00
										 |  |  |     plugins.fsExtra.writeFileSync(filePath, fileString, { encoding: 'utf8' }); | 
					
						
							| 
									
										
										
										
											2016-04-02 23:03:18 +02:00
										 |  |  | }; | 
					
						
							| 
									
										
										
										
											2017-05-26 14:47:41 +02:00
										 |  |  | exports.smartfileArrayToFs = (smartfileArrayArg, dirArg) => __awaiter(this, void 0, void 0, function* () { | 
					
						
							|  |  |  |     yield smartfileFs.ensureDir(dirArg); | 
					
						
							|  |  |  |     for (let smartfile of smartfileArrayArg) { | 
					
						
							|  |  |  |         yield exports.toFs(smartfile, dirArg, { | 
					
						
							|  |  |  |             respectRelative: true | 
					
						
							|  |  |  |         }); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | }); | 
					
						
							| 
									
										
										
										
											2017-07-30 22:53:54 +02:00
										 |  |  | //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRmaWxlLm1lbW9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0ZmlsZS5tZW1vcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBLDBCQUF1QjtBQUV2QiwrQ0FBK0M7QUFDL0MsK0VBQXlEO0FBQ3pELDhDQUE2QztBQUc3QyxnRUFBZ0U7QUFFaEU7Ozs7O0dBS0c7QUFDUSxRQUFBLFFBQVEsR0FBRyxVQUFVLGFBQXFCLEVBQUUsV0FBbUI7SUFDeEUsTUFBTSxDQUFDLG9CQUFvQixDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsV0FBVyxDQUFDLENBQUE7QUFDcEUsQ0FBQyxDQUFBO0FBTUQ7Ozs7O0dBS0c7QUFDUSxRQUFBLElBQUksR0FBRyxDQUFPLGNBQWtDLEVBQUUsV0FBVyxFQUFFLGFBQTJCLEVBQUU7SUFDckcsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQTtJQUU1QixhQUFhO0lBQ2IsRUFBRSxDQUFDLENBQUMsQ0FBQyxjQUFjLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQ3BDLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQTtJQUM3QyxDQUFDO0lBRUQsOEJBQThCO0lBQzlCLElBQUksVUFBa0IsQ0FBQTtJQUN0QixJQUFJLFFBQVEsR0FBVyxXQUFXLENBQUE7SUFFbEMsbUJBQW1CO0lBQ25CLEVBQUUsQ0FBQyxDQUFDLGNBQWMsWUFBWSx1Q0FBUyxDQUFDLENBQUMsQ0FBQztRQUN4QyxJQUFJLGVBQWUsR0FBUSxjQUFjLENBQUE7UUFDekMsVUFBVSxHQUFHLGNBQWMsQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUE7UUFDcEQsaUJBQWlCO1FBQ2pCLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO1lBQy9CLFFBQVEsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQzdELENBQUM7SUFDSCxDQUFDO0lBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sY0FBYyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDOUMsVUFBVSxHQUFHLGNBQWMsQ0FBQTtJQUM3QixDQUFDO0lBQUMsSUFBSSxDQUFDLENBQUM7UUFDTixNQUFNLElBQUksS0FBSyxDQUFDLDZDQUE2QyxDQUFDLENBQUE7SUFDaEUsQ0FBQztJQUNELE1BQU0sV0FBVyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUM3RCxPQUFPLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLEVBQUMsUUFBUSxFQUFFLE1BQU0sRUFBQyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUNqRixNQUFNLENBQUMsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFBO0FBQzNCLENBQUMsQ0FBQSxDQUFBO0FBRUQ7Ozs7R0FJRztBQUNRLFFBQUEsUUFBUSxHQUFHLFVBQVUsT0FBZSxFQUFFLFdBQW1CO0lBQ2xFLHFDQUFxQztJQUNyQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7UUFDN0IsTUFBTSxJQUFJLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxDQUFBO0lBQy9DLENBQUM7SUFFRCw4QkFBOEI7SUFDOUIsSUFBSSxVQUFrQixDQUFBO0lBQ3RCLElBQUksUUFBUSxHQUFXLFdBQVcsQ0FBQTtJQUVsQyxFQUFFLENBQUMsQ0FBQyxPQUFPLE9BQU8sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ2hDLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0NBQWdDLENBQUMsQ0FBQTtJQUNuRCxDQUFDO0lBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sT0FBTyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDdkMsVUFBVSxHQUFHLE9BQU8sQ0FBQTtJQUN0QixDQUFDO0lBQ0QsT0FBTyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxFQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUMsQ0FBQyxDQUFBO0FBQ3pFLENBQUMsQ0FBQTtBQUVVLFFBQUEsa0JBQWtCLEdBQUcsQ0FBTyxpQkFBOEIsRUFBRSxNQUFjO0lBQ25GLE1BQU0sV0FBVyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUNuQyxHQUFHLENBQUMsQ0FBQyxJQUFJLFNBQVMsSUFBSSxpQkFBaUIsQ0FBQyxDQUFDLENBQUM7UUFDeEMsTUFBTSxZQUFJLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRTtZQUM1QixlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUE7SUFDSixDQUFDO0FBQ0gsQ0FBQyxDQUFBLENBQUEifQ==
 |