Skip to content

Commit 6ed0070

Browse files
yamajikcode-asher
authored andcommitted
Feature/relative url (#307)
* resrouce relative url * add url pathname for require.toUrl (fix webview url) * rest resrouce relative url * fix resource url * ignore .vscode
1 parent d9ba232 commit 6ed0070

File tree

4 files changed

+14
-8
lines changed

4 files changed

+14
-8
lines changed

.gitignore

+2-1
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,5 @@ dist
44
out
55
.DS_Store
66
release
7-
.cache
7+
.vscode
8+
.cache

packages/ide/src/fill/electron.ts

+9-5
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,8 @@ const newCreateElement = <K extends keyof HTMLElementTagNameMap>(tagName: K): HT
4545
},
4646
set: (value: string): void => {
4747
if (value) {
48-
value = value.replace(/file:\/\//g, "/resource");
48+
const resourceBaseUrl = location.pathname.replace(/\/$/, "") + "/resource";
49+
value = value.replace(/file:\/\//g, resourceBaseUrl);
4950
}
5051
oldSrc!.set!.call(img, value);
5152
},
@@ -66,7 +67,8 @@ const newCreateElement = <K extends keyof HTMLElementTagNameMap>(tagName: K): HT
6667
},
6768
set: (value: string): void => {
6869
if (value) {
69-
value = value.replace(/file:\/\//g, "/resource");
70+
const resourceBaseUrl = location.pathname.replace(/\/$/, "") + "/resource";
71+
value = value.replace(/file:\/\//g, resourceBaseUrl);
7072
}
7173
oldInnerHtml!.set!.call(style, value);
7274
},
@@ -80,7 +82,8 @@ const newCreateElement = <K extends keyof HTMLElementTagNameMap>(tagName: K): HT
8082
if (sheet && !overridden) {
8183
const oldInsertRule = sheet.insertRule;
8284
sheet.insertRule = (rule: string, index?: number): void => {
83-
rule = rule.replace(/file:\/\//g, "/resource");
85+
const resourceBaseUrl = location.pathname.replace(/\/$/, "") + "/resource";
86+
rule = rule.replace(/file:\/\//g, resourceBaseUrl);
8487
oldInsertRule.call(sheet, rule, index);
8588
};
8689
overridden = true;
@@ -145,8 +148,9 @@ const newCreateElement = <K extends keyof HTMLElementTagNameMap>(tagName: K): HT
145148
(view as any).send = (channel: string, ...args: any[]): void => { // tslint:disable-line no-any
146149
if (args[0] && typeof args[0] === "object" && args[0].contents) {
147150
// TODO
148-
args[0].contents = (args[0].contents as string).replace(/"(file:\/\/[^"]*)"/g, (m1) => `"/resource${m1}"`);
149-
args[0].contents = (args[0].contents as string).replace(/"vscode-resource:([^"]*)"/g, (m, m1) => `"/resource${m1}"`);
151+
const resourceBaseUrl = location.pathname.replace(/\/$/, "") + "/resource";
152+
args[0].contents = (args[0].contents as string).replace(/"(file:\/\/[^"]*)"/g, (m1) => `"${resourceBaseUrl}${m1}"`);
153+
args[0].contents = (args[0].contents as string).replace(/"vscode-resource:([^"]*)"/g, (m, m1) => `"${resourceBaseUrl}${m1}"`);
150154
args[0].contents = (args[0].contents as string).replace(/style-src vscode-core-resource:/g, "style-src 'self'");
151155
}
152156
if (view.contentWindow) {

packages/vscode/src/fill/storageDatabase.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,8 @@ class StorageDatabase implements workspaceStorage.IStorageDatabase {
2828
}
2929

3030
this.triggerFlush(WillSaveStateReason.SHUTDOWN);
31-
navigator.sendBeacon(`/resource${this.path}`, this.content);
31+
const resourceBaseUrl = location.pathname.replace(/\/$/, "") + "/resource";
32+
navigator.sendBeacon(`${resourceBaseUrl}/${this.path}`, this.content);
3233
});
3334
}
3435

scripts/webpack.general.config.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ module.exports = (options = {}) => ({
2121
// they are parsed as URIs and will throw errors if not fully formed.
2222
// The !! prefix causes it to ignore other loaders (doesn't work).
2323
search: "require\\.toUrl\\(",
24-
replace: "location.protocol + '//' + location.host + '/' + require('!!file-loader?name=[path][name].[ext]!' + ",
24+
replace: "location.protocol + '//' + location.host + location.pathname.replace(/\\/$/,'') + '/' + require('!!file-loader?name=[path][name].[ext]!' + ",
2525
flags: "g",
2626
}, {
2727
search: "require\\.__\\$__nodeRequire",

0 commit comments

Comments
 (0)