mirror of
https://github.com/hexastack/hexabot
synced 2025-06-26 18:27:28 +00:00
fix: remove old way of handling extensions
This commit is contained in:
@@ -4,10 +4,6 @@ WORKDIR /app
|
||||
|
||||
COPY package*.json ./
|
||||
|
||||
COPY merge-extensions-deps.js ./
|
||||
|
||||
COPY src/extensions ./src/extensions
|
||||
|
||||
COPY patches ./patches
|
||||
|
||||
RUN npm ci
|
||||
@@ -22,8 +18,6 @@ WORKDIR /app
|
||||
|
||||
COPY package*.json ./
|
||||
|
||||
COPY --from=builder /app/merge-extensions-deps.js ./
|
||||
|
||||
COPY --from=builder /app/src/extensions ./src/extensions
|
||||
|
||||
COPY --from=builder /app/patches ./patches
|
||||
@@ -44,8 +38,6 @@ WORKDIR /app
|
||||
|
||||
COPY package*.json ./
|
||||
|
||||
COPY --from=builder /app/merge-extensions-deps.js ./
|
||||
|
||||
COPY --from=builder /app/src/extensions ./src/extensions
|
||||
|
||||
COPY --from=builder /app/patches ./patches
|
||||
|
||||
@@ -1,80 +0,0 @@
|
||||
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
||||
const fs = require('fs');
|
||||
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
||||
const path = require('path');
|
||||
|
||||
// Define the paths
|
||||
const rootPackageJsonPath = path.join(__dirname, 'package.json');
|
||||
const pluginsDir = path.join(__dirname, 'src', 'extensions', 'plugins');
|
||||
const channelsDir = path.join(__dirname, 'src', 'extensions', 'channels');
|
||||
const helpersDir = path.join(__dirname, 'src', 'extensions', 'helpers');
|
||||
|
||||
// Helper function to merge dependencies
|
||||
function mergeDependencies(rootDeps, pluginDeps) {
|
||||
return {
|
||||
...rootDeps,
|
||||
...Object.entries(pluginDeps).reduce((acc, [key, version]) => {
|
||||
if (!rootDeps[key]) {
|
||||
acc[key] = version;
|
||||
}
|
||||
return acc;
|
||||
}, {}),
|
||||
};
|
||||
}
|
||||
|
||||
// Read the root package.json
|
||||
const rootPackageJson = JSON.parse(
|
||||
fs.readFileSync(rootPackageJsonPath, 'utf-8'),
|
||||
);
|
||||
|
||||
// Initialize dependencies if not already present
|
||||
if (!rootPackageJson.dependencies) {
|
||||
rootPackageJson.dependencies = {};
|
||||
}
|
||||
|
||||
// Iterate over extension directories
|
||||
[
|
||||
...fs.readdirSync(pluginsDir),
|
||||
...fs.readdirSync(helpersDir),
|
||||
...fs.readdirSync(channelsDir),
|
||||
].forEach((pluginFolder) => {
|
||||
const pluginPackageJsonPath = path.join(
|
||||
pluginsDir,
|
||||
pluginFolder,
|
||||
'package.json',
|
||||
);
|
||||
|
||||
if (fs.existsSync(pluginPackageJsonPath)) {
|
||||
const pluginPackageJson = JSON.parse(
|
||||
fs.readFileSync(pluginPackageJsonPath, 'utf-8'),
|
||||
);
|
||||
|
||||
// Merge extension dependencies into root dependencies
|
||||
if (pluginPackageJson.dependencies) {
|
||||
rootPackageJson.dependencies = mergeDependencies(
|
||||
rootPackageJson.dependencies,
|
||||
pluginPackageJson.dependencies,
|
||||
);
|
||||
}
|
||||
|
||||
// Merge extension devDependencies into root devDependencies
|
||||
if (pluginPackageJson.devDependencies) {
|
||||
rootPackageJson.devDependencies = mergeDependencies(
|
||||
rootPackageJson.devDependencies,
|
||||
pluginPackageJson.devDependencies,
|
||||
);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// Write the updated root package.json
|
||||
fs.writeFileSync(
|
||||
rootPackageJsonPath,
|
||||
JSON.stringify(rootPackageJson, null, 2),
|
||||
'utf-8',
|
||||
);
|
||||
|
||||
// eslint-disable-next-line no-console
|
||||
console.log(
|
||||
'Dependencies from extensions have been merged into the root package.json',
|
||||
);
|
||||
@@ -6,7 +6,6 @@
|
||||
"author": "Hexastack",
|
||||
"license": "AGPL-3.0-only",
|
||||
"scripts": {
|
||||
"preinstall": "node merge-extensions-deps.js",
|
||||
"postinstall": "patch-package",
|
||||
"build:clean": "rm -rf src/.hexabot",
|
||||
"build:channels": "mkdir -p src/.hexabot/channels && find node_modules/ -name 'hexabot-channel-*' -exec cp -R {} src/.hexabot/channels/ \\;",
|
||||
|
||||
@@ -94,7 +94,7 @@ export class BlockController extends BaseController<
|
||||
try {
|
||||
if (!pluginName) {
|
||||
throw new BadRequestException(
|
||||
'Plugin id must be supplied as a query param',
|
||||
'Plugin name must be supplied as a query param',
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user