1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | exports.WorkspaceResolver = void 0;
|
4 | const types_1 = require("./types");
|
5 | class WorkspaceResolver {
|
6 | supportsDescriptor(descriptor, opts) {
|
7 | if (descriptor.range.startsWith(WorkspaceResolver.protocol))
|
8 | return true;
|
9 | const workspace = opts.project.tryWorkspaceByDescriptor(descriptor);
|
10 | if (workspace !== null)
|
11 | return true;
|
12 | return false;
|
13 | }
|
14 | supportsLocator(locator, opts) {
|
15 | if (!locator.reference.startsWith(WorkspaceResolver.protocol))
|
16 | return false;
|
17 | return true;
|
18 | }
|
19 | shouldPersistResolution(locator, opts) {
|
20 | return false;
|
21 | }
|
22 | bindDescriptor(descriptor, fromLocator, opts) {
|
23 | return descriptor;
|
24 | }
|
25 | getResolutionDependencies(descriptor, opts) {
|
26 | return [];
|
27 | }
|
28 | async getCandidates(descriptor, dependencies, opts) {
|
29 | const workspace = opts.project.getWorkspaceByDescriptor(descriptor);
|
30 | return [workspace.anchoredLocator];
|
31 | }
|
32 | async getSatisfying(descriptor, references, opts) {
|
33 | return null;
|
34 | }
|
35 | async resolve(locator, opts) {
|
36 | const workspace = opts.project.getWorkspaceByCwd(locator.reference.slice(WorkspaceResolver.protocol.length));
|
37 | return {
|
38 | ...locator,
|
39 | version: workspace.manifest.version || `0.0.0`,
|
40 | languageName: `unknown`,
|
41 | linkType: types_1.LinkType.SOFT,
|
42 | dependencies: new Map([...workspace.manifest.dependencies, ...workspace.manifest.devDependencies]),
|
43 | peerDependencies: new Map([...workspace.manifest.peerDependencies]),
|
44 | dependenciesMeta: workspace.manifest.dependenciesMeta,
|
45 | peerDependenciesMeta: workspace.manifest.peerDependenciesMeta,
|
46 | bin: workspace.manifest.bin,
|
47 | };
|
48 | }
|
49 | }
|
50 | exports.WorkspaceResolver = WorkspaceResolver;
|
51 | WorkspaceResolver.protocol = `workspace:`;
|