/
testDefaults.ts
68 lines (65 loc) · 1.64 KB
/
testDefaults.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
import createFetcher from '@pnpm/default-fetcher'
import createResolver from '@pnpm/default-resolver'
import storePath from '@pnpm/store-path'
import createStore, {StoreController} from 'package-store'
import path = require('path')
import tempy = require('tempy')
import {HeadlessOptions} from '@pnpm/headless'
const registry = 'http://localhost:4873/'
const retryOpts = {
fetchRetries: 2,
fetchRetryFactor: 10,
fetchRetryMaxtimeout: 60_000,
fetchRetryMintimeout: 10_000,
}
export default async function testDefaults (
opts?: any, // tslint:disable-line
resolveOpts?: any, // tslint:disable-line
fetchOpts?: any, // tslint:disable-line
storeOpts?: any, // tslint:disable-line
): Promise<HeadlessOptions> {
let store = opts && opts.store || tempy.directory()
store = await storePath(opts && opts.prefix || process.cwd(), store)
const rawNpmConfig = {registry}
const storeController = await createStore(
createResolver({
metaCache: new Map(),
rawNpmConfig,
store,
strictSsl: true,
...retryOpts,
...resolveOpts,
}),
createFetcher({
alwaysAuth: true,
rawNpmConfig,
registry,
...retryOpts,
...fetchOpts,
}) as {},
{
locks: path.join(store, '_locks'),
store,
...storeOpts,
},
)
return {
development: true,
optional: true,
production: true,
independentLeaves: false,
verifyStoreIntegrity: true,
sideEffectsCache: true,
force: false,
registry,
store,
storeController,
rawNpmConfig: {},
unsafePerm: true,
packageManager: {
name: 'pnpm',
version: '1.0.0',
},
...opts,
}
}