0.2.1 • Published 10 months ago
@inlang/recommend-sherlock v0.2.1
Sherlock 🕵️♂️ recommendation package
Features
- Check for Existing Recommendations: Quickly verify if an extension is already recommended in the workspace's .vscode/extensions.jsonfile.
- Add New Recommendations: Automatically add new recommendations to the .vscode/extensions.jsonfile if they are not already present.
Installation
Put this one into your dependencies in package.json & install it with pnpm install:
"@inlang/recommend-sherlock": "workspace:*"Usage
The module exports two main asynchronous functions:
shouldRecommend(fs: NodeishFilesystem, workingDirectory?: string): Promise<boolean>
Checks whether the inlang.vs-code-extension is recommended in the workspace.
Parameters
- fs: A- NodeishFilesystemobject to interact with the file system.
- workingDirectory: (Optional) The working directory path.
Returns
- Promise<boolean>:- trueif the extension is recommended,- falseotherwise.
add(fs: NodeishFilesystem, workingDirectory?: string): Promise<void>
Adds the inlang.vs-code-extension recommendation to the workspace if it's not already present.
Parameters
- fs: A- NodeishFilesystemobject to interact with the file system.
- workingDirectory: (Optional) The working directory path.
Example
import { shouldRecommend, add } from '@inlang/recommend-sherlock';
import { NodeishFilesystem } from '@lix-js/fs';
async function addSherlock(fs: NodeishFilesystem) {
  const isExtensionAdopted = await shouldRecommend(fs);
  if (!isExtensionAdopted) {
    // prompt for user confirmation
    const userConfirmed = await promptUser();
    if (userConfirmed) {
      await add(fs);
      console.log('Extension recommendation added.');
    } else {
      console.log('User declined to add extension recommendation.');
    }
  }
}Contributing
Contributions are welcome! If you have a feature request, bug report, or proposal, please open an issue or submit a pull request. Our Discord can be found here.