Skip to content

Hvigor Project Finder analyzer 🔍 Specify a base working directory, scan all HarmonyOS projects ✨ written in Rust, provide NAPI bindings to TypeScript ✊ Hvigor 项目查找分析器 🔍 指定一个基础工作目录,扫描此目录下所有鸿蒙工程 ✨ Rust编写,提供 NAPI 绑定到TypeScript ✊

License

Notifications You must be signed in to change notification settings

ohosvscode/project-detector

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ArkTS Project Detector

ArkTS Project Detector

准确的来说,这应该是一个 Hvigor Project Detector. (QWQ)

指定一个基础的工作目录,扫描这个目录下的所有鸿蒙工程。

提供napi绑定,用于在 Node.js 中使用。

安装 ⏬

pnpm install @arkts/project-detector

现代包管理器(如pnpm)会自动下载当前您计算机架构和系统的二进制绑定,无需担心兼容性问题。如果您的 node_modules 需要用于打包,则推荐把所有的相关依赖都装上,或者使用 pnpm install --force 安装依赖。

📦 关于 bundled

bundled 包将node.js层的封装包含 node_modules 中的依赖一起打包,可以直接在 Node.js / Bun 中直接导入使用(可以无需依赖安装),避免了依赖安装不全的问题。导入直接改为这样即可:

import { ProjectDetector } from '@arkts/project-detector/bundled'

使用 📝

import { Module, Project, ProjectDetector } from '@arkts/project-detector'

const projectDetector = ProjectDetector.create(/** 基础工作目录 */)
// 扫描当前工作目录下的所有鸿蒙工程
const projects = Project.findAll(projectDetector)
// 扫描当前鸿蒙工程下的所有模块
const modules = projects[0] && Module.findAll(projects()[0])
// 扫描当前鸿蒙工程下的所有产品
const products = modules[0] && Product.findAll(modules()[0])
// ...

更多API请参考声明文件。

注意事项 ⚠️

本库使用 TypeScript 包裹了一层Rust的API,在Rust的API基础上提供了一个基于 mitt + alien-signals 的文件事件系统,用于监听文件的创建、修改、删除事件,并即时地动态更新每个对象数据。

您可以使用内置的 chokidar 直接监听文件事件,也可以自己调用 mittemit 方法处理文件事件。比如在ohosvscode/arkTS的语言服务器中,我们使用vscode内置的文件系统监听器,将事件发送到language-server进程中并传给了ProjectDetector实例。

Alt

Contact to Author 📧

  • Telegram: @GCZ_Zero
  • X (Twitter): @GCZ_Zero
  • QQ: 1203970284,QQ群: 746153004
  • WeChat: gcz-zero

License 📜

MIT

About

Hvigor Project Finder analyzer 🔍 Specify a base working directory, scan all HarmonyOS projects ✨ written in Rust, provide NAPI bindings to TypeScript ✊ Hvigor 项目查找分析器 🔍 指定一个基础工作目录,扫描此目录下所有鸿蒙工程 ✨ Rust编写,提供 NAPI 绑定到TypeScript ✊

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published