Environment

Environment API 对于获取有关命令运行的设置的上下文非常有用。您可以获得有关扩展和命令本身以及 Raycast 的信息。此外,还注入了一些路径,有助于构建与资源相关的文件路径命令。

API 参考

environment

包含环境值,例如 Raycast 版本、扩展信息和路径。

例子

import { environment } from "@raycast/api";

export default async function Command() {
  console.log(`Raycast version: ${environment.raycastVersion}`);
  console.log(`Extension name: ${environment.extensionName}`);
  console.log(`Command name: ${environment.commandName}`);
  console.log(`Command mode: ${environment.commandMode}`);
  console.log(`Assets path: ${environment.assetsPath}`);
  console.log(`Support path: ${environment.supportPath}`);
  console.log(`Is development mode: ${environment.isDevelopment}`);
  console.log(`Appearance: ${environment.appearance}`);
  console.log(`Text size: ${environment.textSize}`);
  console.log(`LaunchType: ${environment.launchType}`);
}

属性

名称
描述
类型

appearance*

Raycast 应用程序使用的外观。

"light""dark"

assetsPath*

扩展的资源目录的绝对路径。

string

commandMode*

启动命令的模式,在 package.json 中指定

"no-view""view""menu-bar"

commandName*

已启动命令的名称,在 package.json 中指定

string

extensionName*

扩展名,在 package.json 中指定

string

isDevelopment*

指示该命令是否是开发命令(相对于 Store 中安装的命令)。

boolean

launchType*

命令的启动类型(用户启动或后台)。

raycastVersion*

Raycast 主应用程序的版本

string

supportPath*

扩展支持目录的绝对路径。使用它来读取和写入与您的扩展或命令相关的文件。

string

textSize*

Raycast 应用程序使用的文本大小。

"medium""large"

canAccess*

返回用户是否有权访问给定的 API。

(api: unknown) => boolean

environment.canAccess

检查用户是否可以访问特定的API。

签名

function canAccess(api: any): bool;

例子

import { AI, showHUD, environment } from "@raycast/api";
import fs from "fs";

export default async function main() {
  if (environment.canAccess(AI)) {
    const answer = await AI.ask("Suggest 5 jazz songs");
    await Clipboard.copy(answer);
  } else {
    await showHUD("You don't have access :(");
  }
}

返回

一个布尔值,指示运行命令的用户是否有权访问 API。

getSelectedFinderItems

从 Finder 获取选定的项目。

签名

async function getSelectedFinderItems(): Promise<FileSystemItem[]>;

例子

import { getSelectedFinderItems, showToast, Toast } from "@raycast/api";

export default async function Command() {
  try {
    const selectedItems = await getSelectedFinderItems();
    console.log(selectedItems);
  } catch (error) {
    await showToast({
      style: Toast.Style.Failure,
      title: "Cannot copy file path",
      message: String(error),
    });
  }
}

返回

使用 选定的文件系统项 解析的 Promise。如果 Finder 不是最前面的应用程序,则 Promise 将被 rejected。

getSelectedText

获取最前面的应用程序的选定文本。

签名

async function getSelectedText(): Promise<string>;

例子

import { getSelectedText, Clipboard, showToast, Toast } from "@raycast/api";

export default async function Command() {
  try {
    const selectedText = await getSelectedText();
    const transformedText = selectedText.toUpperCase();
    await Clipboard.paste(transformedText);
  } catch (error) {
    await showToast({
      style: Toast.Style.Failure,
      title: "Cannot transform text",
      message: String(error),
    });
  }
}

返回

使用所选文本解析的 Promise。如果在最前面的应用程序中没有选择任何文本,则 Promise 将被 rejected。

类型

FileSystemItem

保存有关文件系统项的数据。使用 getSelectedFinderItems 方法检索值。

属性

名称
描述
类型

path*

项目的路径

string

LaunchType

指示命令启动的类型。使用它来检测命令是否已从后台启动。

枚举成员

名称
描述

UserInitiated

通过用户交互定期启动

Background

按时间间隔安排并从后台启动

最后更新于