123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- "use strict";
- var __create = Object.create;
- var __defProp = Object.defineProperty;
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
- var __getOwnPropNames = Object.getOwnPropertyNames;
- var __getProtoOf = Object.getPrototypeOf;
- var __hasOwnProp = Object.prototype.hasOwnProperty;
- var __export = (target, all) => {
- for (var name in all)
- __defProp(target, name, { get: all[name], enumerable: true });
- };
- var __copyProps = (to, from, except, desc) => {
- if (from && typeof from === "object" || typeof from === "function") {
- for (let key of __getOwnPropNames(from))
- if (!__hasOwnProp.call(to, key) && key !== except)
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
- }
- return to;
- };
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
- // If the importer is in node compatibility mode or this is not an ESM
- // file that has been converted to a CommonJS file using a Babel-
- // compatible transform (i.e. "__esModule" has not been set), then set
- // "default" to the CommonJS "module.exports" for node compatibility.
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
- mod
- ));
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
- // src/rspack/loaders/transform.ts
- var transform_exports = {};
- __export(transform_exports, {
- default: () => transform
- });
- module.exports = __toCommonJS(transform_exports);
- // src/rspack/context.ts
- var import_buffer = require("buffer");
- var import_webpack_sources = __toESM(require("webpack-sources"));
- var import_acorn = require("acorn");
- function createBuildContext(compilation) {
- return {
- parse(code, opts = {}) {
- return import_acorn.Parser.parse(code, {
- sourceType: "module",
- ecmaVersion: "latest",
- locations: true,
- ...opts
- });
- },
- addWatchFile() {
- },
- emitFile(emittedFile) {
- const outFileName = emittedFile.fileName || emittedFile.name;
- if (emittedFile.source && outFileName) {
- compilation.emitAsset(
- outFileName,
- new import_webpack_sources.default.RawSource(
- // @ts-expect-error types mismatch
- typeof emittedFile.source === "string" ? emittedFile.source : import_buffer.Buffer.from(emittedFile.source)
- )
- );
- }
- },
- getWatchFiles() {
- return [];
- }
- };
- }
- function createContext(loader) {
- return {
- error: (error) => loader.emitError(normalizeMessage(error)),
- warn: (message) => loader.emitWarning(normalizeMessage(message))
- };
- }
- function normalizeMessage(error) {
- const err = new Error(typeof error === "string" ? error : error.message);
- if (typeof error === "object") {
- err.stack = error.stack;
- err.cause = error.meta;
- }
- return err;
- }
- // src/rspack/loaders/transform.ts
- async function transform(source, map) {
- const callback = this.async();
- let unpluginName;
- if (typeof this.query === "string") {
- const query = new URLSearchParams(this.query);
- unpluginName = query.get("unpluginName");
- } else {
- unpluginName = this.query.unpluginName;
- }
- const id = this.resource;
- const plugin = this._compiler?.$unpluginContext[unpluginName];
- if (!plugin?.transform)
- return callback(null, source, map);
- const context = createContext(this);
- const res = await plugin.transform.call(
- Object.assign(
- this._compilation && createBuildContext(this._compilation),
- context
- ),
- source,
- id
- );
- if (res == null)
- callback(null, source, map);
- else if (typeof res !== "string")
- callback(null, res.code, map == null ? map : res.map || map);
- else
- callback(null, res, map);
- }
|