From 3e3201ad0d29b8fc367ce30be5b63f87ac6c8716 Mon Sep 17 00:00:00 2001 From: Nuckyz <61953774+Nuckyz@users.noreply.github.com> Date: Sun, 26 May 2024 07:00:03 -0300 Subject: [PATCH] improve wreq docs --- src/webpack/wreq.d.ts | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/src/webpack/wreq.d.ts b/src/webpack/wreq.d.ts index c810c5a56..19800e701 100644 --- a/src/webpack/wreq.d.ts +++ b/src/webpack/wreq.d.ts @@ -50,8 +50,13 @@ export type WebpackRequire = ((moduleId: PropertyKey) => Module) & { * Export star. Sets properties of "fromObject" to "toObject" as getters that return the value from "fromObject", like this: * @example * const fromObject = { a: 1 }; - * Object.defineProperty(fromObject, "a", { - * get: () => fromObject["a"] + * Object.keys(fromObject).forEach(key => { + * if (key !== "default" && !(key in toObject)) { + * Object.defineProperty(toObject, key, { + * get: () => fromObject[key], + * enumerable: true + * }); + * } * }); * @returns fromObject */ @@ -81,14 +86,20 @@ export type WebpackRequire = ((moduleId: PropertyKey) => Module) & { */ t: (this: WebpackRequire, value: any, mode: number) => any; /** - * Define property getters. For every prop in "definiton", set a getter in "exports" for the value in "definitiion", like this: + * Define getter functions for harmony exports. For every prop in "definiton" (the module exports), set a getter in "exports" for the getter function in the "definition", like this: * @example * const exports = {}; - * const definition = { a: 1 }; + * const definition = { exportName: () => someExportedValue }; * for (const key in definition) { - * Object.defineProperty(exports, key, { get: definition[key] } + * if (key in definition && !(key in exports)) { + * Object.defineProperty(exports, key, { + * get: definition[key], + * enumerable: true + * }); + * } * } - */ + * // exports is now { exportName: someExportedValue } (but each value is actually a getter) + */ d: (this: WebpackRequire, exports: Record, definiton: Record) => void; /** The chunk handlers, which are used to ensure the files of the chunks are loaded, or load if necessary */ f: ChunkHandlers;