本文整理汇总了TypeScript中fb-watchman.Client类的典型用法代码示例。如果您正苦于以下问题:TypeScript Client类的具体用法?TypeScript Client怎么用?TypeScript Client使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Client类的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的TypeScript代码示例。
示例1: watchmanCrawl
export = async function watchmanCrawl(
options: CrawlerOptions,
): Promise<InternalHasteMap> {
const fields = ['name', 'exists', 'mtime_ms', 'size'];
const {data, extensions, ignore, rootDir, roots} = options;
const defaultWatchExpression = [
'allof',
['type', 'f'],
['anyof', ...extensions.map(extension => ['suffix', extension])],
];
const clocks = data.clocks;
const client = new watchman.Client();
let clientError;
client.on('error', error => (clientError = WatchmanError(error)));
// TODO: type better than `any`
const cmd = (...args: Array<any>): Promise<any> =>
new Promise((resolve, reject) =>
client.command(args, (error, result) =>
error ? reject(WatchmanError(error)) : resolve(result),
),
);
if (options.computeSha1) {
const {capabilities} = await cmd('list-capabilities');
if (capabilities.indexOf('field-content.sha1hex') !== -1) {
fields.push('content.sha1hex');
}
}
async function getWatchmanRoots(
roots: Array<Config.Path>,
): Promise<WatchmanRoots> {
const watchmanRoots = new Map();
await Promise.all(
roots.map(async root => {
const response = await cmd('watch-project', root);
const existing = watchmanRoots.get(response.watch);
// A root can only be filtered if it was never seen with a
// relative_path before.
const canBeFiltered = !existing || existing.length > 0;
if (canBeFiltered) {
if (response.relative_path) {
watchmanRoots.set(
response.watch,
(existing || []).concat(response.relative_path),
);
} else {
// Make the filter directories an empty array to signal that this
// root was already seen and needs to be watched for all files or
// directories.
watchmanRoots.set(response.watch, []);
}
}
}),
);
return watchmanRoots;
}
async function queryWatchmanForDirs(rootProjectDirMappings: WatchmanRoots) {
const files = new Map();
let isFresh = false;
await Promise.all(
Array.from(rootProjectDirMappings).map(
async ([root, directoryFilters]) => {
const expression = Array.from(defaultWatchExpression);
const glob = [];
if (directoryFilters.length > 0) {
expression.push([
'anyof',
...directoryFilters.map(dir => ['dirname', dir]),
]);
for (const directory of directoryFilters) {
for (const extension of extensions) {
glob.push(`${directory}/**/*.${extension}`);
}
}
} else {
for (const extension of extensions) {
glob.push(`**/*.${extension}`);
}
}
const relativeRoot = fastPath.relative(rootDir, root);
const query = clocks.has(relativeRoot)
? // Use the `since` generator if we have a clock available
{expression, fields, since: clocks.get(relativeRoot)}
: // Otherwise use the `glob` filter
{expression, fields, glob};
const response = await cmd('query', root, query);
if ('warning' in response) {
console.warn('watchman warning: ', response.warning);
}
//.........这里部分代码省略.........
开发者ID:elliottsj,项目名称:jest,代码行数:101,代码来源:watchman.ts
示例2: Client
import { Client } from "fb-watchman";
const client = new Client();
const clientB = new Client({});
client.capabilityCheck({ optional: [], required: ['relative_root'] }, e => {
if (e) {
client.end();
return;
}
});
client.connect();
client.command(['watch-project', '/tmp'], () => {});
开发者ID:AlexGalays,项目名称:DefinitelyTyped,代码行数:14,代码来源:fb-watchman-tests.ts
示例3: Promise
new Promise((resolve, reject) =>
client.command(args, (error, result) =>
error ? reject(WatchmanError(error)) : resolve(result),
),
开发者ID:elliottsj,项目名称:jest,代码行数:4,代码来源:watchman.ts
示例4:
client.capabilityCheck({ optional: [], required: ['relative_root'] }, e => {
if (e) {
client.end();
return;
}
});
开发者ID:AlexGalays,项目名称:DefinitelyTyped,代码行数:6,代码来源:fb-watchman-tests.ts
注:本文中的fb-watchman.Client类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论