First upload version 0.0.1
This commit is contained in:
1
node_modules/@kwsites/file-exists/dist/index.d.ts
generated
vendored
Normal file
1
node_modules/@kwsites/file-exists/dist/index.d.ts
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
export * from './src';
|
||||
7
node_modules/@kwsites/file-exists/dist/index.js
generated
vendored
Normal file
7
node_modules/@kwsites/file-exists/dist/index.js
generated
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
"use strict";
|
||||
function __export(m) {
|
||||
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
|
||||
}
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
__export(require("./src"));
|
||||
//# sourceMappingURL=index.js.map
|
||||
1
node_modules/@kwsites/file-exists/dist/index.js.map
generated
vendored
Normal file
1
node_modules/@kwsites/file-exists/dist/index.js.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;;AACA,2BAAsB"}
|
||||
19
node_modules/@kwsites/file-exists/dist/src/index.d.ts
generated
vendored
Normal file
19
node_modules/@kwsites/file-exists/dist/src/index.d.ts
generated
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
/**
|
||||
* Synchronous validation of a path existing either as a file or as a directory.
|
||||
*
|
||||
* @param {string} path The path to check
|
||||
* @param {number} type One or both of the exported numeric constants
|
||||
*/
|
||||
export declare function exists(path: string, type?: number): boolean;
|
||||
/**
|
||||
* Constant representing a file
|
||||
*/
|
||||
export declare const FILE = 1;
|
||||
/**
|
||||
* Constant representing a folder
|
||||
*/
|
||||
export declare const FOLDER = 2;
|
||||
/**
|
||||
* Constant representing either a file or a folder
|
||||
*/
|
||||
export declare const READABLE: number;
|
||||
55
node_modules/@kwsites/file-exists/dist/src/index.js
generated
vendored
Normal file
55
node_modules/@kwsites/file-exists/dist/src/index.js
generated
vendored
Normal file
@@ -0,0 +1,55 @@
|
||||
"use strict";
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const fs_1 = require("fs");
|
||||
const debug_1 = __importDefault(require("debug"));
|
||||
const log = debug_1.default('@kwsites/file-exists');
|
||||
function check(path, isFile, isDirectory) {
|
||||
log(`checking %s`, path);
|
||||
try {
|
||||
const stat = fs_1.statSync(path);
|
||||
if (stat.isFile() && isFile) {
|
||||
log(`[OK] path represents a file`);
|
||||
return true;
|
||||
}
|
||||
if (stat.isDirectory() && isDirectory) {
|
||||
log(`[OK] path represents a directory`);
|
||||
return true;
|
||||
}
|
||||
log(`[FAIL] path represents something other than a file or directory`);
|
||||
return false;
|
||||
}
|
||||
catch (e) {
|
||||
if (e.code === 'ENOENT') {
|
||||
log(`[FAIL] path is not accessible: %o`, e);
|
||||
return false;
|
||||
}
|
||||
log(`[FATAL] %o`, e);
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Synchronous validation of a path existing either as a file or as a directory.
|
||||
*
|
||||
* @param {string} path The path to check
|
||||
* @param {number} type One or both of the exported numeric constants
|
||||
*/
|
||||
function exists(path, type = exports.READABLE) {
|
||||
return check(path, (type & exports.FILE) > 0, (type & exports.FOLDER) > 0);
|
||||
}
|
||||
exports.exists = exists;
|
||||
/**
|
||||
* Constant representing a file
|
||||
*/
|
||||
exports.FILE = 1;
|
||||
/**
|
||||
* Constant representing a folder
|
||||
*/
|
||||
exports.FOLDER = 2;
|
||||
/**
|
||||
* Constant representing either a file or a folder
|
||||
*/
|
||||
exports.READABLE = exports.FILE + exports.FOLDER;
|
||||
//# sourceMappingURL=index.js.map
|
||||
1
node_modules/@kwsites/file-exists/dist/src/index.js.map
generated
vendored
Normal file
1
node_modules/@kwsites/file-exists/dist/src/index.js.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;AAAA,2BAA8B;AAC9B,kDAA0B;AAE1B,MAAM,GAAG,GAAG,eAAK,CAAC,sBAAsB,CAAC,CAAC;AAE1C,SAAS,KAAK,CAAC,IAAY,EAAE,MAAe,EAAE,WAAoB;IAC/D,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;IAEzB,IAAI;QACD,MAAM,IAAI,GAAG,aAAQ,CAAC,IAAI,CAAC,CAAC;QAE5B,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI,MAAM,EAAE;YAC1B,GAAG,CAAC,6BAA6B,CAAC,CAAC;YACnC,OAAO,IAAI,CAAC;SACd;QAED,IAAI,IAAI,CAAC,WAAW,EAAE,IAAI,WAAW,EAAE;YACpC,GAAG,CAAC,kCAAkC,CAAC,CAAC;YACxC,OAAO,IAAI,CAAC;SACd;QAED,GAAG,CAAC,iEAAiE,CAAC,CAAC;QACvE,OAAO,KAAK,CAAC;KACf;IAAC,OAAO,CAAC,EAAE;QACT,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE;YACtB,GAAG,CAAC,mCAAmC,EAAE,CAAC,CAAC,CAAC;YAC5C,OAAO,KAAK,CAAC;SACf;QAED,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;QACrB,MAAM,CAAC,CAAC;KACV;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAgB,MAAM,CAAC,IAAY,EAAE,OAAe,gBAAQ;IACzD,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,GAAG,YAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,GAAG,cAAM,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9D,CAAC;AAFD,wBAEC;AAED;;GAEG;AACU,QAAA,IAAI,GAAG,CAAC,CAAC;AAEtB;;GAEG;AACU,QAAA,MAAM,GAAG,CAAC,CAAC;AAExB;;GAEG;AACU,QAAA,QAAQ,GAAG,YAAI,GAAG,cAAM,CAAC"}
|
||||
7
node_modules/@kwsites/file-exists/dist/test/__mocks__/fs.d.ts
generated
vendored
Normal file
7
node_modules/@kwsites/file-exists/dist/test/__mocks__/fs.d.ts
generated
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
export declare function statSync(...args: any[]): any;
|
||||
export declare function addStatSyncMock(fn: any): void;
|
||||
export declare function assertMocksUsed(): void;
|
||||
declare const mockFs: {
|
||||
statSync: typeof statSync;
|
||||
};
|
||||
export default mockFs;
|
||||
26
node_modules/@kwsites/file-exists/dist/test/__mocks__/fs.js
generated
vendored
Normal file
26
node_modules/@kwsites/file-exists/dist/test/__mocks__/fs.js
generated
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
let statSyncMocks = [];
|
||||
function statSync(...args) {
|
||||
const mock = statSyncMocks.shift();
|
||||
if (typeof mock !== 'function') {
|
||||
throw new Error(`fs.statSync called without configuring a mock`);
|
||||
}
|
||||
return mock(...args);
|
||||
}
|
||||
exports.statSync = statSync;
|
||||
function addStatSyncMock(fn) {
|
||||
statSyncMocks.push(fn);
|
||||
}
|
||||
exports.addStatSyncMock = addStatSyncMock;
|
||||
function assertMocksUsed() {
|
||||
if (statSyncMocks.length) {
|
||||
throw new Error(`fs.afterEach: statSync has ${statSyncMocks.length} unused mocks`);
|
||||
}
|
||||
}
|
||||
exports.assertMocksUsed = assertMocksUsed;
|
||||
const mockFs = {
|
||||
statSync,
|
||||
};
|
||||
exports.default = mockFs;
|
||||
//# sourceMappingURL=fs.js.map
|
||||
1
node_modules/@kwsites/file-exists/dist/test/__mocks__/fs.js.map
generated
vendored
Normal file
1
node_modules/@kwsites/file-exists/dist/test/__mocks__/fs.js.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"fs.js","sourceRoot":"","sources":["../../../test/__mocks__/fs.ts"],"names":[],"mappings":";;AACA,IAAI,aAAa,GAAU,EAAE,CAAC;AAE9B,SAAgB,QAAQ,CAAC,GAAG,IAAW;IACpC,MAAO,IAAI,GAAG,aAAa,CAAC,KAAK,EAAE,CAAC;IACpC,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE;QAC7B,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;KACnE;IAED,OAAO,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AACxB,CAAC;AAPD,4BAOC;AAED,SAAgB,eAAe,CAAC,EAAO;IACpC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC1B,CAAC;AAFD,0CAEC;AAED,SAAgB,eAAe;IAC5B,IAAI,aAAa,CAAC,MAAM,EAAE;QACvB,MAAM,IAAI,KAAK,CAAC,8BAA8B,aAAa,CAAC,MAAM,eAAe,CAAC,CAAC;KACrF;AACJ,CAAC;AAJD,0CAIC;AAED,MAAM,MAAM,GAAG;IACZ,QAAQ;CACV,CAAA;AAED,kBAAe,MAAM,CAAC"}
|
||||
1
node_modules/@kwsites/file-exists/dist/test/exists.spec.d.ts
generated
vendored
Normal file
1
node_modules/@kwsites/file-exists/dist/test/exists.spec.d.ts
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
export {};
|
||||
77
node_modules/@kwsites/file-exists/dist/test/exists.spec.js
generated
vendored
Normal file
77
node_modules/@kwsites/file-exists/dist/test/exists.spec.js
generated
vendored
Normal file
@@ -0,0 +1,77 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
jest.mock('fs');
|
||||
//@ts-ignore
|
||||
const fs_1 = require("fs");
|
||||
const src_1 = require("../src");
|
||||
describe(`exists`, () => {
|
||||
let statSync;
|
||||
let statSyncMock;
|
||||
let path;
|
||||
beforeEach(() => {
|
||||
path = `./path/${Math.random()}`;
|
||||
fs_1.addStatSyncMock(statSyncMock = jest.fn(() => statSync()));
|
||||
});
|
||||
afterEach(() => {
|
||||
fs_1.assertMocksUsed();
|
||||
statSync = statSyncMock = undefined;
|
||||
});
|
||||
describe('known errors', () => {
|
||||
beforeEach(() => givenStatSyncThrows({ code: 'ENOENT' }));
|
||||
it('with type', () => {
|
||||
expect(src_1.exists(path, src_1.READABLE)).toBe(false);
|
||||
});
|
||||
it('with type omitted', () => {
|
||||
expect(src_1.exists(path)).toBe(false);
|
||||
});
|
||||
});
|
||||
describe('unknown errors', () => {
|
||||
let err;
|
||||
beforeEach(() => err = givenStatSyncThrows(new Error('something')));
|
||||
it('with type', () => {
|
||||
expect(() => src_1.exists(path, src_1.READABLE)).toThrow(err);
|
||||
});
|
||||
it('with type omitted', () => {
|
||||
expect(() => src_1.exists(path)).toThrow(err);
|
||||
});
|
||||
});
|
||||
describe('path is a file', () => {
|
||||
beforeEach(() => givenStatSyncIsA('file'));
|
||||
existsReturns(true, false, true);
|
||||
});
|
||||
describe('path is a folder', () => {
|
||||
beforeEach(() => givenStatSyncIsA('folder'));
|
||||
existsReturns(false, true, true);
|
||||
});
|
||||
describe('path is unknown', () => {
|
||||
beforeEach(() => givenStatSyncIsA('unknown'));
|
||||
existsReturns(false, false, false);
|
||||
});
|
||||
function existsReturns(file, folder, readable) {
|
||||
it('when searching for a file', () => {
|
||||
expect(src_1.exists(path, src_1.FILE)).toBe(file);
|
||||
});
|
||||
it('when searching for a folder', () => {
|
||||
expect(src_1.exists(path, src_1.FOLDER)).toBe(folder);
|
||||
});
|
||||
it('when searching for either', () => {
|
||||
expect(src_1.exists(path, src_1.READABLE)).toBe(readable);
|
||||
});
|
||||
it('when searching without a type', () => {
|
||||
expect(src_1.exists(path)).toBe(readable);
|
||||
});
|
||||
}
|
||||
function givenStatSyncThrows(err) {
|
||||
statSync = () => { throw err; };
|
||||
return err;
|
||||
}
|
||||
function givenStatSyncIsA(type) {
|
||||
const mockStat = {
|
||||
isFile() { return type === 'file'; },
|
||||
isDirectory() { return type === 'folder'; },
|
||||
};
|
||||
statSync = () => mockStat;
|
||||
return mockStat;
|
||||
}
|
||||
});
|
||||
//# sourceMappingURL=exists.spec.js.map
|
||||
1
node_modules/@kwsites/file-exists/dist/test/exists.spec.js.map
generated
vendored
Normal file
1
node_modules/@kwsites/file-exists/dist/test/exists.spec.js.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"exists.spec.js","sourceRoot":"","sources":["../../test/exists.spec.ts"],"names":[],"mappings":"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"}
|
||||
Reference in New Issue
Block a user