Skip to content

Commit fedf88f

Browse files
committed
Migrate manage pages to ESM
1 parent 65fc7ca commit fedf88f

File tree

14 files changed

+65
-43
lines changed

14 files changed

+65
-43
lines changed

extension/crate-manager.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import storage from "./core/storage.js";
22

3-
export class CrateDocManager {
3+
export default class CrateDocManager {
44
static async getCrates() {
55
return await storage.getItem("crates") || {};
66
}

extension/main.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import storage from "./core/storage.js";
22
import settings from "./settings.js";
3+
import Statistics from "./statistics.js";
34
import attributesIndex from "./index/attributes.js";
45
import IndexManager from "./index-manager.js";
56
import CrateSearch from "./search/crate.js";
@@ -20,6 +21,7 @@ import SimpleCommand from "./core/command/simple.js";
2021
import OpenCommand from "./core/command/open.js";
2122
import HistoryCommand from "./core/command/history.js";
2223
import CommandManager from "./core/command/manager.js";
24+
import CrateDocManager from "./crate-manager.js";
2325
import { Omnibox, c } from "./core/index.js";
2426

2527

extension/manage/js/crates.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
import Statistics from "../../statistics.js";
2+
import Compat from "../../core/compat.js";
3+
import CrateDocManager from "../../crate-manager.js";
4+
15
function buildRemoveButton(name) {
26
let btn = document.createElement("span");
37
btn.classList.add("btn-remove");
@@ -43,8 +47,8 @@ async function refresh(orderBy = "time") {
4347
let compat = new Compat();
4448
const { timeline } = await Statistics.load();
4549
const cratesData = timeline.reduce((pre, [time, type, crate]) => {
46-
if(crate) {
47-
pre[crate] = (pre[crate] || 0) + 1;
50+
if (crate) {
51+
pre[crate] = (pre[crate] || 0) + 1;
4852
}
4953
return pre;
5054
}, Object.create(null));

extension/manage/js/export.js

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,10 @@
1-
(async function() {
1+
import Statistics from "../../statistics.js";
2+
import Compat from "../../core/compat.js";
3+
import storage from "../../core/storage.js";
4+
import CrateDocManager from "../../crate-manager.js";
5+
import settings from "../../settings.js";
6+
7+
(async function () {
28
document.querySelector(".btn-export").onclick = async (event) => {
39
let target = event.target.parentElement;
410
let data = Object.create(null)

extension/manage/js/import.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
import storage from "../../core/storage.js";
2+
import CrateDocManager from "../../crate-manager.js";
3+
import settings from "../../settings.js";
4+
15
(function () {
26
let json = null;
37
let fileSelector = document.querySelector(".file-selector");

extension/manage/js/index.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
import { STATS_PATTERNS } from "../../statistics.js";
2+
import Statistics from "../../statistics.js";
3+
14
const TYPE_OTHER = "other";
25
const CHART_COLOR = "rgba(249, 188, 45, 0.5)";
36
const STATS_MAP = {
@@ -34,6 +37,19 @@ const STATS_MAP = {
3437
description: "Others including any Rust version, Clippy lint (>), book (%), and caniuse/rfc (?) searches."
3538
}
3639
};
40+
const STATS_NUMBER = STATS_PATTERNS.reduce((pre, current) => {
41+
pre[current.type] = current.name;
42+
return pre;
43+
}, Object.create(null));
44+
const WEEKS = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];
45+
46+
function makeNumericKeyObject(start, end, initial = 0) {
47+
return Array.from({ length: end + 1 - start }).fill(initial)
48+
.reduce((obj, current, index) => {
49+
obj[start + index] = current;
50+
return obj;
51+
}, {});
52+
}
3753

3854
const histogramConfig = {
3955
width: 460,

extension/manage/js/settings.js

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
1-
document.addEventListener('DOMContentLoaded', async function() {
1+
import settings from "../../settings.js";
2+
3+
document.addEventListener('DOMContentLoaded', async function () {
24
const autoUpdateCheckbox = document.getElementById('auto-update');
35
autoUpdateCheckbox.checked = await settings.autoUpdate;
4-
autoUpdateCheckbox.onchange = async function(event) {
6+
autoUpdateCheckbox.onchange = async function (event) {
57
settings.autoUpdate = event.target.checked;
68
};
79
const showMacroRailroad = document.getElementById('show-macro-railroad');
810
showMacroRailroad.checked = await settings.showMacroRailroad;
9-
showMacroRailroad.onchange = async function(event) {
11+
showMacroRailroad.onchange = async function (event) {
1012
settings.showMacroRailroad = event.target.checked;
1113
};
1214

@@ -19,7 +21,7 @@ document.addEventListener('DOMContentLoaded', async function() {
1921
const checkedState = await settings.isOfflineMode;
2022
offlineModeCheckbox.checked = checkedState;
2123
toggleOfflinePathEnableState(checkedState);
22-
offlineModeCheckbox.onchange = function(event) {
24+
offlineModeCheckbox.onchange = function (event) {
2325
const checked = event.target.checked;
2426
settings.isOfflineMode = checked;
2527
toggleOfflinePathEnableState(checked);
@@ -28,19 +30,19 @@ document.addEventListener('DOMContentLoaded', async function() {
2830
// Offline doc path
2931
const offlineDocPath = document.querySelector('.offline-doc-path');
3032
offlineDocPath.value = await settings.offlineDocPath;
31-
offlineDocPath.onchange = function(event) {
33+
offlineDocPath.onchange = function (event) {
3234
settings.offlineDocPath = event.target.value;
3335
};
3436

3537
let crateRegistry = document.querySelector("select[name='crate-registry']");
3638
crateRegistry.value = await settings.crateRegistry;
37-
crateRegistry.onchange = function() {
39+
crateRegistry.onchange = function () {
3840
settings.crateRegistry = crateRegistry.value;
3941
};
4042

4143
const keepCratesUpToDate = document.getElementById("keep-crates-up-to-date");
4244
keepCratesUpToDate.checked = await settings.keepCratesUpToDate;
43-
keepCratesUpToDate.onchange = async function(event) {
45+
keepCratesUpToDate.onchange = async function (event) {
4446
settings.keepCratesUpToDate = event.target.checked;
4547
}
4648

@@ -70,15 +72,15 @@ async function setupDefaultSearch() {
7072
docsRs.checked = defaultSearch.docsRs;
7173
attributes.checked = defaultSearch.attributes;
7274

73-
thirdPartyDocs.onchange = function(event) {
75+
thirdPartyDocs.onchange = function (event) {
7476
defaultSearch.thirdPartyDocs = event.target.checked;
7577
settings.defaultSearch = defaultSearch;
7678
};
77-
docsRs.onchange = function(event) {
79+
docsRs.onchange = function (event) {
7880
defaultSearch.docsRs = event.target.checked;
7981
settings.defaultSearch = defaultSearch;
8082
};
81-
attributes.onchange = function(event) {
83+
attributes.onchange = function (event) {
8284
defaultSearch.attributes = event.target.checked;
8385
settings.defaultSearch = defaultSearch;
8486
};

extension/search/crate.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ export default class CrateSearch {
2525
}
2626

2727
setCrateIndex(crateIndex) {
28-
console.log("crateIndex", crateIndex);
2928
this.crateIndex = Object.create(null);
3029
for (let [key, value] of Object.entries(crateIndex)) {
3130
this.crateIndex[this.deminifier.deminify(key)] = value;

extension/statistics.js

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
const STATS_PATTERNS = [{
1+
import storage from "./core/storage.js";
2+
3+
export const STATS_PATTERNS = [{
24
name: "stable",
35
pattern: null,
46
type: 1,
@@ -39,21 +41,8 @@ const STATS_PATTERNS = [{
3941
type: 999,
4042
},
4143
];
42-
const STATS_NUMBER = STATS_PATTERNS.reduce((pre, current) => {
43-
pre[current.type] = current.name;
44-
return pre;
45-
}, Object.create(null));
46-
const WEEKS = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];
47-
48-
function makeNumericKeyObject(start, end, initial = 0) {
49-
return Array.from({ length: end + 1 - start }).fill(initial)
50-
.reduce((obj, current, index) => {
51-
obj[start + index] = current;
52-
return obj;
53-
}, {});
54-
}
5544

56-
class Statistics {
45+
export default class Statistics {
5746
constructor() {
5847
// The timeline data of user searching hihstory.
5948
// Consist of array of [timestamp, search type, option search crate].

manage/templates/base.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,9 +42,9 @@
4242
</div>
4343
</div>
4444
</div>
45-
<script src="../core/compat.js"></script>
46-
<script src="../core/storage.js"></script>
47-
<script src="../settings.js"></script>
45+
<script src="../core/compat.js" type="module"></script>
46+
<script src="../core/storage.js" type="module"></script>
47+
<script src="../settings.js" type="module"></script>
4848
{% block js %}
4949
{% endblock %}
5050
</body>

manage/templates/crates.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
{% endblock %}
1717

1818
{% block js %}
19-
<script src="../crate-manager.js"></script>
20-
<script src="../statistics.js"></script>
21-
<script src="./js/crates.js"></script>
19+
<script src="../crate-manager.js" type="module"></script>
20+
<script src="../statistics.js" type="module"></script>
21+
<script src="./js/crates.js" type="module"></script>
2222
{% endblock %}

manage/templates/export.html

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,8 @@
4545
{% endblock %}
4646

4747
{% block js %}
48-
<script src="../crate-manager.js"></script>
49-
<script src="../statistics.js"></script>
50-
<script src="./js/export.js"></script>
51-
<script src="./js/import.js"></script>
48+
<script src="../crate-manager.js" type="module"></script>
49+
<script src="../statistics.js" type="module"></script>
50+
<script src="./js/export.js" type="module"></script>
51+
<script src="./js/import.js" type="module"></script>
5252
{% endblock %}

manage/templates/index.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,6 @@ <h3>Top searched crates</h3>
5757

5858
{% block js %}
5959
<script type="text/javascript" src="./js/bar-chart.js"></script>
60-
<script type="text/javascript" src="../statistics.js"></script>
61-
<script type="text/javascript" src="./js/index.js"></script>
60+
<script src="../statistics.js" type="module"></script>
61+
<script src="./js/index.js" type="module"></script>
6262
{% endblock %}

manage/templates/settings.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -142,5 +142,5 @@
142142
{% endblock %}
143143

144144
{% block js %}
145-
<script src="./js/settings.js"></script>
145+
<script src="./js/settings.js" type="module"></script>
146146
{% endblock %}

0 commit comments

Comments
 (0)