-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmdquery.d.ts
89 lines (78 loc) · 2.23 KB
/
mdquery.d.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
/**
* A MDQueryItem represents a file search result.
* The unit of time parameter is seconds.
*/
export interface MDQueryItem {
isDir: boolean;
path: string;
extension: string;
createTime: number;
lastModifyTime: number;
lastUsedTime?: number;
bundleIdentifier?: string;
version?: string;
}
/**
* Search scope for MDQuery.
* @link https://developer.apple.com/documentation/coreservices/file_metadata/mdquery/query_search_scope_keys?language=objc
*/
export enum MDQueryScope {
Home = 'kMDQueryScopeHome',
Computer = 'kMDQueryScopeComputer',
Network = 'kMDQueryScopeNetwork',
AllIndexed = 'kMDQueryScopeAllIndexed',
ComputerIndexed = 'kMDQueryScopeComputerIndexed',
NetworkIndexed = 'kMDQueryScopeNetworkIndexed'
}
/**
* Quick search with MDQuery.
* @param query The MDQuery expression.
* @param scopes Search scopes. Default: User's home dir.
* @param maxResultCount The maximum number of results returned. Default: 0(No limit)
*/
export function mdQuery(option: {
query: string;
scopes?: string[];
maxResultCount?: number;
}): Promise<MDQueryItem[]>;
// Pass this value to maxResultCount means do not limit the number of the results returned.
export const MDQueryResultCountNoLimit = 0;
/**
* When a query is updated, update type will be returned in the callback function.
*/
export enum MDQueryUpdateType {
Add,
Change,
Remove
}
/**
* Core Services MDQuery wrapper.
* The same tech used by Spotlight.
* @link https://developer.apple.com/documentation/coreservices/file_metadata/mdquery?language=objc
*/
export declare class MDQuery {
/**
* @param query MDQuery expression.
* @param scopes Search scopes.
* @param maxResultCount The maximum number of results returned.
*/
constructor(query: string, scopes: string[], maxResultCount: number);
/**
* Start query.
* @param callback
*/
start(callback: (data: MDQueryItem[]) => void): void;
/**
* Stop query.
*/
stop(): void;
/**
* Watch query's updates.
* @param callback
*/
watch(callback: (type: MDQueryUpdateType, items: MDQueryItem[]) => void): void;
/**
* Stop watch query's updates.
*/
stopWatch(): void;
}