72bf4547d4
* Clean up workbench and integrate initialization data * Uncomment Electron fill * Run server & client together * Clean up Electron fill & patch * Bind fs methods This makes them usable with the promise form: `promisify(access)(...)`. * Add space between tag and title to browser logger * Add typescript dep to server and default __dirname for path * Serve web files from server * Adjust some dev options * Rework workbench a bit to use a class and catch unexpected errors * No mkdirs for now, fix util fill, use bash with exec * More fills, make general client abstract * More fills * Fix cp.exec * Fix require calls in fs fill being aliased * Create data and storage dir * Implement fs.watch Using exec for now. * Implement storage database fill * Fix os export and homedir * Add comment to use navigator.sendBeacon * Fix fs callbacks (some args are optional) * Make sure data directory exists when passing it back * Update patch * Target es5 * More fills * Add APIs required for bootstrap-fork to function (#15) * Add bootstrap-fork execution * Add createConnection * Bundle bootstrap-fork into cli * Remove .node directory created from spdlog * Fix npm start * Remove unnecessary comment * Add webpack-hot-middleware if CLI env is not set * Add restarting to shared process * Fix starting with yarn
35 lines
1.1 KiB
TypeScript
35 lines
1.1 KiB
TypeScript
/**
|
|
* Return true if we're in a browser environment (including web workers).
|
|
*/
|
|
export const isBrowserEnvironment = (): boolean => {
|
|
return typeof process === "undefined" || typeof process.stdout === "undefined";
|
|
};
|
|
|
|
/**
|
|
* Escape a path. This prevents any issues with file names that have quotes,
|
|
* spaces, braces, etc.
|
|
*/
|
|
export const escapePath = (path: string): string => {
|
|
return `'${path.replace(/'/g, "'\\''")}'`;
|
|
};
|
|
|
|
export type IEncodingOptions = {
|
|
encoding?: string | null;
|
|
flag?: string;
|
|
mode?: string;
|
|
persistent?: boolean;
|
|
recursive?: boolean;
|
|
} | string | undefined | null;
|
|
|
|
// tslint:disable-next-line no-any
|
|
export type IEncodingOptionsCallback = IEncodingOptions | ((err: NodeJS.ErrnoException, ...args: any[]) => void);
|
|
|
|
/**
|
|
* Return true if the options specify to use a Buffer instead of string.
|
|
*/
|
|
export const useBuffer = (options: IEncodingOptionsCallback): boolean => {
|
|
return options === "buffer"
|
|
|| (!!options && typeof options !== "string" && typeof options !== "function"
|
|
&& (options.encoding === "buffer" || options.encoding === null));
|
|
};
|