UNPKG

smb2c

Version:

SMB2 Client from marsaud-smb2 0.7.2

2 lines 2.65 kB
'use strict';var _regeneratorRuntime=require('babel-runtime/regenerator')['default'];var _interopRequireDefault=require('babel-runtime/helpers/interop-require-default')['default'];Object.defineProperty(exports,'__esModule',{value:true});var _toolsSmb2Forge=require('../tools/smb2-forge');var _bluebird=require('bluebird');var _bluebird2=_interopRequireDefault(_bluebird);var requestAsync=_bluebird2['default'].promisify(_toolsSmb2Forge.request);var ensureOneDir=function ensureOneDir(path,connection){var fileOrDir;return _regeneratorRuntime.async(function ensureOneDir$(context$1$0){while(1) switch(context$1$0.prev = context$1$0.next){case 0:context$1$0.prev = 0;context$1$0.next = 3;return _regeneratorRuntime.awrap(requestAsync('open',{path:path},connection));case 3:fileOrDir = context$1$0.sent;if(!(fileOrDir.FileAttributes.readIntBE(0,1) === 0x00000010)){context$1$0.next = 9;break;}context$1$0.next = 7;return _regeneratorRuntime.awrap(requestAsync('close',fileOrDir,connection));case 7:context$1$0.next = 10;break;case 9:throw new Error(path + ' exists but is not a directory');case 10:context$1$0.next = 27;break;case 12:context$1$0.prev = 12;context$1$0.t0 = context$1$0['catch'](0);if(!(context$1$0.t0.code === 'STATUS_OBJECT_NAME_NOT_FOUND')){context$1$0.next = 26;break;}context$1$0.prev = 15;context$1$0.next = 18;return _regeneratorRuntime.awrap(requestAsync('create_folder',{path:path},connection));case 18:context$1$0.next = 24;break;case 20:context$1$0.prev = 20;context$1$0.t1 = context$1$0['catch'](15);if(!(context$1$0.t1.code !== 'STATUS_OBJECT_NAME_COLLISION')){context$1$0.next = 24;break;}throw context$1$0.t1;case 24:context$1$0.next = 27;break;case 26:throw context$1$0.t0;case 27:case 'end':return context$1$0.stop();}},null,this,[[0,12],[15,20]]);};exports['default'] = function callee$0$0(path,cb){var structure,base,basePath;return _regeneratorRuntime.async(function callee$0$0$(context$1$0){while(1) switch(context$1$0.prev = context$1$0.next){case 0:structure = path.split('\\');base = [];context$1$0.prev = 2;case 3:if(!structure.length){context$1$0.next = 12;break;}base.push(structure.shift());basePath = base.join('\\');if(basePath.length){context$1$0.next = 8;break;}return context$1$0.abrupt('continue',3);case 8:context$1$0.next = 10;return _regeneratorRuntime.awrap(ensureOneDir(basePath,this));case 10:context$1$0.next = 3;break;case 12:cb(null);context$1$0.next = 18;break;case 15:context$1$0.prev = 15;context$1$0.t0 = context$1$0['catch'](2);cb(context$1$0.t0);case 18:case 'end':return context$1$0.stop();}},null,this,[[2,15]]);};module.exports = exports['default']; //# sourceMappingURL=ensureDir.js.map