Изменения от Главреда ГитЖС | Changes of GitJS Glavred
This commit is contained in:
33
0000
33
0000
@@ -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🕸🎬.череда
|
||||
@@ -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");
|
||||
@@ -60,15 +60,9 @@
|
||||
ЗагрузитьМакетUIK = мир =>
|
||||
{
|
||||
var м = мир.модули.модульПоУказателю(УКАЗАТЕЛЬ_ЭТОГО_МОДУЛЯ);
|
||||
var префикс = ИМЯ_ЭТОГО_ФАЙЛА.substring(0, ИМЯ_ЭТОГО_ФАЙЛА.length - 3);
|
||||
мир.макет = {
|
||||
"структура": м.содержимое["/02🕸UIK🕸🙈.html"],
|
||||
"вид": м.содержимое["/02🕸UIK🕸🙈.css"],
|
||||
"структура": м.содержимое[префикс + "🙈.html"],
|
||||
"вид": м.содержимое[префикс + "🙈.css"],
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
|
||||
console.debug("обработали модуль UIK")
|
||||
|
||||
|
||||
|
||||
22
03🕸isomorphic-git_1.7.2🕸.js
Normal file
22
03🕸isomorphic-git_1.7.2🕸.js
Normal 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 };
|
||||
};
|
||||
2
03🕸isomorphic-git_1.7.2🕸.череда
Normal file
2
03🕸isomorphic-git_1.7.2🕸.череда
Normal file
@@ -0,0 +1,2 @@
|
||||
ручной пуск
|
||||
установить IsomorphicGit
|
||||
167
03🕸isomorphic-git_1.7.2🕸index.js
Normal file
167
03🕸isomorphic-git_1.7.2🕸index.js
Normal 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 };
|
||||
10
03🕸isomorphic-git_1.7.2🕸index.umd.min.js
vendored
Normal file
10
03🕸isomorphic-git_1.7.2🕸index.umd.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
2
03🕸isomorphic-git_1.7.2🕸lightning-fs.min.js
vendored
Normal file
2
03🕸isomorphic-git_1.7.2🕸lightning-fs.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
83
81🕸➕🕸.js
Normal file
83
81🕸➕🕸.js
Normal 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({
|
||||
"🎃": "шапка-кнопка-плюс",
|
||||
"💥": "кнопка плюс в шапке",
|
||||
"🍲": "➕",
|
||||
});
|
||||
мир.уведомить("изменили кнопки шапки");
|
||||
};
|
||||
11
81🕸➕🕸.череда
Normal file
11
81🕸➕🕸.череда
Normal file
@@ -0,0 +1,11 @@
|
||||
пуск амура
|
||||
создать кнопку плюс в шапке
|
||||
создать окно добавления хранилища
|
||||
задать прокси импорта по умолчанию
|
||||
|
||||
кнопка плюс в шапке
|
||||
отобразить окно добавления хранилища
|
||||
|
||||
кнопка импорта в окне добавления хранилища
|
||||
задать параметры импорта хранилища
|
||||
импортировать хранилище
|
||||
29
81🕸➕🕸🎬.js
29
81🕸➕🕸🎬.js
@@ -1,29 +0,0 @@
|
||||
ОтобразитьОкноДобавленияХранилища = мир =>
|
||||
{
|
||||
UIkit.modal($("#окно-добавление-хранилища")).show();
|
||||
};
|
||||
|
||||
|
||||
// // // //
|
||||
|
||||
|
||||
ДобавитьОкноДобавленияХранилища = мир =>
|
||||
{
|
||||
var м = мир.модули.модульПоУказателю(УКАЗАТЕЛЬ_ЭТОГО_МОДУЛЯ);
|
||||
var содержимое = м.содержимое["/81🕸➕🕸🙈.html"];
|
||||
$(document.body).prepend(содержимое);
|
||||
};
|
||||
|
||||
|
||||
// // // //
|
||||
|
||||
|
||||
ДобавитьКнопкуПлюсВШапку = мир =>
|
||||
{
|
||||
мир.кнопкиШапки.push({
|
||||
"🎃": "шапка-кнопка-плюс",
|
||||
"💥": "шапки кнопка плюс",
|
||||
"🍲": "➕",
|
||||
});
|
||||
мир.уведомить("изменили кнопки шапки");
|
||||
};
|
||||
@@ -1,6 +0,0 @@
|
||||
пуск амура
|
||||
добавить кнопку плюс в шапку
|
||||
добавить окно добавления хранилища
|
||||
шапки кнопка плюс
|
||||
отобразить окно добавления хранилища
|
||||
|
||||
@@ -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>
|
||||
Reference in New Issue
Block a user