UNPKG

@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
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; }