本文整理汇总了TypeScript中throat.default函数的典型用法代码示例。如果您正苦于以下问题:TypeScript default函数的具体用法?TypeScript default怎么用?TypeScript default使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了default函数的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: jasmineAsyncInstall
export default function jasmineAsyncInstall(
globalConfig: Config.GlobalConfig,
global: Global.Global,
) {
const jasmine = global.jasmine as Jasmine;
const mutex = throat(globalConfig.maxConcurrency);
const env = jasmine.getEnv();
env.it = promisifyIt(env.it, env, jasmine);
env.fit = promisifyIt(env.fit, env, jasmine);
global.it.concurrent = (env => {
const concurrent = makeConcurrent(
env.it,
env,
mutex,
) as Global.ItConcurrentExtended;
concurrent.only = makeConcurrent(env.fit, env, mutex);
concurrent.skip = makeConcurrent(env.xit, env, mutex);
return concurrent;
})(env);
global.fit.concurrent = makeConcurrent(env.fit, env, mutex);
env.afterAll = promisifyLifeCycleFunction(env.afterAll, env);
env.afterEach = promisifyLifeCycleFunction(env.afterEach, env);
env.beforeAll = promisifyLifeCycleFunction(env.beforeAll, env);
env.beforeEach = promisifyLifeCycleFunction(env.beforeEach, env);
}
示例2: _createInBandTestRun
private async _createInBandTestRun(
tests: Array<JestTest>,
watcher: TestWatcher,
onStart: OnTestStart,
onResult: OnTestSuccess,
onFailure: OnTestFailure,
) {
process.env.JEST_WORKER_ID = '1';
const mutex = throat(1);
return tests.reduce(
(promise, test) =>
mutex(() =>
promise
.then(async () => {
if (watcher.isInterrupted()) {
throw new CancelRun();
}
await onStart(test);
return runTest(
test.path,
this._globalConfig,
test.context.config,
test.context.resolver,
this._context,
);
})
.then(result => onResult(test, result))
.catch(err => onFailure(test, err)),
),
Promise.resolve(),
);
}
示例3: throat
* Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
*/
import throat from 'throat';
import {Path, ChangedFilesPromise, Options, Repos} from './types';
import git from './git';
import hg from './hg';
// This is an arbitrary number. The main goal is to prevent projects with
// many roots (50+) from spawning too many processes at once.
const mutex = throat(5);
const findGitRoot = (dir: string) => mutex(() => git.getRoot(dir));
const findHgRoot = (dir: string) => mutex(() => hg.getRoot(dir));
export const getChangedFilesForRoots = async (
roots: Path[],
options: Options,
): ChangedFilesPromise => {
const repos = await findRepos(roots);
const changedFilesOptions = {includePaths: roots, ...options};
const gitPromises = Array.from(repos.git).map(repo =>
git.findChangedFiles(repo, changedFilesOptions),
);
示例4: _createParallelTestRun
private async _createParallelTestRun(
tests: Array<JestTest>,
watcher: TestWatcher,
onStart: OnTestStart,
onResult: OnTestSuccess,
onFailure: OnTestFailure,
) {
const resolvers: Map<string, SerializableResolver> = new Map();
for (const test of tests) {
if (!resolvers.has(test.context.config.name)) {
resolvers.set(test.context.config.name, {
config: test.context.config,
serializableModuleMap: test.context.moduleMap.toJSON(),
});
}
}
const worker = new Worker(TEST_WORKER_PATH, {
exposedMethods: ['worker'],
forkOptions: {stdio: 'pipe'},
maxRetries: 3,
numWorkers: this._globalConfig.maxWorkers,
setupArgs: [
{
serializableResolvers: Array.from(resolvers.values()),
},
],
}) as WorkerInterface;
if (worker.getStdout()) worker.getStdout().pipe(process.stdout);
if (worker.getStderr()) worker.getStderr().pipe(process.stderr);
const mutex = throat(this._globalConfig.maxWorkers);
// Send test suites to workers continuously instead of all at once to track
// the start time of individual tests.
const runTestInWorker = (test: JestTest) =>
mutex(async () => {
if (watcher.isInterrupted()) {
return Promise.reject();
}
await onStart(test);
return worker.worker({
config: test.context.config,
context: {
...this._context,
changedFiles:
this._context.changedFiles &&
Array.from(this._context.changedFiles),
},
globalConfig: this._globalConfig,
path: test.path,
});
});
const onError = async (err: SerializableError, test: JestTest) => {
await onFailure(test, err);
if (err.type === 'ProcessTerminatedError') {
console.error(
'A worker process has quit unexpectedly! ' +
'Most likely this is an initialization error.',
);
exit(1);
}
};
const onInterrupt = new Promise((_, reject) => {
watcher.on('change', (state: WatcherState) => {
if (state.interrupted) {
reject(new CancelRun());
}
});
});
const runAllTests = Promise.all(
tests.map(test =>
runTestInWorker(test)
.then(testResult => onResult(test, testResult))
.catch(error => onError(error, test)),
),
);
const cleanup = () => worker.end();
return Promise.race([runAllTests, onInterrupt]).then(cleanup, cleanup);
}
示例5: throat
export const initialize = ({
config,
environment,
getPrettier,
getBabelTraverse,
globalConfig,
localRequire,
parentProcess,
testPath,
}: {
config: Config.ProjectConfig;
environment: JestEnvironment;
getPrettier: () => null | any;
getBabelTraverse: () => Function;
globalConfig: Config.GlobalConfig;
localRequire: (path: Config.Path) => any;
testPath: Config.Path;
parentProcess: Process;
}) => {
const mutex = throat(globalConfig.maxConcurrency);
Object.assign(global, globals);
global.xit = global.it.skip;
global.xtest = global.it.skip;
global.xdescribe = global.describe.skip;
global.fit = global.it.only;
global.fdescribe = global.describe.only;
global.test.concurrent = (test => {
const concurrent = (
testName: string,
testFn: () => Promise<any>,
timeout?: number,
) => {
// For concurrent tests we first run the function that returns promise, and then register a
// nomral test that will be waiting on the returned promise (when we start the test, the promise
// will already be in the process of execution).
// Unfortunately at this stage there's no way to know if there are any `.only` tests in the suite
// that will result in this test to be skipped, so we'll be executing the promise function anyway,
// even if it ends up being skipped.
const promise = mutex(() => testFn());
global.test(testName, () => promise, timeout);
};
concurrent.only = (
testName: string,
testFn: () => Promise<any>,
timeout?: number,
) => {
const promise = mutex(() => testFn());
// eslint-disable-next-line jest/no-focused-tests
test.only(testName, () => promise, timeout);
};
concurrent.skip = test.skip;
return concurrent;
})(global.test);
addEventHandler(eventHandler);
if (environment.handleTestEvent) {
addEventHandler(environment.handleTestEvent.bind(environment));
}
dispatch({
name: 'setup',
parentProcess,
testNamePattern: globalConfig.testNamePattern,
});
if (config.testLocationInResults) {
dispatch({
name: 'include_test_location_in_result',
});
}
// Jest tests snapshotSerializers in order preceding built-in serializers.
// Therefore, add in reverse because the last added is the first tested.
config.snapshotSerializers
.concat()
.reverse()
.forEach(path => {
addSerializer(localRequire(path));
});
const {expand, updateSnapshot} = globalConfig;
const snapshotResolver = buildSnapshotResolver(config);
const snapshotPath = snapshotResolver.resolveSnapshotPath(testPath);
const snapshotState = new SnapshotState(snapshotPath, {
expand,
getBabelTraverse,
getPrettier,
updateSnapshot,
});
setState({snapshotState, testPath});
// Return it back to the outer scope (test runner outside the VM).
return {globals, snapshotState};
//.........这里部分代码省略.........