Skip to content

Commit ad36baa

Browse files
使用github page作为载体
1 parent 316d995 commit ad36baa

File tree

12 files changed

+3882
-1
lines changed

12 files changed

+3882
-1
lines changed

.editorconfig

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
root = true
2+
3+
[*]
4+
end_of_line = lf
5+
insert_final_newline = true
6+
7+
[*.{js,json,yml}]
8+
charset = utf-8
9+
indent_style = space
10+
indent_size = 2

.gitattributes

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
/.yarn/** linguist-vendored
2+
/.yarn/releases/* binary
3+
/.yarn/plugins/**/* binary
4+
/.pnp.* binary linguist-generated

.vscode/launch.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{
2+
"configurations": [
3+
{
4+
"name": "Launch Edge",
5+
"request": "launch",
6+
"type": "msedge",
7+
"url": "http://localhost:54220",
8+
"webRoot": "${workspaceFolder}",
9+
"preLaunchTask": "dev"
10+
}
11+
]
12+
}

.vscode/tasks.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{
2+
"version": "2.0.0",
3+
"tasks": [
4+
{
5+
"label": "dev",
6+
"isBackground": true,
7+
"type": "npm",
8+
"script": "dev",
9+
"problemMatcher": "$ts-webpack-watch"
10+
}
11+
]
12+
}

.yarnrc.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
nodeLinker: node-modules

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
# lg-admin-extend
1+
# lg-admin-extend

docs/favicon.ico

50.1 KB
Binary file not shown.

docs/index.html

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<!doctype html>
2+
<html>
3+
<head>
4+
<title>Luogu Admin Extend</title>
5+
<link rel="icon" href="./favicon.ico" />
6+
<script>
7+
if ('serviceWorker' in navigator)
8+
window.addEventListener('load', () =>
9+
navigator.serviceWorker.register('./service-worker.js')
10+
);
11+
</script>
12+
</head>
13+
<body>
14+
<div id="app"></div>
15+
</body>
16+
</html>

docs/service-worker.js

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
// @ts-check
2+
/// <reference types="serviceworker" />
3+
4+
const CacheName = 'v0';
5+
6+
self.addEventListener(
7+
'install',
8+
/**@param {ExtendableEvent} e*/
9+
e => {
10+
e.waitUntil(caches.open(CacheName));
11+
}
12+
);
13+
14+
const putInCache = async (
15+
/** @type {Request} */ request,
16+
/** @type {Response} */ response
17+
) => {
18+
if ((x => x !== 'http:' && x !== 'https:')(new URL(request.url).protocol))
19+
return;
20+
const cache = await caches.open(CacheName);
21+
await cache.put(request, response);
22+
};
23+
24+
self.addEventListener(
25+
'fetch',
26+
/**@param {FetchEvent} e */
27+
e =>
28+
e.respondWith(
29+
new Promise(async resolve => {
30+
let flag = false;
31+
const responseFromCache = await caches.match(e.request);
32+
if (responseFromCache) resolve(responseFromCache), (flag = true);
33+
try {
34+
const responseFromNetwork = await fetch(e.request);
35+
putInCache(e.request, responseFromNetwork.clone());
36+
if (!flag) resolve(responseFromNetwork), (flag = true);
37+
} catch (err) {
38+
console.error('Error on service-worker', err);
39+
if (!flag)
40+
resolve(
41+
new Response('Network error happened', {
42+
status: 408,
43+
headers: { 'Content-Type': 'text/plain' }
44+
})
45+
),
46+
(flag = true);
47+
}
48+
})
49+
)
50+
);

package.json

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
{
2+
"name": "lg-admin-extend",
3+
"author": "Mr. Python",
4+
"repository": "https://github.com/Mr-Python-in-China/lg-admin-extend.git",
5+
"license": "LGPL-2.1-or-later",
6+
"version": "0.0.0-dev",
7+
"packageManager": "[email protected]",
8+
"scripts": {
9+
"dev": "webpack serve",
10+
"prettier:check": "prettier -c .",
11+
"prettier:write": "prettier -w ."
12+
},
13+
"devDependencies": {
14+
"@types/serviceworker": "^0.0.86",
15+
"prettier": "^3.3.0",
16+
"typescript": "^5.4.5",
17+
"webpack": "^5.91.0",
18+
"webpack-cli": "^5.1.4",
19+
"webpack-dev-server": "^5.0.4"
20+
},
21+
"prettier": {
22+
"printWidth": 80,
23+
"tabWidth": 2,
24+
"useTabs": false,
25+
"semi": true,
26+
"singleQuote": true,
27+
"trailingComma": "none",
28+
"bracketSpacing": true,
29+
"arrowParens": "avoid"
30+
}
31+
}

0 commit comments

Comments
 (0)