hyper/app/config/keymaps.js

51 lines
1.1 KiB
JavaScript
Raw Normal View History

const {readFileSync} = require('fs');
const normalize = require('../utils/keymaps/normalize');
const {defaultPlatformKeyPath} = require('./paths');
const commands = {};
const keys = {};
const _setKeysForCommands = function (keymap) {
for (const command in keymap) {
if (command) {
commands[command] = normalize(keymap[command]);
}
}
};
const _setCommandsForKeys = function (commands) {
for (const command in commands) {
if (command) {
keys[commands[command]] = command;
}
}
};
2017-09-25 05:21:59 -08:00
const _import = function (customKeys) {
try {
const mapping = JSON.parse(readFileSync(defaultPlatformKeyPath()));
_setKeysForCommands(mapping);
2017-09-25 05:21:59 -08:00
_setKeysForCommands(customKeys);
_setCommandsForKeys(commands);
return {commands, keys};
} catch (err) {}
};
2017-09-25 05:21:59 -08:00
const _extend = function (customKeys) {
if (customKeys) {
for (const command in customKeys) {
if (command) {
2017-09-25 05:21:59 -08:00
commands[command] = normalize(customKeys[command]);
keys[normalize(customKeys[command])] = command;
}
}
}
return {commands, keys};
};
module.exports = {
import: _import,
extend: _extend
};