Skip to content

Commit

Permalink
fix: no requires NAME and AVATAR if app is site
Browse files Browse the repository at this point in the history
  • Loading branch information
Gorniaky committed Sep 22, 2022
1 parent 3a0232e commit 3aa13ba
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 8 deletions.
15 changes: 9 additions & 6 deletions src/commands/upload.ts
@@ -1,9 +1,9 @@
import { RESTPostApiUploadResult, Routes } from "@discloudapp/api-types/v2";
import { DiscloudConfig, RESTPostApiUploadResult, Routes } from "@discloudapp/api-types/v2";
import FormData from "form-data";
import { GluegunCommand, GluegunToolbox } from "gluegun";
import { exit } from "node:process";
import { apidiscloud, config, configToObj, configUpdate, getMissingValues, getNotIngnoredFiles, makeZipFromFileList, RateLimit, readDiscloudConfig, verifyRequiredFiles } from "../util";
import { FileExt, requiredDiscloudConfigProps } from "../util/constants";
import { FileExt, mapDiscloudConfigProps, requiredDiscloudConfigProps } from "../util/constants";

export default new class Upload implements GluegunCommand {
name = "upload";
Expand All @@ -28,12 +28,15 @@ export default new class Upload implements GluegunCommand {
if (!filesystem.exists(parameters.first))
return print.error(`${parameters.first} file does not exists.`);
} else {
const dConfig = configToObj<string>(readDiscloudConfig(parameters.first)!);
const dConfig = <DiscloudConfig>configToObj<any>(readDiscloudConfig(parameters.first)!);

const missing = getMissingValues(dConfig, requiredDiscloudConfigProps);
const missing = getMissingValues(dConfig, requiredDiscloudConfigProps[dConfig.TYPE]);

if (missing.length)
return print.error(`${missing[0]} param is missing from discloud.config`);
if (missing.length) {
const missingProp = mapDiscloudConfigProps[dConfig.TYPE]?.[missing[0]] ?? missing[0];

return print.error(`${missingProp} param is missing from discloud.config`);
}

const fileExt = <`${FileExt}`>dConfig.MAIN.split(".").pop();
if (!verifyRequiredFiles(parameters.first, fileExt, dConfig.MAIN)) return;
Expand Down
11 changes: 10 additions & 1 deletion src/util/constants.ts
Expand Up @@ -43,7 +43,16 @@ export const required_files = {
ts: ["package.json"],
};

export const requiredDiscloudConfigProps = ["MAIN", "NAME", "TYPE", "RAM", "VERSION"];
export const mapDiscloudConfigProps = <Record<string, Record<string, string>>>{
site: {
ID: "subdomain",
},
};

export const requiredDiscloudConfigProps = {
bot: ["MAIN", "NAME", "TYPE", "RAM", "VERSION"],
site: ["ID", "MAIN", "TYPE", "RAM", "VERSION"],
};

export const ModPermissions = {
backup_app: 1,
Expand Down
2 changes: 1 addition & 1 deletion src/util/index.ts
Expand Up @@ -26,7 +26,7 @@ export const apidiscloud = http.create({
},
});

export function configToObj<T = number | string>(s: string): Record<string, T> {
export function configToObj<T = boolean | number | string>(s: string): Record<string, T> {
if (typeof s !== "string") return {};
return Object.fromEntries(s.split(/\r?\n/).map(a => a.split("=")));
}
Expand Down

0 comments on commit 3aa13ba

Please sign in to comment.