跳到主要内容

DevToolsNativeFilesystem

Defined in: native/native-files-provider.ts:66

provider 需要宿主提供的最小文件能力。

Remarks​

刻意不复用 @aiao/rxdb-plugin-storage 的 StorageFilesystem:那个接口是按 RxdbFileStorage 的调用点反推出来的(移动、锁后端、Blob 整读),devtools 一条都不需要, 却少一件它必须有的东西——目录项的大小与时间。让 devtools 依赖那个包还会把桌面传输层 拖进一个要能打进浏览器 bundle 的包里。装配层负责把两者对接(见 US-504 的 @aiao/rxdb-plugin-storage/desktop)。

入参是已校验的段序列,不是路径字符串:字符串会诱导实现方再解析一次,而再解析一次 就是再给一次 .. 生效的机会。

Methods​

createDirectory()​

createDirectory(segments): Promise<void>;

Defined in: native/native-files-provider.ts:72

建目录;父目录一并创建。已存在时由 provider 先探测并拒绝,实现方不必处理冲突。

Parameters​

ParameterType
segmentsreadonly string[]

Returns​

Promise<void>


list()​

list(segments): Promise<readonly DevToolsNativeEntry[]>;

Defined in: native/native-files-provider.ts:68

列出目录的直属条目;空段序列表示插件专用根。

Parameters​

ParameterType
segmentsreadonly string[]

Returns​

Promise<readonly DevToolsNativeEntry[]>


openRead()​

openRead(segments): Promise<DevToolsChunkSource>;

Defined in: native/native-files-provider.ts:76

打开按需读取的字节源。

Parameters​

ParameterType
segmentsreadonly string[]

Returns​

Promise<DevToolsChunkSource>


openWrite()​

openWrite(segments): Promise<DevToolsChunkSink>;

Defined in: native/native-files-provider.ts:84

打开一次写入。

Parameters​

ParameterType
segmentsreadonly string[]

Returns​

Promise<DevToolsChunkSink>

Remarks​

契约与 DevToolsChunkSink 一致:commit() 之前目标文件不得对其他读者可见, discard() 必须清干净临时产物。AC#47 的「失败/取消/超时无半写文件」就落在这一条上。


remove()​

remove(segments): Promise<void>;

Defined in: native/native-files-provider.ts:74

递归删除文件或目录。

Parameters​

ParameterType
segmentsreadonly string[]

Returns​

Promise<void>


stat()​

stat(segments): Promise<DevToolsNativeEntry | undefined>;

Defined in: native/native-files-provider.ts:70

取单个条目;不存在时为 undefined。

Parameters​

ParameterType
segmentsreadonly string[]

Returns​

Promise<DevToolsNativeEntry | undefined>