|
@@ -25,23 +25,11 @@
|
|
|
|
|
|
|
|
export { pushGitHub };
|
|
export { pushGitHub };
|
|
|
|
|
|
|
|
-let pendingPush;
|
|
|
|
|
-
|
|
|
|
|
async function pushGitHub(token, userName, repositoryName, branchName, path, content) {
|
|
async function pushGitHub(token, userName, repositoryName, branchName, path, content) {
|
|
|
- while (pendingPush) {
|
|
|
|
|
- await pendingPush;
|
|
|
|
|
- }
|
|
|
|
|
const controller = new AbortController();
|
|
const controller = new AbortController();
|
|
|
- pendingPush = async () => {
|
|
|
|
|
- try {
|
|
|
|
|
- await createContent({ path, content }, controller.signal);
|
|
|
|
|
- } finally {
|
|
|
|
|
- pendingPush = null;
|
|
|
|
|
- }
|
|
|
|
|
- };
|
|
|
|
|
return {
|
|
return {
|
|
|
cancelPush: () => controller.abort(),
|
|
cancelPush: () => controller.abort(),
|
|
|
- pushPromise: pendingPush()
|
|
|
|
|
|
|
+ pushPromise: createContent({ path, content }, controller.signal)
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
async function createContent({ path, content, message = "" }, signal) {
|
|
async function createContent({ path, content, message = "" }, signal) {
|