Adjust European short trip heuristic from >3 days to >1 day to correctly detect when user has returned home from European trips. This fixes the April 29-30, 2023 case where the location incorrectly showed "Sankt Georg, Hamburg" instead of "Bristol" when the user was free (no events scheduled) after the foss-north trip ended on April 27. The previous logic required more than 3 days to pass before assuming return home from European countries, but for short European trips by rail/ferry, users typically return within 1-2 days. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
70 lines
1.5 KiB
JavaScript
70 lines
1.5 KiB
JavaScript
var path = require('path');
|
|
|
|
var extension = require('./lib/extension');
|
|
var normalize = require('./lib/normalize');
|
|
var register = require('./lib/register');
|
|
|
|
exports.prepare = function (extensions, filepath, cwd, nothrow) {
|
|
var config, usedExtension, err, option, attempt, error;
|
|
var attempts = [];
|
|
var onlyErrors = true;
|
|
var exts = extension(filepath);
|
|
|
|
if (exts) {
|
|
exts.some(function (ext) {
|
|
usedExtension = ext;
|
|
config = normalize(extensions[ext]);
|
|
return !!config;
|
|
});
|
|
}
|
|
|
|
if (Object.keys(require.extensions).indexOf(usedExtension) !== -1) {
|
|
return true;
|
|
}
|
|
|
|
if (!config) {
|
|
if (nothrow) {
|
|
return;
|
|
}
|
|
|
|
throw new Error('No module loader found for "' + usedExtension + '".');
|
|
}
|
|
|
|
if (!cwd) {
|
|
cwd = path.dirname(path.resolve(filepath));
|
|
}
|
|
if (!Array.isArray(config)) {
|
|
config = [config];
|
|
}
|
|
|
|
for (var i in config) {
|
|
option = config[i];
|
|
attempt = register(cwd, option.module, option.register);
|
|
error = attempt instanceof Error ? attempt : null;
|
|
if (error) {
|
|
attempt = null;
|
|
}
|
|
attempts.push({
|
|
moduleName: option.module,
|
|
module: attempt,
|
|
error: error,
|
|
});
|
|
if (!error) {
|
|
onlyErrors = false;
|
|
break;
|
|
}
|
|
}
|
|
if (onlyErrors) {
|
|
err = new Error(
|
|
'Unable to use specified module loaders for "' + usedExtension + '".'
|
|
);
|
|
err.failures = attempts;
|
|
if (nothrow) {
|
|
return err;
|
|
}
|
|
|
|
throw err;
|
|
}
|
|
return attempts;
|
|
};
|