@@ -57,6 +57,11 @@ class DependencyResolver {
|
|||||||
const { name, version } = spec;
|
const { name, version } = spec;
|
||||||
const key = `${name}@${version}`;
|
const key = `${name}@${version}`;
|
||||||
|
|
||||||
|
// Check if registry is configured
|
||||||
|
if (!this.registry) {
|
||||||
|
throw new Error('Registry not configured. Please set up the dependency resolver properly.');
|
||||||
|
}
|
||||||
|
|
||||||
// Check if already resolved
|
// Check if already resolved
|
||||||
if (this.resolved.has(key)) {
|
if (this.resolved.has(key)) {
|
||||||
return [this.resolved.get(key)];
|
return [this.resolved.get(key)];
|
||||||
|
|||||||
@@ -26,8 +26,24 @@ class PackageManager {
|
|||||||
this.config = new ConfigManager();
|
this.config = new ConfigManager();
|
||||||
this.logger = new Logger();
|
this.logger = new Logger();
|
||||||
|
|
||||||
|
// Configure resolver dependencies
|
||||||
|
this.resolver.setRegistry(this.registry);
|
||||||
|
this.resolver.setLockManager(this.lock);
|
||||||
|
|
||||||
this.projectRoot = this.findProjectRoot();
|
this.projectRoot = this.findProjectRoot();
|
||||||
this.globalRoot = path.join(require('os').homedir(), '.alepm');
|
this.globalRoot = path.join(require('os').homedir(), '.alepm');
|
||||||
|
|
||||||
|
this.initialized = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
async init() {
|
||||||
|
if (this.initialized) return;
|
||||||
|
|
||||||
|
await this.config.init();
|
||||||
|
await this.cache.init();
|
||||||
|
await this.storage.init();
|
||||||
|
|
||||||
|
this.initialized = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
findProjectRoot() {
|
findProjectRoot() {
|
||||||
@@ -43,7 +59,16 @@ class PackageManager {
|
|||||||
return process.cwd();
|
return process.cwd();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async ensureInitialized() {
|
||||||
|
if (!this.initialized) {
|
||||||
|
await this.init();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
async install(packages = [], options = {}) {
|
async install(packages = [], options = {}) {
|
||||||
|
// Ensure initialization
|
||||||
|
await this.ensureInitialized();
|
||||||
|
|
||||||
const spinner = ora('Analyzing dependencies...').start();
|
const spinner = ora('Analyzing dependencies...').start();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@@ -160,6 +185,8 @@ class PackageManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async uninstall(packages, options = {}) {
|
async uninstall(packages, options = {}) {
|
||||||
|
await this.ensureInitialized();
|
||||||
|
|
||||||
const spinner = ora('Uninstalling packages...').start();
|
const spinner = ora('Uninstalling packages...').start();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@@ -196,6 +223,8 @@ class PackageManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async update(packages = [], options = {}) {
|
async update(packages = [], options = {}) {
|
||||||
|
await this.ensureInitialized();
|
||||||
|
|
||||||
const spinner = ora('Checking for updates...').start();
|
const spinner = ora('Checking for updates...').start();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@@ -253,6 +282,8 @@ class PackageManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async search(query, options = {}) {
|
async search(query, options = {}) {
|
||||||
|
await this.ensureInitialized();
|
||||||
|
|
||||||
const spinner = ora(`Searching for "${query}"...`).start();
|
const spinner = ora(`Searching for "${query}"...`).start();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@@ -282,6 +313,8 @@ class PackageManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async info(packageName) {
|
async info(packageName) {
|
||||||
|
await this.ensureInitialized();
|
||||||
|
|
||||||
const spinner = ora(`Getting info for ${packageName}...`).start();
|
const spinner = ora(`Getting info for ${packageName}...`).start();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|||||||
Referencia en una nueva incidencia
Block a user