Run prettier through everything.
This commit is contained in:
@@ -1,50 +1,57 @@
|
||||
import { Octokit } from "@octokit/core";
|
||||
import Router from "next/router";
|
||||
import state from '../index';
|
||||
import { templateFileIds } from '../constants';
|
||||
import { Octokit } from '@octokit/core'
|
||||
import Router from 'next/router'
|
||||
import state from '../index'
|
||||
import { templateFileIds } from '../constants'
|
||||
|
||||
const octokit = new Octokit();
|
||||
const octokit = new Octokit()
|
||||
|
||||
/* Fetches Gist files from Githug Gists based on
|
||||
* gistId and stores the content in global state
|
||||
*/
|
||||
export const fetchFiles = (gistId: string) => {
|
||||
state.loading = true;
|
||||
state.loading = true
|
||||
if (gistId && !state.files.length) {
|
||||
state.logs.push({
|
||||
type: "log",
|
||||
message: `Fetching Gist with id: ${gistId}`,
|
||||
});
|
||||
type: 'log',
|
||||
message: `Fetching Gist with id: ${gistId}`
|
||||
})
|
||||
|
||||
octokit
|
||||
.request("GET /gists/{gist_id}", { gist_id: gistId })
|
||||
.request('GET /gists/{gist_id}', { gist_id: gistId })
|
||||
.then(async res => {
|
||||
if (!Object.values(templateFileIds).map(v => v.id).includes(gistId)) {
|
||||
if (
|
||||
!Object.values(templateFileIds)
|
||||
.map(v => v.id)
|
||||
.includes(gistId)
|
||||
) {
|
||||
return res
|
||||
}
|
||||
// in case of templates, fetch header file(s) and append to res
|
||||
try {
|
||||
const resHeader = await fetch(`${process.env.NEXT_PUBLIC_COMPILE_API_BASE_URL}/api/header-files`);
|
||||
const resHeader = await fetch(
|
||||
`${process.env.NEXT_PUBLIC_COMPILE_API_BASE_URL}/api/header-files`
|
||||
)
|
||||
if (resHeader.ok) {
|
||||
const resHeaderJson = await resHeader.json()
|
||||
const headerFiles: Record<string, { filename: string; content: string; language: string }> = {};
|
||||
const headerFiles: Record<
|
||||
string,
|
||||
{ filename: string; content: string; language: string }
|
||||
> = {}
|
||||
Object.entries(resHeaderJson).forEach(([key, value]) => {
|
||||
const fname = `${key}.h`;
|
||||
const fname = `${key}.h`
|
||||
headerFiles[fname] = { filename: fname, content: value as string, language: 'C' }
|
||||
})
|
||||
const files = {
|
||||
...res.data.files,
|
||||
...headerFiles
|
||||
};
|
||||
res.data.files = files;
|
||||
}
|
||||
res.data.files = files
|
||||
}
|
||||
} catch (err) {
|
||||
console.log(err)
|
||||
}
|
||||
|
||||
|
||||
|
||||
return res;
|
||||
return res
|
||||
// If you want to load templates from GIST instad, uncomment the code below and comment the code above.
|
||||
// return octokit.request("GET /gists/{gist_id}", { gist_id: templateFileIds.headers }).then(({ data: { files: headerFiles } }) => {
|
||||
// const files = { ...res.data.files, ...headerFiles }
|
||||
@@ -53,65 +60,65 @@ export const fetchFiles = (gistId: string) => {
|
||||
// return res
|
||||
// })
|
||||
})
|
||||
.then((res) => {
|
||||
.then(res => {
|
||||
if (res.data.files && Object.keys(res.data.files).length > 0) {
|
||||
const files = Object.keys(res.data.files).map((filename) => ({
|
||||
name: res.data.files?.[filename]?.filename || "untitled.c",
|
||||
language: res.data.files?.[filename]?.language?.toLowerCase() || "",
|
||||
content: res.data.files?.[filename]?.content || "",
|
||||
}));
|
||||
const files = Object.keys(res.data.files).map(filename => ({
|
||||
name: res.data.files?.[filename]?.filename || 'untitled.c',
|
||||
language: res.data.files?.[filename]?.language?.toLowerCase() || '',
|
||||
content: res.data.files?.[filename]?.content || ''
|
||||
}))
|
||||
// Sort files so that the source files are first
|
||||
// In case of other files leave the order as it its
|
||||
files.sort((a, b) => {
|
||||
const aBasename = a.name.split('.')?.[0];
|
||||
const aCext = a.name?.toLowerCase().endsWith('.c');
|
||||
const bBasename = b.name.split('.')?.[0];
|
||||
const bCext = b.name?.toLowerCase().endsWith('.c');
|
||||
const aBasename = a.name.split('.')?.[0]
|
||||
const aCext = a.name?.toLowerCase().endsWith('.c')
|
||||
const bBasename = b.name.split('.')?.[0]
|
||||
const bCext = b.name?.toLowerCase().endsWith('.c')
|
||||
// If a has c extension and b doesn't move a up
|
||||
if (aCext && !bCext) {
|
||||
return -1;
|
||||
return -1
|
||||
}
|
||||
if (!aCext && bCext) {
|
||||
return 1
|
||||
}
|
||||
// Otherwise fallback to default sorting based on basename
|
||||
if (aBasename > bBasename) {
|
||||
return 1;
|
||||
return 1
|
||||
}
|
||||
if (bBasename > aBasename) {
|
||||
return -1;
|
||||
return -1
|
||||
}
|
||||
return 0;
|
||||
return 0
|
||||
})
|
||||
state.loading = false;
|
||||
state.loading = false
|
||||
if (files.length > 0) {
|
||||
state.logs.push({
|
||||
type: "success",
|
||||
message: "Fetched successfully ✅",
|
||||
});
|
||||
state.files = files;
|
||||
state.gistId = gistId;
|
||||
state.gistName = Object.keys(res.data.files)?.[0] || "untitled";
|
||||
state.gistOwner = res.data.owner?.login;
|
||||
return;
|
||||
type: 'success',
|
||||
message: 'Fetched successfully ✅'
|
||||
})
|
||||
state.files = files
|
||||
state.gistId = gistId
|
||||
state.gistName = Object.keys(res.data.files)?.[0] || 'untitled'
|
||||
state.gistOwner = res.data.owner?.login
|
||||
return
|
||||
} else {
|
||||
// Open main modal if now files
|
||||
state.mainModalOpen = true;
|
||||
state.mainModalOpen = true
|
||||
}
|
||||
return Router.push({ pathname: "/develop" });
|
||||
return Router.push({ pathname: '/develop' })
|
||||
}
|
||||
state.loading = false;
|
||||
state.loading = false
|
||||
})
|
||||
.catch((err) => {
|
||||
.catch(err => {
|
||||
// console.error(err)
|
||||
state.loading = false;
|
||||
state.loading = false
|
||||
state.logs.push({
|
||||
type: "error",
|
||||
message: `Couldn't find Gist with id: ${gistId}`,
|
||||
});
|
||||
return;
|
||||
});
|
||||
return;
|
||||
type: 'error',
|
||||
message: `Couldn't find Gist with id: ${gistId}`
|
||||
})
|
||||
return
|
||||
})
|
||||
return
|
||||
}
|
||||
state.loading = false;
|
||||
};
|
||||
state.loading = false
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user