mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-18 10:31:15 +00:00
feat(cli): Enable community nodes based on npm availability (#3871)
* ⚡ Detect npm availability * 📘 Expand interfaces * ⚡ Adjust store * 🎨 Replace button with warning
This commit is contained in:
@@ -33,6 +33,7 @@
|
||||
import express from 'express';
|
||||
import { readFileSync, promises } from 'fs';
|
||||
import { readFile } from 'fs/promises';
|
||||
import { exec as callbackExec } from 'child_process';
|
||||
import _, { cloneDeep } from 'lodash';
|
||||
import { dirname as pathDirname, join as pathJoin, resolve as pathResolve } from 'path';
|
||||
import {
|
||||
@@ -86,6 +87,7 @@ import jwks from 'jwks-rsa';
|
||||
import timezones from 'google-timezones-json';
|
||||
import parseUrl from 'parseurl';
|
||||
import promClient, { Registry } from 'prom-client';
|
||||
import { promisify } from 'util';
|
||||
import * as Queue from './Queue';
|
||||
import {
|
||||
ActiveExecutions,
|
||||
@@ -167,6 +169,8 @@ import { loadPublicApiVersions } from './PublicApi';
|
||||
|
||||
require('body-parser-xml')(bodyParser);
|
||||
|
||||
const exec = promisify(callbackExec);
|
||||
|
||||
export const externalHooks: IExternalHooksClass = ExternalHooks();
|
||||
|
||||
class App {
|
||||
@@ -330,6 +334,7 @@ class App {
|
||||
onboardingCallPromptEnabled: config.getEnv('onboardingCallPrompt.enabled'),
|
||||
executionMode: config.getEnv('executions.mode'),
|
||||
communityNodesEnabled: config.getEnv('nodes.communityPackages.enabled'),
|
||||
isNpmAvailable: false,
|
||||
};
|
||||
}
|
||||
|
||||
@@ -374,6 +379,10 @@ class App {
|
||||
promClient.collectDefaultMetrics({ register });
|
||||
}
|
||||
|
||||
this.frontendSettings.isNpmAvailable = await exec('npm --version')
|
||||
.then(() => true)
|
||||
.catch(() => false);
|
||||
|
||||
this.versions = await GenericHelpers.getVersions();
|
||||
this.frontendSettings.versionCli = this.versions.cli;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user