Skip to content

Commit ec8d1f5

Browse files
committed
feat: static files server
1 parent 59d7f28 commit ec8d1f5

4 files changed

Lines changed: 115 additions & 4 deletions

File tree

extensions/github1s/src/util/fetch.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,8 @@ export const fetch = (url: string, options?: RequestInit) => {
5555
})
5656
.catch(e => {
5757
if ((e.message.includes('rate limit exceeded'))) {
58-
vscode.window.showErrorMessage(e.message, 'I Have Github OAuth Token')
59-
.then((button) => { (button === 'I Have Github OAuth Token') && quickSetGitHubOAuthToken(); });
58+
vscode.window.showErrorMessage(e.message, 'I Have GitHub OAuth Token')
59+
.then((button) => { (button === 'I Have GitHub OAuth Token') && quickSetGitHubOAuthToken(); });
6060
} else if (e.message.includes('Bad credentials')) {
6161
vscode.window.showErrorMessage(e.message, 'Change Another Token')
6262
.then((button) => { (button === 'Change Another Token') && quickSetGitHubOAuthToken({ prompt: '' }); });

package.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@
99
"dependencies": {},
1010
"devDependencies": {
1111
"chokidar": "^3.5.1",
12-
"fs-extra": "^9.1.0"
12+
"fs-extra": "^9.1.0",
13+
"serve-handler": "^6.1.3"
1314
},
1415
"scripts": {
1516
"postinstall": "./scripts/postinstall.sh",
@@ -18,7 +19,7 @@
1819
"build": "./scripts/build.sh",
1920
"package": "./scripts/package.sh",
2021
"watch": "./scripts/watch.sh",
21-
"dev": "cd dist && python -mSimpleHTTPServer"
22+
"serve": "node ./scripts/serve-dist.js"
2223
},
2324
"keywords": [],
2425
"author": "",

scripts/serve-dist.js

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
#!/usr/bin/env node
2+
3+
const url = require('url');
4+
const fs = require('fs');
5+
const path = require('path');
6+
const http = require('http');
7+
const handler = require('serve-handler');
8+
9+
const APP_ROOT = path.join(__dirname, '..');
10+
const options = { public: path.join(APP_ROOT, 'dist'), cleanUrls: false, };
11+
12+
const server = http.createServer((request, response) => {
13+
const urlObj = url.parse(request.url);
14+
return fs.access(path.join(APP_ROOT, 'dist', urlObj.pathname), fs.constants.F_OK, (error) => {
15+
if (!error) return handler(request, response, options);
16+
return handler(request, response, { rewrites: [{ source: '*', destination: '/index.html' }], ...options });
17+
});
18+
});
19+
20+
server.listen(5000, () => {
21+
console.log('Running GitHub1s at http://localhost:5000');
22+
});

yarn.lock

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,18 +15,36 @@ at-least-node@^1.0.0:
1515
resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2"
1616
integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==
1717

18+
balanced-match@^1.0.0:
19+
version "1.0.0"
20+
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
21+
integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
22+
1823
binary-extensions@^2.0.0:
1924
version "2.2.0"
2025
resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d"
2126
integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==
2227

28+
brace-expansion@^1.1.7:
29+
version "1.1.11"
30+
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
31+
integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
32+
dependencies:
33+
balanced-match "^1.0.0"
34+
concat-map "0.0.1"
35+
2336
braces@~3.0.2:
2437
version "3.0.2"
2538
resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
2639
integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
2740
dependencies:
2841
fill-range "^7.0.1"
2942

43+
bytes@3.0.0:
44+
version "3.0.0"
45+
resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048"
46+
integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=
47+
3048
chokidar@^3.5.1:
3149
version "3.5.1"
3250
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a"
@@ -42,6 +60,23 @@ chokidar@^3.5.1:
4260
optionalDependencies:
4361
fsevents "~2.3.1"
4462

63+
concat-map@0.0.1:
64+
version "0.0.1"
65+
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
66+
integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
67+
68+
content-disposition@0.5.2:
69+
version "0.5.2"
70+
resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4"
71+
integrity sha1-DPaLud318r55YcOoUXjLhdunjLQ=
72+
73+
fast-url-parser@1.1.3:
74+
version "1.1.3"
75+
resolved "https://registry.yarnpkg.com/fast-url-parser/-/fast-url-parser-1.1.3.tgz#f4af3ea9f34d8a271cf58ad2b3759f431f0b318d"
76+
integrity sha1-9K8+qfNNiicc9YrSs3WfQx8LMY0=
77+
dependencies:
78+
punycode "^1.3.2"
79+
4580
fill-range@^7.0.1:
4681
version "7.0.1"
4782
resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
@@ -109,23 +144,76 @@ jsonfile@^6.0.1:
109144
optionalDependencies:
110145
graceful-fs "^4.1.6"
111146

147+
mime-db@~1.33.0:
148+
version "1.33.0"
149+
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db"
150+
integrity sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==
151+
152+
mime-types@2.1.18:
153+
version "2.1.18"
154+
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8"
155+
integrity sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==
156+
dependencies:
157+
mime-db "~1.33.0"
158+
159+
minimatch@3.0.4:
160+
version "3.0.4"
161+
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
162+
integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
163+
dependencies:
164+
brace-expansion "^1.1.7"
165+
112166
normalize-path@^3.0.0, normalize-path@~3.0.0:
113167
version "3.0.0"
114168
resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
115169
integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
116170

171+
path-is-inside@1.0.2:
172+
version "1.0.2"
173+
resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53"
174+
integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=
175+
176+
path-to-regexp@2.2.1:
177+
version "2.2.1"
178+
resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-2.2.1.tgz#90b617025a16381a879bc82a38d4e8bdeb2bcf45"
179+
integrity sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==
180+
117181
picomatch@^2.0.4, picomatch@^2.2.1:
118182
version "2.2.2"
119183
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad"
120184
integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==
121185

186+
punycode@^1.3.2:
187+
version "1.4.1"
188+
resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
189+
integrity sha1-wNWmOycYgArY4esPpSachN1BhF4=
190+
191+
range-parser@1.2.0:
192+
version "1.2.0"
193+
resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e"
194+
integrity sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=
195+
122196
readdirp@~3.5.0:
123197
version "3.5.0"
124198
resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e"
125199
integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==
126200
dependencies:
127201
picomatch "^2.2.1"
128202

203+
serve-handler@^6.1.3:
204+
version "6.1.3"
205+
resolved "https://registry.yarnpkg.com/serve-handler/-/serve-handler-6.1.3.tgz#1bf8c5ae138712af55c758477533b9117f6435e8"
206+
integrity sha512-FosMqFBNrLyeiIDvP1zgO6YoTzFYHxLDEIavhlmQ+knB2Z7l1t+kGLHkZIDN7UVWqQAmKI3D20A6F6jo3nDd4w==
207+
dependencies:
208+
bytes "3.0.0"
209+
content-disposition "0.5.2"
210+
fast-url-parser "1.1.3"
211+
mime-types "2.1.18"
212+
minimatch "3.0.4"
213+
path-is-inside "1.0.2"
214+
path-to-regexp "2.2.1"
215+
range-parser "1.2.0"
216+
129217
to-regex-range@^5.0.1:
130218
version "5.0.1"
131219
resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"

0 commit comments

Comments
 (0)