Add .gitignore to exclude all node packages and lock files
This commit is contained in:
Generated
Vendored
+42
@@ -0,0 +1,42 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.autoSelectWriter = void 0;
|
||||
const web_fs_1 = require("./writers/web-fs");
|
||||
const with_resolvers_1 = require("./create/with-resolvers");
|
||||
const log_1 = require("./log");
|
||||
const buffer_1 = require("./writers/buffer");
|
||||
const autoSelectWriter = async (writer, logLevel) => {
|
||||
if (writer) {
|
||||
log_1.Log.verbose(logLevel, 'Using writer provided by user');
|
||||
return writer;
|
||||
}
|
||||
log_1.Log.verbose(logLevel, 'Determining best writer');
|
||||
const hasNavigator = typeof navigator !== 'undefined';
|
||||
if (!hasNavigator) {
|
||||
log_1.Log.verbose(logLevel, 'No navigator API detected, using buffer writer');
|
||||
return buffer_1.bufferWriter;
|
||||
}
|
||||
// Check if we're offline using the navigator API
|
||||
const isOffline = !navigator.onLine;
|
||||
if (isOffline) {
|
||||
log_1.Log.verbose(logLevel, 'Offline mode detected, using buffer writer');
|
||||
return buffer_1.bufferWriter;
|
||||
}
|
||||
try {
|
||||
const { promise: timeout, reject, resolve } = (0, with_resolvers_1.withResolvers)();
|
||||
const time = setTimeout(() => reject(new Error('WebFS check timeout')), 2000);
|
||||
const webFsSupported = await Promise.race([(0, web_fs_1.canUseWebFsWriter)(), timeout]);
|
||||
resolve();
|
||||
clearTimeout(time);
|
||||
if (webFsSupported) {
|
||||
log_1.Log.verbose(logLevel, 'Using WebFS writer because it is supported');
|
||||
return web_fs_1.webFsWriter;
|
||||
}
|
||||
}
|
||||
catch (err) {
|
||||
log_1.Log.verbose(logLevel, `WebFS check failed: ${err}. Falling back to buffer writer`);
|
||||
}
|
||||
log_1.Log.verbose(logLevel, 'Using buffer writer because WebFS writer is not supported or unavailable');
|
||||
return buffer_1.bufferWriter;
|
||||
};
|
||||
exports.autoSelectWriter = autoSelectWriter;
|
||||
Reference in New Issue
Block a user