protected override Task <List <FileDataValue> > ComputeFileDataValuesAsync(string filePath, CancellationToken cancellationToken) { Debug.Assert(PackageJsonFactory.IsPackageJsonFile(filePath), $"{filePath} should be a package.json file"); var packageJson = PackageJsonFactory.Create(this.EnsureRooted(filePath)); var main = packageJson.Main; var fileDataValues = new List <FileDataValue>(); if (!string.IsNullOrEmpty(main)) { var launchSettings = new PropertySettings { [LaunchConfigurationConstants.NameKey] = $"node {main} (package.json)", [LaunchConfigurationConstants.TypeKey] = "default" }; fileDataValues.Add(new FileDataValue( DebugLaunchActionContext.ContextTypeGuid, DebugLaunchActionContext.IsDefaultStartupProjectEntry, launchSettings, target: main)); // Target has to match the name used in the debug action context so it can be found during project configuration fileDataValues.Add(new FileDataValue(DebugLaunchActionContext.ContextTypeGuid, main, null, target: main)); // Also need a null target so that can be found for the context menu when querying for build configurations. // (See Microsoft.VisualStudio.Workspace.VSIntegration.UI.FileContextActionsCommandHandlersProvider.Provider.GetActionProviderForProjectConfiguration) fileDataValues.Add(new FileDataValue(DebugLaunchActionContext.ContextTypeGuid, main, null, target: null)); } return(Task.FromResult(fileDataValues)); }
public void DiscoverTests(IEnumerable <string> sources, IDiscoveryContext discoveryContext, IMessageLogger logger, ITestCaseDiscoverySink discoverySink) { AssemblyResolver.SetupHandler(); foreach (var source in sources) { // we're only interested in package.json files here. if (PackageJsonFactory.IsPackageJsonFile(source)) { this.DiscoverTestFiles(source, logger, discoverySink); } } }
protected override Task <List <FileReferenceInfo> > ComputeFileReferencesAsync(string filePath, CancellationToken cancellationToken) { Debug.Assert(PackageJsonFactory.IsPackageJsonFile(filePath), $"{filePath} should be a package.json file"); var packageJson = PackageJsonFactory.Create(filePath); var main = packageJson.Main; var fileReferences = new List <FileReferenceInfo> { new FileReferenceInfo(main, context: "Debug", target: main, referenceType: (int)FileReferenceInfoType.Output) }; return(Task.FromResult(fileReferences)); }
public void DiscoverTests(IEnumerable <string> sources, IDiscoveryContext discoveryContext, IMessageLogger logger, ITestCaseDiscoverySink discoverySink) { AssemblyResolver.SetupHandler(); var settings = new UnitTestSettings(discoveryContext.RunSettings); this.frameworkDiscoverer = this.frameworkDiscoverer ?? new FrameworkDiscoverer(settings.TestFrameworksLocation); foreach (var source in sources) { // we're only interested in package.json files here. if (PackageJsonFactory.IsPackageJsonFile(source)) { this.DiscoverTestFiles(source, logger, discoverySink); } } }
private INpmController CreateController(string packageJsonPath) { Debug.Assert(Path.IsPathRooted(packageJsonPath)); Debug.Assert(PackageJsonFactory.IsPackageJsonFile(packageJsonPath)); var projectHome = Path.GetDirectoryName(packageJsonPath); var npmController = NpmControllerFactory.Create( projectHome, NodejsConstants.NpmCachePath, isProject: false); npmController.ErrorLogged += this.WriteNpmOutput; npmController.ExceptionLogged += this.WriteNpmException; npmController.OutputLogged += this.WriteNpmOutput; return(npmController); }
protected override Task <bool> IsValidFileAsync(string filePath) { return(Task.FromResult(PackageJsonFactory.IsPackageJsonFile(filePath))); }
private static bool EnsurePackageJson(WorkspaceVisualNodeBase node) { return(node is IFileNode fileNode && PackageJsonFactory.IsPackageJsonFile(fileNode.FileName)); }