Изменения от Главреда ГитЖС | Changes of GitJS Glavred

This commit is contained in:
Главред | Glavred
2021-02-05 15:01:34 +03:00
parent 84bf901b76
commit 2f8c262382
23 changed files with 330 additions and 64 deletions

33
0000
View File

@@ -2,23 +2,28 @@
0.1.0
https://git.opengamestudio.org/kornerr/AMYP
x /00🕸jquery🕸jquery-3.5.1.min.js
/01🕸uikit🕸uikit-icons.min.js
/01🕸uikit🕸uikit.min.css
/01🕸uikit🕸uikit.min.js
x /01🕸uikit🕸🎬.js
/01🕸uikit🕸🎬.череда
x /02🕸UIK🕸🎬.js
/02🕸UIK🕸🎬.череда
x /00🕸jquery_3.5.1🕸jquery-3.5.1.min.js
x /01🕸uikit_3.2.0🕸.js
/01🕸uikit_3.2.0🕸.череда
/01🕸uikit_3.2.0🕸uikit-icons.min.js
/01🕸uikit_3.2.0🕸uikit.min.css
/01🕸uikit_3.2.0🕸uikit.min.js
x /02🕸UIK🕸.js
/02🕸UIK🕸.череда
/02🕸UIK🕸🙈.css
/02🕸UIK🕸🙈.html
x /70🕸механика🕸🎬.js
/70🕸механика🕸🎬.череда
x /80🕸морда🕸🎬.js
/80🕸морда🕸🎬.череда
x /03🕸isomorphic-git_1.7.2🕸.js
/03🕸isomorphic-git_1.7.2🕸.череда
/03🕸isomorphic-git_1.7.2🕸index.js
/03🕸isomorphic-git_1.7.2🕸index.umd.min.js
/03🕸isomorphic-git_1.7.2🕸lightning-fs.min.js
x /70🕸механика🕸.js
/70🕸механика🕸.череда
x /80🕸морда🕸.js
/80🕸морда🕸.череда
x /80🕸морда🕸📖.js
x /81🕸🕸🎬.js
/81🕸🕸🎬.череда
x /81🕸🕸.js
/81🕸🕸.череда
/81🕸🕸🙈.html
x /90🕸🎬.js
/90🕸🎬.череда

View File

