push all website files

This commit is contained in:
Jacob Levine
2019-01-06 13:14:45 -06:00
parent d7301e26c3
commit d2d5d4c04e
15662 changed files with 2166516 additions and 0 deletions

View File

@@ -0,0 +1,11 @@
/// <reference types="node" />
import * as fs from 'fs';
export interface FileSystemAdapter {
lstat: typeof fs.lstat;
stat: typeof fs.stat;
lstatSync: typeof fs.lstatSync;
statSync: typeof fs.statSync;
}
export declare const FILE_SYSTEM_ADAPTER: FileSystemAdapter;
export declare function getFileSystemAdapter(fsMethods?: Partial<FileSystemAdapter>): FileSystemAdapter;
//# sourceMappingURL=fs.d.ts.map

View File

@@ -0,0 +1,16 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const fs = require("fs");
exports.FILE_SYSTEM_ADAPTER = {
lstat: fs.lstat,
stat: fs.stat,
lstatSync: fs.lstatSync,
statSync: fs.statSync
};
function getFileSystemAdapter(fsMethods) {
if (!fsMethods) {
return exports.FILE_SYSTEM_ADAPTER;
}
return Object.assign({}, exports.FILE_SYSTEM_ADAPTER, fsMethods);
}
exports.getFileSystemAdapter = getFileSystemAdapter;

View File

@@ -0,0 +1,22 @@
/// <reference types="node" />
import * as fs from 'fs';
import { FileSystemAdapter } from './adapters/fs';
import { Options } from './managers/options';
import { AsyncCallback } from './providers/stat';
/**
* Asynchronous API.
*/
export declare function stat(path: fs.PathLike, opts?: Options): Promise<fs.Stats>;
/**
* Callback API.
*/
export declare function statCallback(path: fs.PathLike, callback: AsyncCallback): void;
export declare function statCallback(path: fs.PathLike, opts: Options, callback: AsyncCallback): void;
/**
* Synchronous API.
*/
export declare function statSync(path: fs.PathLike, opts?: Options): fs.Stats;
export declare type Options = Options;
export declare type StatAsyncCallback = AsyncCallback;
export declare type FileSystemAdapter = FileSystemAdapter;
//# sourceMappingURL=index.d.ts.map

View File

@@ -0,0 +1,31 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const optionsManager = require("./managers/options");
const statProvider = require("./providers/stat");
/**
* Asynchronous API.
*/
function stat(path, opts) {
return new Promise((resolve, reject) => {
statProvider.async(path, optionsManager.prepare(opts), (err, stats) => err ? reject(err) : resolve(stats));
});
}
exports.stat = stat;
function statCallback(path, optsOrCallback, callback) {
if (typeof optsOrCallback === 'function') {
callback = optsOrCallback; /* tslint:disable-line: no-parameter-reassignment */
optsOrCallback = undefined; /* tslint:disable-line: no-parameter-reassignment */
}
if (typeof callback === 'undefined') {
throw new TypeError('The "callback" argument must be of type Function.');
}
statProvider.async(path, optionsManager.prepare(optsOrCallback), callback);
}
exports.statCallback = statCallback;
/**
* Synchronous API.
*/
function statSync(path, opts) {
return statProvider.sync(path, optionsManager.prepare(opts));
}
exports.statSync = statSync;

View File

@@ -0,0 +1,11 @@
import { FileSystemAdapter } from '../adapters/fs';
export interface Options {
fs?: Partial<FileSystemAdapter>;
throwErrorOnBrokenSymlinks?: boolean;
followSymlinks?: boolean;
}
export declare type StrictOptions = {
fs: FileSystemAdapter;
} & Required<Options>;
export declare function prepare(opts?: Options): StrictOptions;
//# sourceMappingURL=options.d.ts.map

View File

@@ -0,0 +1,12 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const fsAdapter = require("../adapters/fs");
function prepare(opts) {
const options = Object.assign({
fs: fsAdapter.getFileSystemAdapter(opts ? opts.fs : undefined),
throwErrorOnBrokenSymlinks: true,
followSymlinks: true
}, opts);
return options;
}
exports.prepare = prepare;

View File

@@ -0,0 +1,11 @@
/// <reference types="node" />
import * as fs from 'fs';
import { StrictOptions } from '../managers/options';
export declare function sync(path: fs.PathLike, options: StrictOptions): fs.Stats;
export declare type AsyncCallback = (err: NodeJS.ErrnoException | null, stats?: fs.Stats) => void;
export declare function async(path: fs.PathLike, options: StrictOptions, callback: AsyncCallback): void;
/**
* Returns `true` for followed symlink.
*/
export declare function isFollowedSymlink(stat: fs.Stats, options: StrictOptions): boolean;
//# sourceMappingURL=stat.d.ts.map

View File

@@ -0,0 +1,45 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
function sync(path, options) {
const lstat = options.fs.lstatSync(path);
if (!isFollowedSymlink(lstat, options)) {
return lstat;
}
try {
const stat = options.fs.statSync(path);
stat.isSymbolicLink = () => true;
return stat;
}
catch (err) {
if (!options.throwErrorOnBrokenSymlinks) {
return lstat;
}
throw err;
}
}
exports.sync = sync;
function async(path, options, callback) {
options.fs.lstat(path, (err0, lstat) => {
if (err0) {
return callback(err0, undefined);
}
if (!isFollowedSymlink(lstat, options)) {
return callback(null, lstat);
}
options.fs.stat(path, (err1, stat) => {
if (err1) {
return options.throwErrorOnBrokenSymlinks ? callback(err1) : callback(null, lstat);
}
stat.isSymbolicLink = () => true;
callback(null, stat);
});
});
}
exports.async = async;
/**
* Returns `true` for followed symlink.
*/
function isFollowedSymlink(stat, options) {
return stat.isSymbolicLink() && options.followSymlinks;
}
exports.isFollowedSymlink = isFollowedSymlink;