Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

@nodejs-loaders/media

Package Overview
Dependencies
Maintainers
2
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@nodejs-loaders/media - npm Package Compare versions

Comparing version
1.3.0
to
1.4.0
+1
-1
media.loader.d.mts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"media.loader.d.mts","sourceRoot":"","sources":["media.loader.mjs"],"names":[],"mappings":"AAmFA,+BAwBG;sBAvGW,OAAO,eAAe,EAAE,OAAO;iCAwChC,KAAK,CAAC,MAAM,CAAC,GAAC,GAAG,CAAC,MAAM,CAAC;;;;;eAG5B,kBAAkB;;;;eAClB,kBAAkB;;;;;8CAEf,kBAAkB;uIA0Dsvc,CAAC;kHAA89C,CAAC"}
{"version":3,"file":"media.loader.d.mts","sourceRoot":"","sources":["media.loader.mjs"],"names":[],"mappings":"AA0GA,+BAwBG;sBA5HW,OAAO,eAAe,EAAE,OAAO;iCA6DhC,KAAK,CAAC,MAAM,CAAC,GAAC,GAAG,CAAC,MAAM,CAAC;;;;;eAG5B,kBAAkB;;;;eAClB,kBAAkB;;;;;8CAEf,kBAAkB;uIA0Di+hB,CAAC;kHAAywD,CAAC"}
import process from 'node:process';
import { pathToFileURL } from 'node:url';
import { runForAsyncOrSync } from '@nodejs-loaders/chain-utils/run-normalised';
import { getFilenameExt } from '@nodejs-loaders/parse-filename';

@@ -10,9 +12,20 @@

*/
async function resolveMedia(specifier, ctx, nextResolve) {
const nextResult = await nextResolve(specifier);
function resolveMedia(specifier, ctx, nextResolve) {
return runForAsyncOrSync(
nextResolve(specifier),
finaliseResolveMedia,
ctx,
);
}
export { resolveMedia as resolve };
/**
* @param {import('node:module').ResolveFnOutput} resolvedResult Specifier has been fully resolved.
* @param {import('node:module').ResolveHookContext} ctx Context about the module.
*/
function finaliseResolveMedia(resolvedResult, ctx) {
// Check against the fully resolved URL, not just the specifier, in case another loader has
// something to contribute to the resolution.
if (!exts.has(getFilenameExt(/** @type {FileURL} */ (nextResult.url)))) {
return nextResult;
if (!exts.has(getFilenameExt(/** @type {FileURL} */ (resolvedResult.url)))) {
return resolvedResult;
}

@@ -22,8 +35,6 @@

...ctx,
format: 'media',
url: nextResult.url,
url: resolvedResult.url,
};
}
export { resolveMedia as resolve };

@@ -33,5 +44,18 @@ /**

*/
async function loadMedia(url, ctx, nextLoad) {
function loadMedia(url, ctx, nextLoad) {
if (ctx.format !== 'media') return nextLoad(url);
return runForAsyncOrSync(
{ format: ctx.format },
finaliseLoadMedia,
url,
);
}
export { loadMedia as load };
/**
* @param {import('node:module').LoadFnOutput} loadedResult Raw source has been retrieved.
* @param {FileURL} url Context about the module being loaded.
*/
function finaliseLoadMedia(loadedResult, url) {
const source = `export default '${url.replace(cwd, '[…]')}';`;

@@ -45,3 +69,2 @@

}
export { loadMedia as load };

@@ -59,3 +82,3 @@ /**

* @type {import('node:module').InitializeHook}
* @param {MediaExtensionAddRemoveConfig|MediaExtensionReplacementConfig} config
* @param {MediaExtensionAddRemoveConfig|MediaExtensionReplacementConfig} config Data to configure media loader file extensions.
*/

@@ -80,3 +103,3 @@ function initialiseMedia(config) {

/**
* @param {unknown} suspect
* @param {unknown} suspect The item to check.
* @returns {boolean}

@@ -88,3 +111,3 @@ */

const cwd = process.cwd();
const cwd = pathToFileURL(process.cwd()).pathname;

@@ -91,0 +114,0 @@ export const exts = new Set([

{
"version": "1.3.0",
"version": "1.4.0",
"name": "@nodejs-loaders/media",

@@ -28,3 +28,4 @@ "description": "Extend node to support media imports via customization hooks.",

"dependencies": {
"@nodejs-loaders/parse-filename": "1.0.0"
"@nodejs-loaders/chain-utils": "^1.0.0",
"@nodejs-loaders/parse-filename": "^1.0.0"
},

@@ -31,0 +32,0 @@ "repository": {

@@ -25,4 +25,7 @@ # Nodejs Loaders: Media

**Compatible APIs**: [`module.register`](https://nodejs.org/api/module.html#moduleregisterspecifier-parenturl-options)
**Compatible APIs**:
* [`module.register`](https://nodejs.org/api/module.html#moduleregisterspecifier-parenturl-options)
* [`module.registerHooks`](https://nodejs.org/api/module.html#moduleregisterhooksoptions)
```js

@@ -29,0 +32,0 @@ import photo from './team.jpg'; // photo = '[…]/team.jpg'