diff options
| author | Ven <vendicated@riseup.net> | 2022-11-28 13:37:55 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-11-28 13:37:55 +0100 |
| commit | bad96b78879f296d5b9e7adacb03756b0f58427a (patch) | |
| tree | 4ddbc57a29e9b201bee1317f18110e8e1ad320e5 /src/webpack | |
| parent | 7a4402f1425ea9fdc6d2b3c985a4ce831f405937 (diff) | |
| download | Vencord-bad96b78879f296d5b9e7adacb03756b0f58427a.tar.gz Vencord-bad96b78879f296d5b9e7adacb03756b0f58427a.tar.bz2 Vencord-bad96b78879f296d5b9e7adacb03756b0f58427a.zip | |
Path aliases, better lazyWebpack (#268)
Diffstat (limited to 'src/webpack')
| -rw-r--r-- | src/webpack/common.tsx | 32 | ||||
| -rw-r--r-- | src/webpack/patchWebpack.ts | 5 | ||||
| -rw-r--r-- | src/webpack/webpack.ts | 25 |
3 files changed, 43 insertions, 19 deletions
diff --git a/src/webpack/common.tsx b/src/webpack/common.tsx index 32f47e6..e606f16 100644 --- a/src/webpack/common.tsx +++ b/src/webpack/common.tsx @@ -16,31 +16,33 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ +import { LazyComponent } from "@utils/misc"; +import { proxyLazy } from "@utils/proxyLazy"; import type Components from "discord-types/components"; import { User } from "discord-types/general"; import type Other from "discord-types/other"; import type Stores from "discord-types/stores"; -import { LazyComponent, lazyWebpack } from "../utils/misc"; -import { proxyLazy } from "../utils/proxyLazy"; -import { _resolveReady, filters, findByCode, mapMangledModule, mapMangledModuleLazy, waitFor } from "./webpack"; +import { _resolveReady, filters, findByCode, findByCodeLazy, findByPropsLazy, mapMangledModule, mapMangledModuleLazy, waitFor } from "./webpack"; -export const Margins = lazyWebpack(filters.byProps("marginTop20")); +export const Margins = findByPropsLazy("marginTop20"); export let FluxDispatcher: Other.FluxDispatcher; -export const Flux = lazyWebpack(filters.byProps("connectStores")); +export const Flux = findByPropsLazy("connectStores"); export let React: typeof import("react"); -export const ReactDOM: typeof import("react-dom") = lazyWebpack(filters.byProps("createPortal", "render")); +export const ReactDOM: typeof import("react-dom") = findByPropsLazy("createPortal", "render"); -export const RestAPI = lazyWebpack(filters.byProps("getAPIBaseURL", "get")); -export const moment: typeof import("moment") = lazyWebpack(filters.byProps("parseTwoDigitYear")); +export const RestAPI = findByPropsLazy("getAPIBaseURL", "get"); +export const moment: typeof import("moment") = findByPropsLazy("parseTwoDigitYear"); -export const MessageStore = lazyWebpack(filters.byProps("getRawMessages")) as Omit<Stores.MessageStore, "getMessages"> & { getMessages(chanId: string): any; }; -export const PermissionStore = lazyWebpack(filters.byProps("can", "getGuildPermissions")); -export const PrivateChannelsStore = lazyWebpack(filters.byProps("openPrivateChannel")); -export const GuildChannelStore = lazyWebpack(filters.byProps("getChannels")); -export const ReadStateStore = lazyWebpack(filters.byProps("lastMessageId")); -export const PresenceStore = lazyWebpack(filters.byProps("setCurrentUserOnConnectionOpen")); +export const MessageStore = findByPropsLazy("getRawMessages") as Omit<Stores.MessageStore, "getMessages"> & { + getMessages(chanId: string): any; +}; +export const PermissionStore = findByPropsLazy("can", "getGuildPermissions"); +export const PrivateChannelsStore = findByPropsLazy("openPrivateChannel"); +export const GuildChannelStore = findByPropsLazy("getChannels"); +export const ReadStateStore = findByPropsLazy("lastMessageId"); +export const PresenceStore = findByPropsLazy("setCurrentUserOnConnectionOpen"); export let GuildStore: Stores.GuildStore; export let UserStore: Stores.UserStore; export let SelectedChannelStore: Stores.SelectedChannelStore; @@ -121,7 +123,7 @@ export const Toasts = { }; export const UserUtils = { - fetchUser: lazyWebpack(filters.byCode(".USER(", "getUser")) as (id: string) => Promise<User>, + fetchUser: findByCodeLazy(".USER(", "getUser") as (id: string) => Promise<User>, }; export const Clipboard = mapMangledModuleLazy('document.queryCommandEnabled("copy")||document.queryCommandSupported("copy")', { diff --git a/src/webpack/patchWebpack.ts b/src/webpack/patchWebpack.ts index e17ddfc..273a062 100644 --- a/src/webpack/patchWebpack.ts +++ b/src/webpack/patchWebpack.ts @@ -16,8 +16,9 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { WEBPACK_CHUNK } from "../utils/constants"; -import Logger from "../utils/Logger"; +import { WEBPACK_CHUNK } from "@utils/constants"; +import Logger from "@utils/Logger"; + import { _initWebpack } from "."; let webpackChunk: any[]; diff --git a/src/webpack/webpack.ts b/src/webpack/webpack.ts index bd06b03..0bbd815 100644 --- a/src/webpack/webpack.ts +++ b/src/webpack/webpack.ts @@ -16,11 +16,11 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ +import Logger from "@utils/Logger"; +import { proxyLazy } from "@utils/proxyLazy"; import type { WebpackInstance } from "discord-types/other"; import { traceFunction } from "../debug/Tracer"; -import Logger from "../utils/Logger"; -import { proxyLazy } from "../utils/proxyLazy"; const logger = new Logger("Webpack"); @@ -113,6 +113,13 @@ export const find = traceFunction("find", function find(filter: FilterFn, getDef return null; }); +/** + * find but lazy + */ +export function findLazy(filter: FilterFn, getDefault = true) { + return proxyLazy(() => find(filter, getDefault)); +} + export function findAll(filter: FilterFn, getDefault = true) { if (typeof filter !== "function") throw new Error("Invalid filter. Expected a function got " + typeof filter); @@ -292,6 +299,13 @@ export function findByProps(...props: string[]) { } /** + * findByProps but lazy + */ +export function findByPropsLazy(...props: string[]) { + return findLazy(filters.byProps(...props)); +} + +/** * Find all modules that have the specified properties */ export function findAllByProps(...props: string[]) { @@ -306,6 +320,13 @@ export function findByCode(...code: string[]) { } /** + * findByCode but lazy + */ +export function findByCodeLazy(...code: string[]) { + return findLazy(filters.byCode(...code)); +} + +/** * Wait for a module that matches the provided filter to be registered, * then call the callback with the module as the first argument */ |
