UNPKG

1.96 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.WorkspaceResolver = void 0;
4const types_1 = require("./types");
5class 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}
50exports.WorkspaceResolver = WorkspaceResolver;
51WorkspaceResolver.protocol = `workspace:`;