vscode-no-unsupported
Version:
An extension for removing [Unsupported] from the titlebar
73 lines (42 loc) • 1.45 kB
text/typescript
/* IMPORT */
import * as _ from 'lodash';
import * as fs from 'fs';
import * as mkdirp from 'mkdirp';
import * as path from 'path';
import * as pify from 'pify';
import * as vscode from 'vscode';
import * as Commands from './commands';
/* UTILS */
const Utils = {
initCommands ( context: vscode.ExtensionContext ) {
const {commands} = vscode.extensions.getExtension ( 'fabiospampinato.vscode-no-unsupported' ).packageJSON.contributes;
commands.forEach ( ({ command, title }) => {
const commandName = _.last ( command.split ( '.' ) ) as string,
handler = Commands[commandName],
disposable = vscode.commands.registerCommand ( command, () => handler () );
context.subscriptions.push ( disposable );
});
return Commands;
},
file: {
open ( filepath ) {
return vscode.commands.executeCommand ( 'vscode.open', vscode.Uri.parse ( `file://${filepath}` ) );
},
async make ( filepath, content ) {
await pify ( mkdirp )( path.dirname ( filepath ) );
return Utils.file.write ( filepath, content );
},
async read ( filepath ) {
try {
return ( await pify ( fs.readFile )( filepath, { encoding: 'utf8' } ) ).toString ();
} catch ( e ) {
return;
}
},
async write ( filepath, content ) {
return pify ( fs.writeFile )( filepath, content, {} );
}
}
};
/* EXPORT */
export default Utils;