@@ -1,10 +1,11 @@
УстановитьUIkit = мир =>
{
var м = мир.модули.модульПоУказателю(УКАЗАТЕЛЬТОГО_МОДУЛЯ);
var css = м.содержимое["/01🕸uikit🕸uikit.min.css"];
var js = м.содержимое["/01🕸uikit🕸uikit.min.js"];
var iconsJS = м.содержимое["/01🕸uikit🕸uikit-icons.min.js"];
var префикс = ИМЯТОГОАЙЛА.substring(0, ИМЯТОГОАЙЛА.length - 3);
var css = м.содержимое[префикс + "uikit.min.css"];
var js = м.содержимое[префикс + "uikit.min.js"];
var iconsJS = м.содержимое[префикс + "uikit-icons.min.js"];
// Применить стиль.
var style = document.createElement("style");

View File

@@ -60,15 +60,9 @@
ЗагрузитьМакетUIK = мир =>
{
var м = мир.модули.модульПоУказателю(УКАЗАТЕЛЬТОГО_МОДУЛЯ);
var префикс = ИМЯТОГОАЙЛА.substring(0, ИМЯТОГОАЙЛА.length - 3);
мир.макет = {
"структура": м.содержимое["/02🕸UIK🕸🙈.html"],
"вид": м.содержимое["/02🕸UIK🕸🙈.css"],
"структура": м.содержимое[префикс + "🙈.html"],
"вид": м.содержимое[префикс + "🙈.css"],
};
};
console.debug("обработали модуль UIK")

View File

@@ -0,0 +1,22 @@
УстановитьIsomorphicGit = мир =>
{
var м = мир.модули.модульПоУказателю(УКАЗАТЕЛЬТОГО_МОДУЛЯ);
var префикс = ИМЯТОГОАЙЛА.substring(0, ИМЯТОГОАЙЛА.length - 3);
var isogit = м.содержимое[префикс + "index.umd.min.js"];
var http = м.содержимое[префикс + "index.js"];
var lfs = м.содержимое[префикс + "lightning-fs.min.js"];
function загрузитьСкрипт(код)
{
var скрипт = document.createElement("script");
скрипт.innerHTML = код;
document.body.appendChild(скрипт);
}
загрузитьСкрипт(lfs);
загрузитьСкрипт(isogit);
eval(http);
мир.гитHTTP = { request };
};

View File

@@ -0,0 +1,2 @@
ручной пуск
установить IsomorphicGit

View File

@@ -0,0 +1,167 @@
// https://unpkg.com/isomorphic-git@1.7.2/http/web/index.js
/**
* @typedef {Object} GitProgressEvent
* @property {string} phase
* @property {number} loaded
* @property {number} total
*/
/**
* @callback ProgressCallback
* @param {GitProgressEvent} progress
* @returns {void | Promise<void>}
*/
/**
* @typedef {Object} GitHttpRequest
* @property {string} url - The URL to request
* @property {string} [method='GET'] - The HTTP method to use
* @property {Object<string, string>} [headers={}] - Headers to include in the HTTP request
* @property {AsyncIterableIterator<Uint8Array>} [body] - An async iterator of Uint8Arrays that make up the body of POST requests
* @property {ProgressCallback} [onProgress] - Reserved for future use (emitting `GitProgressEvent`s)
* @property {object} [signal] - Reserved for future use (canceling a request)
*/
/**
* @typedef {Object} GitHttpResponse
* @property {string} url - The final URL that was fetched after any redirects
* @property {string} [method] - The HTTP method that was used
* @property {Object<string, string>} [headers] - HTTP response headers
* @property {AsyncIterableIterator<Uint8Array>} [body] - An async iterator of Uint8Arrays that make up the body of the response
* @property {number} statusCode - The HTTP status code
* @property {string} statusMessage - The HTTP status message
*/
/**
* @callback HttpFetch
* @param {GitHttpRequest} request
* @returns {Promise<GitHttpResponse>}
*/
/**
* @typedef {Object} HttpClient
* @property {HttpFetch} request
*/
// Convert a value to an Async Iterator
// This will be easier with async generator functions.
function fromValue(value) {
let queue = [value];
return {
next() {
return Promise.resolve({ done: queue.length === 0, value: queue.pop() })
},
return() {
queue = [];
return {}
},
[Symbol.asyncIterator]() {
return this
},
}
}
function getIterator(iterable) {
if (iterable[Symbol.asyncIterator]) {
return iterable[Symbol.asyncIterator]()
}
if (iterable[Symbol.iterator]) {
return iterable[Symbol.iterator]()
}
if (iterable.next) {
return iterable
}
return fromValue(iterable)
}
// Currently 'for await' upsets my linters.
async function forAwait(iterable, cb) {
const iter = getIterator(iterable);
while (true) {
const { value, done } = await iter.next();
if (value) await cb(value);
if (done) break
}
if (iter.return) iter.return();
}
async function collect(iterable) {
let size = 0;
const buffers = [];
// This will be easier once `for await ... of` loops are available.
await forAwait(iterable, value => {
buffers.push(value);
size += value.byteLength;
});
const result = new Uint8Array(size);
let nextIndex = 0;
for (const buffer of buffers) {
result.set(buffer, nextIndex);
nextIndex += buffer.byteLength;
}
return result
}
// Convert a web ReadableStream (not Node stream!) to an Async Iterator
// adapted from https://jakearchibald.com/2017/async-iterators-and-generators/
function fromStream(stream) {
// Use native async iteration if it's available.
if (stream[Symbol.asyncIterator]) return stream
const reader = stream.getReader();
return {
next() {
return reader.read()
},
return() {
reader.releaseLock();
return {}
},
[Symbol.asyncIterator]() {
return this
},
}
}
/* eslint-env browser */
/**
* HttpClient
*
* @param {GitHttpRequest} request
* @returns {Promise<GitHttpResponse>}
*/
async function request({
onProgress,
url,
method = 'GET',
headers = {},
body,
}) {
// streaming uploads aren't possible yet in the browser
if (body) {
body = await collect(body);
}
const res = await fetch(url, { method, headers, body });
const iter =
res.body && res.body.getReader
? fromStream(res.body)
: [new Uint8Array(await res.arrayBuffer())];
// convert Header object to ordinary JSON
headers = {};
for (const [key, value] of res.headers.entries()) {
headers[key] = value;
}
return {
url: res.url,
method: res.method,
statusCode: res.status,
statusMessage: res.statusText,
body: iter,
headers: headers,
}
}
var index = { request };
//export default index;
//export { request };

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

83
81🕸➕🕸.js Normal file
View File

@@ -0,0 +1,83 @@
ИмпортироватьХранилище = мир =>
{
(async() => {
await git.clone({
fs: мир.импортХранилища.фс,
http: мир.гитHTTP,
dir: мир.импортХранилища.директория,
url: мир.импортХранилища.хранилище,
corsProxy: мир.импортХранилища.прокси,
});
//мир.уведомить("склонировали хранилище");
})();
};
// // // //
ЗадатьПараметрыИмпортаХранилища = мир =>
{
const хранилище = $(`#окно-добавление-хранилища-гит-хранилище`).val();
const прокси = $(`#окно-добавление-хранилища-гит-прокси`).val();
const имяФС = "git_" + хранилище;
мир.импортХранилища = {
"хранилище": хранилище,
"фс": new LightningFS(имяФС),
"директория": "/",
"прокси": прокси,
};
};
// // // //
ОтобразитьОкноДобавленияХранилища = мир =>
{
UIkit.modal($("#окно-добавление-хранилища")).show();
};
// // // //
ЗадатьПроксиИмпортаПоУмолчанию = мир =>
{
$(`#окно-добавление-хранилища-гит-прокси`).val("https://cors.isomorphic-git.org");
};
// // // //
СоздатьОкноДобавленияХранилища = мир =>
{
var м = мир.модули.модульПоУказателю(УКАЗАТЕЛЬТОГО_МОДУЛЯ);
var префикс = ИМЯТОГОАЙЛА.substring(0, ИМЯТОГОАЙЛА.length - 3);
var содержимое = м.содержимое[префикс + "🙈.html"];
$(document.body).prepend(содержимое);
$(`#окно-добавление-хранилища-гит-учётка`).submit(function(событие) {
событие.preventDefault();
мир.уведомить("кнопка импорта в окне добавления хранилища");
});
};
// // // //
СоздатьКнопкуПлюсВШапке = мир =>
{
мир.кнопкиШапки.push({
"🎃": "шапка-кнопка-плюс",
"💥": "кнопка плюс в шапке",
"🍲": "",
});
мир.уведомить("изменили кнопки шапки");
};

View File

@@ -0,0 +1,11 @@
пуск амура
создать кнопку плюс в шапке
создать окно добавления хранилища
задать прокси импорта по умолчанию
кнопка плюс в шапке
отобразить окно добавления хранилища
кнопка импорта в окне добавления хранилища
задать параметры импорта хранилища
импортировать хранилище

View File

@@ -1,29 +0,0 @@
ОтобразитьОкноДобавленияХранилища = мир =>
{
UIkit.modal($("#окно-добавление-хранилища")).show();
};
// // // //
ДобавитьОкноДобавленияХранилища = мир =>
{
var м = мир.модули.модульПоУказателю(УКАЗАТЕЛЬТОГО_МОДУЛЯ);
var содержимое = м.содержимое["/81🕸🕸🙈.html"];
$(document.body).prepend(содержимое);
};
// // // //
ДобавитьКнопкуПлюсВШапку = мир =>
{
мир.кнопкиШапки.push({
"🎃": "шапка-кнопка-плюс",
"💥": "шапки кнопка плюс",
"🍲": "",
});
мир.уведомить("изменили кнопки шапки");
};

View File

@@ -1,6 +0,0 @@
пуск амура
добавить кнопку плюс в шапку
добавить окно добавления хранилища
шапки кнопка плюс
отобразить окно добавления хранилища

View File

@@ -2,9 +2,13 @@
<div class="uk-modal-dialog">
<button class="uk-modal-close-default" type="button" uk-close></button>
<div class="uk-modal-header">
<h2 class="uk-modal-title">Добавить 添加 Add</h2>
<h2 class="uk-modal-title">Добавить 🕸 添加 🕸 Add</h2>
</div>
<div id="___окно-со-списком-модулей-список" class="uk-modal-body" uk-overflow-auto>
<form id="окно-добавление-хранилища-гит-учётка" class="uk-padding">
<input id="окно-добавление-хранилища-гит-прокси" class="uk-input uk-margin-small" type="text" placeholder="Прокси 🕸 代理 🕸 Proxy">
<input id="окно-добавление-хранилища-гит-хранилище" class="uk-input uk-margin-small" type="text" placeholder="Хранилище 🕸 存储库 🕸 Repository">
<button class="uk-button uk-button-primary uk-margin-small">Импортировать 🕸 导入 🕸 Import</button>
</form>
</div>
</div>
</div>