Skip to content

Commit c0a377b

Browse files
committed
Bundle content scripts
1 parent a1f06ea commit c0a377b

File tree

10 files changed

+42
-27
lines changed

10 files changed

+42
-27
lines changed

Makefile

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
include core/extension.mk
22
include build.mk
33

4-
.PHONY: chrome manage
4+
.PHONY: chrome manage bundle
55

66
# Override the included `assert` target.
77
assert:
@@ -11,5 +11,9 @@ assert:
1111
manage:
1212
@cd manage && cargo run
1313

14+
bundle:
15+
@echo "Building extension/content_script_bundle.js..."
16+
@esbuild content-script-bundle.js --bundle --minify --global-name=rse --target=es2015 --outdir=extension
17+
1418
# Build macro-railroad wasm module and js
1519
macro-railroad: extension/wasm/macro-railroad.wasm extension/script/macro-railroad-wasm.js

content-script-bundle.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
// esbuild content-script-bundle.js --bundle --minify --global-name=rse --target=es2015 --outdir=extension
2+
import storage from "./extension/core/storage.js";
3+
import settings from "./extension/settings.js";
4+
import IndexSetter from "./extension/index-setter.js";
5+
import CrateDocManager from "./extension/crate-manager.js";
6+
7+
export {
8+
storage,
9+
settings,
10+
IndexSetter,
11+
CrateDocManager
12+
}

extension/content-script-bundle.js

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

extension/main.js

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,8 @@ import CommandManager from "./core/command/manager.js";
2424
import CrateDocManager from "./crate-manager.js";
2525
import { Omnibox, c } from "./core/index.js";
2626

27-
27+
const INDEX_UPDATE_URL = "https://rust.extension.sh/update";
28+
const RUST_RELEASE_README_URL = "https://github.com/rust-lang/rust/blob/master/RELEASES.md";
2829
const manifest = chrome.runtime.getManifest();
2930

