@daiyam/artifact-vsx-ts
Version:
The configuration to create Visual Studio extensions and publish them on Visual Studio Marketplace and Open VSX Registry.
38 lines (29 loc) • 1.19 kB
text/typescript
import path from 'path';
import fse from '@zokugun/fs-extra-plus/async';
import { err, OK, type Result } from '@zokugun/xtry';
import type vscode from 'vscode';
export const CONFIG_KEY = 'EXT_CFG_KEY';
/* eslint-disable import/no-mutable-exports, @typescript-eslint/naming-convention */
export let EXTENSION_ID: string = '';
export let EXTENSION_NAME: string = '';
export let GLOBAL_STORAGE: string = '';
export let TEMPORARY_DIR: string = '';
export let WORKSPACE_STORAGE: string | undefined;
/* eslint-enable */
let $context: vscode.ExtensionContext | null = null;
export function getContext(): vscode.ExtensionContext {
return $context!;
}
export async function setupSettings(context: vscode.ExtensionContext): Promise<Result<void, string>> {
EXTENSION_NAME = context.extension.packageJSON.displayName as string;
EXTENSION_ID = context.extension.id;
GLOBAL_STORAGE = context.globalStorageUri.fsPath;
TEMPORARY_DIR = path.join(GLOBAL_STORAGE, 'temp');
WORKSPACE_STORAGE = context.storageUri?.fsPath;
$context = context;
const result = await fse.ensureDir(TEMPORARY_DIR);
if(result.fails) {
return err(`Cannot ensure the directory ${TEMPORARY_DIR}`);
}
return OK;
}