Disable the confirmation dialog when deleting files in the VS Code explorer to streamline the development workflow and reduce friction during file management operations.
44 lines
1.2 KiB
JavaScript
44 lines
1.2 KiB
JavaScript
'use strict';
|
|
|
|
var $TypeError = require('es-errors/type');
|
|
var inspect = require('object-inspect');
|
|
var getSideChannelList = require('side-channel-list');
|
|
var getSideChannelMap = require('side-channel-map');
|
|
var getSideChannelWeakMap = require('side-channel-weakmap');
|
|
|
|
var makeChannel = getSideChannelWeakMap || getSideChannelMap || getSideChannelList;
|
|
|
|
/** @type {import('.')} */
|
|
module.exports = function getSideChannel() {
|
|
/** @typedef {ReturnType<typeof getSideChannel>} Channel */
|
|
|
|
/** @type {Channel | undefined} */ var $channelData;
|
|
|
|
/** @type {Channel} */
|
|
var channel = {
|
|
assert: function (key) {
|
|
if (!channel.has(key)) {
|
|
throw new $TypeError('Side channel does not contain ' + inspect(key));
|
|
}
|
|
},
|
|
'delete': function (key) {
|
|
return !!$channelData && $channelData['delete'](key);
|
|
},
|
|
get: function (key) {
|
|
return $channelData && $channelData.get(key);
|
|
},
|
|
has: function (key) {
|
|
return !!$channelData && $channelData.has(key);
|
|
},
|
|
set: function (key, value) {
|
|
if (!$channelData) {
|
|
$channelData = makeChannel();
|
|
}
|
|
|
|
$channelData.set(key, value);
|
|
}
|
|
};
|
|
// @ts-expect-error TODO: figure out why this is erroring
|
|
return channel;
|
|
};
|