astro-ghostcms/.pnpm-store/v3/files/1c/95bcf95c2d94448c12cdcbb8e62...

162 lines
7.4 KiB
Plaintext
Raw Normal View History

2024-02-14 14:10:47 +00:00
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.initProject = exports.createProject = void 0;
const moduleSpecifierCache_1 = require("./moduleSpecifierCache");
const autoImportProviderProject_1 = require("./autoImportProviderProject");
;
function createProject(ts, host, createLanguageService, options) {
const { combinePaths, inferredTypesContainingFile, createSymlinkCache, toPath, createCacheableExportInfoMap, timestamp, isInsideNodeModules, LanguageServiceMode, } = ts;
const AutoImportProviderProject = (0, autoImportProviderProject_1.createAutoImportProviderProjectStatic)(ts, host, createLanguageService);
const { projectService, compilerOptions, currentDirectory } = options;
function updateProjectIfDirty(project) {
return project.dirty && project.updateGraph();
}
return {
dirty: false,
hostProject: undefined,
languageServiceEnabled: true,
languageService: undefined,
projectService,
getCanonicalFileName: projectService.toCanonicalFileName,
exportMapCache: undefined,
getCachedExportInfoMap() {
return (this.exportMapCache || (this.exportMapCache = createCacheableExportInfoMap(this)));
},
clearCachedExportInfoMap() {
var _a;
(_a = this.exportMapCache) === null || _a === void 0 ? void 0 : _a.clear();
},
moduleSpecifierCache: (0, moduleSpecifierCache_1.createModuleSpecifierCache)(),
getModuleSpecifierCache() {
return this.moduleSpecifierCache;
},
compilerOptions,
getCompilationSettings() {
return this.compilerOptions;
},
getCompilerOptions() {
return this.compilerOptions;
},
program: undefined,
getCurrentProgram() {
return this.program;
},
currentDirectory: projectService.getNormalizedAbsolutePath(currentDirectory || ''),
getCurrentDirectory() {
return this.currentDirectory;
},
symlinks: undefined,
getSymlinkCache() {
if (!this.symlinks) {
this.symlinks = createSymlinkCache(this.getCurrentDirectory(), this.getCanonicalFileName);
}
if (this.program && !this.symlinks.hasProcessedResolutions()) {
this.symlinks.setSymlinksFromResolutions(this.program.getSourceFiles(),
// @ts-expect-error
this.program.getAutomaticTypeDirectiveResolutions());
}
return this.symlinks;
},
packageJsonsForAutoImport: undefined,
getPackageJsonsForAutoImport(rootDir) {
const packageJsons = this.getPackageJsonsVisibleToFile(combinePaths(this.currentDirectory, inferredTypesContainingFile), rootDir);
this.packageJsonsForAutoImport = new Set(packageJsons.map((p) => p.fileName));
return packageJsons;
},
getPackageJsonsVisibleToFile(fileName, rootDir) {
return this.projectService.getPackageJsonsVisibleToFile(fileName, rootDir);
},
getModuleResolutionHostForAutoImportProvider() {
var _a;
if (this.program) {
return {
// @ts-expect-error
fileExists: this.program.fileExists,
// @ts-expect-error
directoryExists: this.program.directoryExists,
// @ts-expect-error
realpath: this.program.realpath || ((_a = this.projectService.host.realpath) === null || _a === void 0 ? void 0 : _a.bind(this.projectService.host)),
getCurrentDirectory: this.getCurrentDirectory.bind(this),
readFile: this.projectService.host.readFile.bind(this.projectService.host),
getDirectories: this.projectService.host.getDirectories.bind(this.projectService.host),
// trace: this.projectService.host.trace?.bind(this.projectService.host),
trace: () => { },
// @ts-expect-error
useCaseSensitiveFileNames: this.program.useCaseSensitiveFileNames(),
};
}
return this.projectService.host;
},
autoImportProviderHost: undefined,
getPackageJsonAutoImportProvider() {
if (this.autoImportProviderHost === false) {
return undefined;
}
if (this.projectService.serverMode !== LanguageServiceMode.Semantic) {
this.autoImportProviderHost = false;
return undefined;
}
if (this.autoImportProviderHost) {
updateProjectIfDirty(this.autoImportProviderHost);
if (this.autoImportProviderHost.isEmpty()) {
this.autoImportProviderHost.close();
this.autoImportProviderHost = undefined;
return undefined;
}
return this.autoImportProviderHost.getCurrentProgram();
}
const dependencySelection = projectService.includePackageJsonAutoImports();
if (dependencySelection) {
// tracing?.push(tracing.Phase.Session, "getPackageJsonAutoImportProvider");
const start = timestamp();
this.autoImportProviderHost = AutoImportProviderProject.create(dependencySelection, this, this.getModuleResolutionHostForAutoImportProvider());
if (this.autoImportProviderHost) {
updateProjectIfDirty(this.autoImportProviderHost);
this.sendPerformanceEvent('CreatePackageJsonAutoImportProvider', timestamp() - start);
// tracing?.pop();
return this.autoImportProviderHost.getCurrentProgram();
}
// tracing?.pop();
}
},
includePackageJsonAutoImports() {
if (this.projectService.includePackageJsonAutoImports() === 0 /* PackageJsonAutoImportPreference.Off */ ||
!this.languageServiceEnabled ||
isInsideNodeModules(this.currentDirectory) /* ||
!this.isDefaultProjectForOpenFiles()*/) {
return 0 /* PackageJsonAutoImportPreference.Off */;
}
return this.projectService.includePackageJsonAutoImports();
},
close() { },
log(_message) { },
sendPerformanceEvent(_kind, _durationMs) { },
toPath(fileName) {
return toPath(fileName, this.currentDirectory, this.projectService.toCanonicalFileName);
},
getGlobalTypingsCacheLocation() {
return undefined;
},
useSourceOfProjectReferenceRedirect() {
return !this.getCompilerOptions().disableSourceOfProjectReferenceRedirect;
},
onAutoImportProviderSettingsChanged() {
var _a;
if (this.autoImportProviderHost === false) {
this.autoImportProviderHost = undefined;
}
else {
(_a = this.autoImportProviderHost) === null || _a === void 0 ? void 0 : _a.markAsDirty();
}
},
};
}
exports.createProject = createProject;
function initProject(project, host, createLanguageService) {
const languageService = createLanguageService(host);
project.languageService = languageService;
project.program = languageService.getProgram();
return project;
}
exports.initProject = initProject;