-
Notifications
You must be signed in to change notification settings - Fork 6
Closed
Description
{
"error": "Cannot read properties of undefined (reading 'changelogs')"
}import axios from 'axios';
import $form_data from 'form-data';
import { createReadStream } from 'node:fs';
const login = async (email, password) => {
const response = await axios.post('https://acode.app/api/login', { email, password }).catch((err) => {
console.log(err.response.data);
return;
});
const token = response?.headers['set-cookie'][0].split(';')[0].split('=')[1];
if (!token) return null;
return token;
};
const upload = async (_token) => {
const form = new $form_data();
form.append('plugin', createReadStream('.acode/plugin.zip'));
const response = await axios.put('https://acode.app/api/plugin', form, {
headers: {
...form.getHeaders(),
'Cookie': `token=${_token}`,
},
}).catch((err) => {
console.log(err.response.data);
return;
});
console.log(response);
};
const publish = async () => {
const _token = await login(process.env.ACODE_EMAIL, process.env.ACODE_PASSWORD);
if (_token) {
await upload(_token);
}
};
publish();{
"id": "sebastianjnuwu.symbols.icons",
"name": "Symbols Icons",
"main": "main.js",
"version": "1.0.5",
"license": "Apache-2.0",
"readme": "readme.md",
"minVersionCode": 289,
"icon": "icon.png",
"files": [],
"price": "160",
"changelogs": "changelogs.md",
"keywords": [
"icons",
"symbols",
"symbols-icons",
"acode",
"ui-icons",
"developer-tools",
"custom-icons",
"design-assets",
"code-editor",
"productivity"
],
"contributors": [],
"author": {
"name": "sebastianjnuwu",
"email": "sebastianjnuwu@gmail.com",
"url": "https://github.com/sebastianjnuwu/acode-plugins/tree/acode/packages/symbols-icons",
"github": "sebastianjnuwu"
}
}import path from "node:path";
import colors from "colors";
import fs from "node:fs";
import jszip from "jszip";
import { performance } from "node:perf_hooks";
const zip = new jszip();
/**
* Paths
*/
const ChangePath = path.join("./changelogs.md");
const iconPath = path.join("./icon.png");
const jsonPath = path.join("./plugin.json");
const buildFolder = path.join("./.acode/build");
const zipOutput = path.join("./.acode/plugin.zip");
let readmePath = path.join("./readme.md");
if (!fs.existsSync(readmePath)) {
readmePath = path.join("./README.md");
}
/**
* Adiciona arquivos essenciais ao ZIP.
*/
try {
zip.file("changelogs.md", fs.readFileSync(ChangePath));
zip.file("icon.png", fs.readFileSync(iconPath));
zip.file("plugin.json", fs.readFileSync(jsonPath));
zip.file("readme.md", fs.readFileSync(readmePath));
console.log(colors.green("• Essential files added to the ZIP."));
} catch (err) {
console.error(colors.red(`• Error adding essential files: ${err.message}`));
process.exit(1);
}
/**
* Lê arquivos do diretório build.
*/
async function loadFile(root, folder) {
if (!fs.existsSync(folder)) {
console.error(colors.red(`• Build folder does not exist: ${folder}`));
process.exit(1);
}
try {
const distFiles = fs.readdirSync(folder);
console.log(colors.cyan(`• Reading files from folder: ${folder}`));
for (const file of distFiles) {
const filePath = path.join(folder, file);
const stat = fs.statSync(filePath);
if (stat.isDirectory()) {
zip.folder(file);
await loadFile(path.join(root, file), filePath);
continue;
}
zip.file(path.join(root, file), fs.readFileSync(filePath));
console.log(colors.green(`• File added: ${filePath} (${stat.size} bytes)`));
}
} catch (err) {
console.error(colors.red(`• Error reading files: ${err.message}`));
process.exit(1);
}
}
/**
* Gera o arquivo ZIP.
*/
(async () => {
console.time("Total process time");
const startTime = performance.now();
try {
console.log(colors.blue("• Starting to load files..."));
await loadFile("", buildFolder);
zip
.generateNodeStream({ type: "nodebuffer", streamFiles: true })
.pipe(fs.createWriteStream(zipOutput))
.on("finish", () => {
const endTime = performance.now();
console.log(colors.brightGreen(`• ZIP file created at: ${zipOutput}`));
console.log(colors.green(`• Total time: ${(endTime - startTime) / 1000} seconds.`));
console.timeEnd("Total process time");
})
.on("error", (err) => {
console.error(colors.red(`• Error writing ZIP: ${err.message}`));
});
} catch (err) {
console.error(colors.red(`• Unexpected error: ${err.message}`));
process.exit(1);
}
})();Metadata
Metadata
Assignees
Labels
No labels