3031
// Get the information about the current platform os.
@@ -46,9 +47,6 @@ async function start(el) {
4647
let crateRegistry = await settings.crateRegistry;
4748

4849
const os = await getPlatformOs();
49-
const RUST_RELEASE_README_URL = "https://github.com/rust-lang/rust/blob/master/RELEASES.md";
50-
const INDEX_UPDATE_URL = "https://rust.extension.sh/update";
51-
5250
const crateSearcher = new CrateSearch(await IndexManager.getCrateMapping(), await IndexManager.getCrateIndex());
5351
let caniuseSearcher = new CaniuseSearch(await IndexManager.getCaniuseIndex());
5452
let bookSearcher = new BookSearch(await IndexManager.getBookIndex());

extension/script/doc-rust-lang-org.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,9 @@ window.addEventListener("message", function (event) {
3131
event.data.direction === "rust-search-extension:std") {
3232
let searchIndex = event.data.message.searchIndex;
3333
if (TARGET === 'stable') {
34-
IndexManager.setStdStableIndex(searchIndex);
34+
rse.IndexSetter.setStdStableIndex(searchIndex);
3535
} else {
36-
IndexManager.setStdNightlyIndex(searchIndex);
36+
rse.IndexSetter.setStdNightlyIndex(searchIndex);
3737
}
3838
let now = new Date();
3939
let version = `${now.getFullYear()}-${now.getMonth() + 1}-${now.getDate()}`;

extension/script/docs-rs.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ document.addEventListener("DOMContentLoaded", async () => {
9595
// Exclude /crate/** pages
9696
if (menus.children.length >= 3 && !location.pathname.includes("/crate/")) {
9797
// Query installed crates from chrome.storage API
98-
let crates = await storage.getItem("crates") || {};
98+
let crates = await rse.storage.getItem("crates") || {};
9999
let installedCrate = crates[crateName];
100100
if (!installedCrate && crates[libName]) {
101101
installedCrate = crates[libName];
@@ -149,7 +149,7 @@ document.addEventListener("DOMContentLoaded", async () => {
149149
rseButton.parentElement.insertAdjacentElement("beforebegin", advisoryMenu);
150150
}
151151

152-
if (getState(installedVersion) === "outdated" && await settings.keepCratesUpToDate) {
152+
if (getState(installedVersion) === "outdated" && await rse.settings.keepCratesUpToDate) {
153153
// Auto update outdated crates if the user has enabled the setting.
154154
injectScripts(["script/lib.js", "script/add-search-index.js"]);
155155
}
@@ -275,7 +275,7 @@ function insertAddToExtensionElement(state) {
275275
// Toggle search index added state
276276
if (state === "latest") {
277277
// Use the libName to remove the installed crate.
278-
await CrateDocManager.removeCrate(libName);
278+
await rse.CrateDocManager.removeCrate(libName);
279279
insertAddToExtensionElement(getState(undefined));
280280
} else {
281281
injectScripts(["script/lib.js", "script/add-search-index.js"]);
@@ -352,7 +352,7 @@ window.addEventListener("message", async function (event) {
352352
event.data &&
353353
event.data.direction === "rust-search-extension:docs.rs") {
354354
let message = event.data.message;
355-
await CrateDocManager.addCrate(message);
355+
await rse.CrateDocManager.addCrate(message);
356356
insertAddToExtensionElement(getState(message.crateVersion));
357357
console.log("Congrats! This crate has been installed successfully!");
358358
}

extension/script/macro-railroad.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ async function load() {
88
let macros = document.querySelectorAll('.item-decl');
99
if (!macros || macros.length === 0) return;
1010

11-
if (!await settings.showMacroRailroad) return;
11+
if (!await rse.settings.showMacroRailroad) return;
1212

1313
await wasm_bindgen(chrome.runtime.getURL('wasm/macro-railroad.wasm'));
1414
injectCss();

extension/script/rust-extension-sh.js

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,40 +6,40 @@ window.addEventListener("message", async function (event) {
66
console.log('target:', message.target);
77
switch (message.target) {
88
case 'book': {
9-
IndexManager.setBookIndex(message.index);
9+
rse.IndexSetter.setBookIndex(message.index);
1010
break;
1111
}
1212
case 'caniuse': {
13-
IndexManager.setCaniuseIndex(message.index);
13+
rse.IndexSetter.setCaniuseIndex(message.index);
1414
break;
1515
}
1616
case 'command': {
17-
IndexManager.setCommandIndex(message.index);
17+
rse.IndexSetter.setCommandIndex(message.index);
1818
break;
1919
}
2020
case 'crate': {
21-
IndexManager.setCrateIndex(message.index);
22-
IndexManager.setCrateMapping(message.mapping);
21+
rse.IndexSetter.setCrateIndex(message.index);
22+
rse.IndexSetter.setCrateMapping(message.mapping);
2323
break;
2424
}
2525
case 'label': {
26-
IndexManager.setLabelIndex(message.index);
26+
rse.IndexSetter.setLabelIndex(message.index);
2727
break;
2828
}
2929
case 'lint': {
30-
IndexManager.setLintIndex(message.index);
30+
rse.IndexSetter.setLintIndex(message.index);
3131
break;
3232
}
3333
case 'rfc': {
34-
IndexManager.setRfcIndex(message.index);
34+
rse.IndexSetter.setRfcIndex(message.index);
3535
break;
3636
}
3737
case 'rustc': {
38-
IndexManager.setRustcIndex(message.index);
38+
rse.IndexSetter.setRustcIndex(message.index);
3939
break;
4040
}
4141
case 'target': {
42-
IndexManager.setTargetIndex(message.index);
42+
rse.IndexSetter.setTargetIndex(message.index);
4343
break;
4444
}
4545
}

extension/search/docs/crate-doc.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { c } from "../../core/index.js";
22
import DocSearch from "./base.js";
33
import CrateDocManager from "../../crate-manager.js";
4+
import settings from "../../settings.js";
45

56
// A DocSearch dedicated to a single crate based on the search-index.
67
class SingleCrateDocSearch extends DocSearch {

manifest.jsonnet

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -46,18 +46,17 @@ else
4646
.addPermissions(host_permissions)
4747
;
4848

49-
local INDEX_MANAGER_FILES = ['core/storage.js', 'index-manager.js'];
5049
json.addIcons(icons())
5150
.addPermissions(['storage', 'unlimitedStorage'])
5251
.setOptionsUi('manage/index.html')
5352
.addContentScript(
5453
matches=['*://docs.rs/*'],
55-
js=['core/storage.js', 'crate-manager.js'] + utils.js_files('script', ['lib', 'docs-rs', 'svgs', 'rust-src-navigate', 'semver']),
54+
js=['content-script-bundle.js'] + utils.js_files('script', ['lib', 'docs-rs', 'svgs', 'rust-src-navigate', 'semver']),
5655
css=['script/docs-rs.css', 'script/details-toggle.css'],
5756
)
5857
.addContentScript(
5958
matches=['*://doc.rust-lang.org/*'],
60-
js=INDEX_MANAGER_FILES + utils.js_files('script', ['lib', 'doc-rust-lang-org', 'rust-src-navigate']),
59+
js=['content-script-bundle.js'] + utils.js_files('script', ['lib', 'doc-rust-lang-org', 'rust-src-navigate']),
6160
css=['script/doc-rust-lang-org.css', 'script/details-toggle.css'],
6261
exclude_matches=['*://doc.rust-lang.org/nightly/nightly-rustc/*'],
6362
)
@@ -68,13 +67,13 @@ json.addIcons(icons())
6867
)
6968
.addContentScript(
7069
matches=['*://rust.extension.sh/update'],
71-
js=INDEX_MANAGER_FILES + utils.js_files('script', ['rust-extension-sh']),
70+
js=['content-script-bundle.js'] + utils.js_files('script', ['rust-extension-sh']),
7271
css=[],
7372
).addContentScript(
7473
matches=[
7574
'*://docs.rs/*',
7675
'*://doc.rust-lang.org/*',
7776
],
78-
js=['settings.js'] + utils.js_files('script', ['lib', 'macro-railroad', 'macro-railroad-wasm']),
77+
js=['content-script-bundle.js'] + utils.js_files('script', ['lib', 'macro-railroad', 'macro-railroad-wasm']),
7978
css=['script/macro-railroad.css'],
8079
)

0 commit comments

Comments
 (0)