UNPKG

file-prompt

Version:

An interactive prompt for selecting files from a directory.

1 lines 3.09 kB
"use strict";function _interopRequireDefault(e){return e&&e.__esModule?e:{"default":e}}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function _inherits(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function range(e,t){for(var r=t-e,n=Array(r),a=0;r>=a;a+=1,e+=1)n[a]=e;return n}var _createClass=function(){function e(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,r,n){return r&&e(t.prototype,r),n&&e(t,n),t}}();Object.defineProperty(exports,"__esModule",{value:!0});var _base_transform=require("./base_transform"),_base_transform2=_interopRequireDefault(_base_transform),_path=require("path"),_path2=_interopRequireDefault(_path),MenuTransform=function(e){function t(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];_classCallCheck(this,t);var r=_possibleConstructorReturn(this,Object.getPrototypeOf(t).call(this,e));return r.name="menu",r.filters={creator:"queries",type:"query"},r.menu=null,e.menu&&(r.menu=e.menu),r}return _inherits(t,e),_createClass(t,[{key:"getParams",value:function(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],t=e.canUnselect;return t="undefined"==typeof t?!0:t,{canUnselect:t}}},{key:"getChoiceIds",value:function(){return this.menu.ids().slice()}},{key:"isSelectOnly",value:function(e){return"unselect"===e&&!this.params.canUnselect}},{key:"isValid",value:function(){var e=arguments.length<=0||void 0===arguments[0]?[]:arguments[0],t=Array.isArray(e)&&e.every(this.menu.hasId,this.menu);return t&&e&&e.length>0}},{key:"select",value:function(e,t){var r=[],n=e.data;if(this.isSelectOnly(e.action))return[];switch(Object.assign(t,{canUnselect:this.params.canUnselect}),n.type){case"all":if(t.maxQueries>0)return[];r=this.getChoiceIds();break;case"range":if(t.maxQueries>0)return[];if(!n.value.min||!n.value.max)return[];if(n.value.min>n.value.max)return[];r=range(n.value.min,n.value.max);break;case"id":if(!e.isInteger())return[];r=[n.value],n.type="single";break;case"string":r=this.menu.getIdByName(e.toString()),n.type="single"}return r}},{key:"transform",value:function(e){var t=this,r=e.data,n=e.params,a=this.select(r,n);return this.isValid(a)?void a.map(function(e){return t.menu.getChoiceById(e).value}).map(function(e){var t=e.slice(0,1)===_path2["default"].sep;return{type:t?"file":"page",data:{operation:r.data.action,value:e,type:r.data.type},params:n}}).forEach(this.pushAction,this):void this.matchError(r)}}]),t}(_base_transform2["default"]);exports["default"]=MenuTransform;