file-js
Version:
Abstract representation of a pathname
2,387 lines (521 loc) • 25.5 kB
HTML
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>File - Documentation</title>
<script src="scripts/prettify/prettify.js"></script>
<script src="scripts/prettify/lang-css.js"></script>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link type="text/css" rel="stylesheet" href="https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css">
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
</head>
<body>
<input type="checkbox" id="nav-trigger" class="nav-trigger" />
<label for="nav-trigger" class="navicon-button x">
<div class="navicon"></div>
</label>
<label for="nav-trigger" class="overlay"></label>
<nav>
<h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="File.html">File</a><ul class='methods'><li data-type='method'><a href="File.html#.create">create</a></li><li data-type='method'><a href="File.html#getAbsolutePath">getAbsolutePath</a></li><li data-type='method'><a href="File.html#getCanonicalPath">getCanonicalPath</a></li><li data-type='method'><a href="File.html#getDepthSync">getDepthSync</a></li><li data-type='method'><a href="File.html#getFiles">getFiles</a></li><li data-type='method'><a href="File.html#getFileSync">getFileSync</a></li><li data-type='method'><a href="File.html#getList">getList</a></li><li data-type='method'><a href="File.html#getListSync">getListSync</a></li><li data-type='method'><a href="File.html#getName">getName</a></li><li data-type='method'><a href="File.html#getPathExtension">getPathExtension</a></li><li data-type='method'><a href="File.html#isDirectory">isDirectory</a></li><li data-type='method'><a href="File.html#isDirectory">isDirectory</a></li><li data-type='method'><a href="File.html#isDirectory">isDirectory</a></li><li data-type='method'><a href="File.html#isDirectorySync">isDirectorySync</a></li><li data-type='method'><a href="File.html#isFileSync">isFileSync</a></li><li data-type='method'><a href="File.html#isHiddenSync">isHiddenSync</a></li><li data-type='method'><a href="File.html#isSocket">isSocket</a></li><li data-type='method'><a href="File.html#isSocketSync">isSocketSync</a></li><li data-type='method'><a href="File.html#rename">rename</a></li><li data-type='method'><a href="File.html#withLock">withLock</a></li></ul></li></ul>
</nav>
<div id="main">
<h1 class="page-title">File</h1>
<section>
<header>
<h2>
File
</h2>
</header>
<article>
<div class="container-overview">
<h4 class="name" id="File"><span class="type-signature"></span>new File<span class="signature">()</span><span class="type-signature"></span></h4>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="file.js.html">file.js</a>, <a href="file.js.html#line17">line 17</a>
</li></ul></dd>
</dl>
</div>
<h3 class="subsection-title">Methods</h3>
<h4 class="name" id=".create"><span class="type-signature">(static) </span>create<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
<p>Static factory method to create an instance of File</p>
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="file.js.html">file.js</a>, <a href="file.js.html#line542">line 542</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<p>File instance</p>
</div>
<h5>Example</h5>
<pre class="prettyprint"><code>import File from 'file-js';
const file = File.create();</code></pre>
<h4 class="name" id="getAbsolutePath"><span class="type-signature"></span>getAbsolutePath<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
<p>Returns the absolutePath</p>
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="file.js.html">file.js</a>, <a href="file.js.html#line418">line 418</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<p>String</p>
</div>
<h5>Example</h5>
<pre class="prettyprint"><code>import File from 'file-js';
const file = File.create('myFile');
console.log(file.getAbsolutePath());</code></pre>
<h4 class="name" id="getCanonicalPath"><span class="type-signature"></span>getCanonicalPath<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
<p>Returns the canonical path</p>
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="file.js.html">file.js</a>, <a href="file.js.html#line439">line 439</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<p>String</p>
</div>
<h5>Example</h5>
<pre class="prettyprint"><code>import File from 'file-js';
const file = File.create('myFile');
console.log(file.getCanonicalPath());</code></pre>
<h4 class="name" id="getDepthSync"><span class="type-signature"></span>getDepthSync<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
<p>Synchronously caculate the depth of a directory</p>
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="file.js.html">file.js</a>, <a href="file.js.html#line379">line 379</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<p>boolean</p>
</div>
<h5>Example</h5>
<pre class="prettyprint"><code>import File from 'file-js';
const file = File.create('myDirectory');
console.log(file.getDepthSync());</code></pre>
<h4 class="name" id="getFiles"><span class="type-signature"></span>getFiles<span class="signature">(glob<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h4>
<div class="description">
<p>Get list of file objects, if pathname is a directory</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Attributes</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>glob</code></td>
<td class="type">
<span class="param-type">string</span>
</td>
<td class="attributes">
<optional><br>
</td>
<td class="description last"><p>file glob</p></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="file.js.html">file.js</a>, <a href="file.js.html#line313">line 313</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<p>a promise. If the Promise fulfils, the fulfilment value is
a list of File objects</p>
</div>
<h5>Example</h5>
<pre class="prettyprint"><code>import File from 'file-js';
// get last modified time of all json files
const file = File.create('./myDirectory');
file.getFiles('*.json')
.then((jsonFiles) => {
console.log(jsonFiles.map(file => file.lastModifiedSync()));
});</code></pre>
<h4 class="name" id="getFileSync"><span class="type-signature"></span>getFileSync<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
<p>Synchronously get list of file objects, if pathname is a directory</p>
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="file.js.html">file.js</a>, <a href="file.js.html#line350">line 350</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<p>array of files</p>
</div>
<h5>Example</h5>
<pre class="prettyprint"><code>import File from 'file-js';
const file = File.create('./myHiddenFile');
const files = file.getFileSync();
console.log(files);</code></pre>
<h4 class="name" id="getList"><span class="type-signature"></span>getList<span class="signature">(glob<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h4>
<div class="description">
<p>Get list of file objects, if pathname is a directory</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Attributes</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>glob</code></td>
<td class="type">
<span class="param-type">string</span>
</td>
<td class="attributes">
<optional><br>
</td>
<td class="description last"><p>file glob</p></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="file.js.html">file.js</a>, <a href="file.js.html#line284">line 284</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<p>a promise. If the Promise fulfils, the fulfilment value is
a list of pathnames</p>
</div>
<h5>Example</h5>
<pre class="prettyprint"><code>import File from 'file-js';
// get all json files
const file = File.create('./myDirectory');
file.getFiles('*.json')
.then((jsonFiles) => {
console.log(jsonFiles);
});</code></pre>
<h4 class="name" id="getListSync"><span class="type-signature"></span>getListSync<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
<p>Synchronously get list of files, if pathname is a directory</p>
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="file.js.html">file.js</a>, <a href="file.js.html#line260">line 260</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<p>array of files</p>
</div>
<h5>Example</h5>
<pre class="prettyprint"><code>import File from 'file-js';
const file = File.create('./myHiddenFile');
const files = file.getListSync();
console.log(files);</code></pre>
<h4 class="name" id="getName"><span class="type-signature"></span>getName<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
<p>Returns the pathname as a string</p>
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="file.js.html">file.js</a>, <a href="file.js.html#line400">line 400</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<p>String</p>
</div>
<h5>Example</h5>
<pre class="prettyprint"><code>import File from 'file-js';
const file = File.create('myDirectory');
console.log(file.getName());</code></pre>
<h4 class="name" id="getPathExtension"><span class="type-signature"></span>getPathExtension<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
<p>Returns the file extension.</p>
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="file.js.html">file.js</a>, <a href="file.js.html#line457">line 457</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<p>String</p>
</div>
<h5>Example</h5>
<pre class="prettyprint"><code>import File from 'file-js';
const file = File.create('./tmp.sh');
console.log(file.getPathExtension()); // sh</code></pre>
<h4 class="name" id="isDirectory"><span class="type-signature"></span>isDirectory<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
<p>Determine if pathname is a file</p>
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="file.js.html">file.js</a>, <a href="file.js.html#line203">line 203</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<p>If the Promise fulfils, the fulfilment value is
a boolean indicating if the pathname is a file</p>
</div>
<h5>Example</h5>
<pre class="prettyprint"><code>import File from 'file-js';
const file = File.create('myDirectory');
file.isFile((isFile) => {
console.log(isFile);
});</code></pre>
<h4 class="name" id="isDirectory"><span class="type-signature"></span>isDirectory<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
<p>Determine if pathname is a directory</p>
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="file.js.html">file.js</a>, <a href="file.js.html#line115">line 115</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<p>If the Promise fulfils, the fulfilment value is
a boolean indicating if the pathname is a directory</p>
</div>
<h5>Example</h5>
<pre class="prettyprint"><code>import File from 'file-js';
const file = File.create('myDirectory');
file.isDirectory((isDirectory) => {
console.log(isDirectory);
});</code></pre>
<h4 class="name" id="isDirectory"><span class="type-signature"></span>isDirectory<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
<p>Determine if pathname is a file</p>
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="file.js.html">file.js</a>, <a href="file.js.html#line159">line 159</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<p>If the Promise fulfils, the fulfilment value is
a boolean indicating if the pathname is a file</p>
</div>
<h5>Example</h5>
<pre class="prettyprint"><code>import File from 'file-js';
const file = File.create('myDirectory');
file.isFile((isFile) => {
console.log(isFile);
});</code></pre>
<h4 class="name" id="isDirectorySync"><span class="type-signature"></span>isDirectorySync<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
<p>Synchronously determine if pathname is a directory</p>
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="file.js.html">file.js</a>, <a href="file.js.html#line55">line 55</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<p>boolean</p>
</div>
<h5>Example</h5>
<pre class="prettyprint"><code>import File from 'file-js';
const file = File.create('myDirectory');
if (file.isDirectorySync()) {
console.log('processing directory');
}</code></pre>
<h4 class="name" id="isFileSync"><span class="type-signature"></span>isFileSync<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
<p>Synchronously determine if pathname is a file</p>
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="file.js.html">file.js</a>, <a href="file.js.html#line95">line 95</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<p>boolean</p>
</div>
<h5>Example</h5>
<pre class="prettyprint"><code>import File from 'file-js';
const file = File.create('myDirectory');
if (file.isFileSync()) {
console.log('processing file');
}</code></pre>
<h4 class="name" id="isHiddenSync"><span class="type-signature"></span>isHiddenSync<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
<p>Synchronously determine if pathname is a hidden file</p>
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="file.js.html">file.js</a>, <a href="file.js.html#line180">line 180</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<p>boolean</p>
</div>
<h5>Example</h5>
<pre class="prettyprint"><code>import File from 'file-js';
const file = File.create('./myHiddenFile');
if (file.isHiddenSync()) {
console.log('processing hidden file');
}</code></pre>
<h4 class="name" id="isSocket"><span class="type-signature"></span>isSocket<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
<p>Determine if pathname is a Socket</p>
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="file.js.html">file.js</a>, <a href="file.js.html#line137">line 137</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<p>If the Promise fulfils, the fulfilment value is
a boolean indicating if the pathname is a Socket</p>
</div>
<h5>Example</h5>
<pre class="prettyprint"><code>import File from 'file-js';
const file = File.create('mySocket');
file.isSocket((isSocket) => {
console.log(isSocket);
});</code></pre>
<h4 class="name" id="isSocketSync"><span class="type-signature"></span>isSocketSync<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
<p>Synchronously determine if pathname is a socket</p>
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="file.js.html">file.js</a>, <a href="file.js.html#line75">line 75</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<p>boolean</p>
</div>
<h5>Example</h5>
<pre class="prettyprint"><code>import File from 'file-js';
const file = File.create('mysocket');
if (file.isSocketSync()) {
console.log('processing socket');
}</code></pre>
<h4 class="name" id="rename"><span class="type-signature"></span>rename<span class="signature">(pathname)</span><span class="type-signature"></span></h4>
<div class="description">
<p>Renames the abstract pathname</p>
</div>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>pathname</code></td>
<td class="type">
<span class="param-type">string</span>
|
<span class="param-type"><a href="File.html">File</a></span>
</td>
<td class="description last"><p>pathname either as a string or File instance</p></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="file.js.html">file.js</a>, <a href="file.js.html#line230">line 230</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<p>If the Promise fulfils, the fulfilment value is undefined</p>
</div>
<h5>Example</h5>
<pre class="prettyprint"><code>import File from 'file-js';
const original = File.create('fileA');
const renameTo = File.create('fileB');
original
.rename(renameTo)
.then(() => {
console.log(original.getName()) // prints fileA
});</code></pre>
<h4 class="name" id="withLock"><span class="type-signature"></span>withLock<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
<p>Locks the pathname</p>
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="file.js.html">file.js</a>, <a href="file.js.html#line514">line 514</a>
</li></ul></dd>
</dl>
<h5>Returns:</h5>
<div class="param-desc">
<p>returning value of function</p>
</div>
<h5>Example</h5>
<pre class="prettyprint"><code>import File from 'file-js';
const file = File.create('myFile');
file.with(() => {
if (file.isFileSync()) {
file.delete();
}
});</code></pre>
</article>
</section>
</div>
<br class="clear">
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.3</a> on Fri Mar 10 2017 16:38:57 GMT+0000 (GMT) using the Minami theme.
</footer>
<script>prettyPrint();</script>
<script src="scripts/linenumber.js"></script>
</body>
</html>