mirror of
https://github.com/nodejs/node.git
synced 2024-11-30 15:30:56 +01:00
d1ef6aa2db
The old import assertions proposal has been
renamed to "import attributes" with the follwing major changes:
1. The keyword is now `with` instead of `assert`.
2. Unknown assertions cause an error rather than being ignored,
This commit updates the documentation to encourage folks to use the new
syntax, and add aliases for module customization hooks.
PR-URL: https://github.com/nodejs/node/pull/50140
Fixes: https://github.com/nodejs/node/issues/50134
Refs: 159c82c5e6
Reviewed-By: Geoffrey Booth <webadmin@geoffreybooth.com>
Reviewed-By: Jacob Smith <jacob@frende.me>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
31 lines
923 B
JavaScript
31 lines
923 B
JavaScript
import '../common/index.mjs';
|
|
import * as fixtures from '../common/fixtures.mjs';
|
|
import { register } from 'node:module';
|
|
import assert from 'node:assert';
|
|
|
|
async function resolve(referrer, context, next) {
|
|
const result = await next(referrer, context);
|
|
const url = new URL(result.url);
|
|
url.searchParams.set('randomSeed', Math.random());
|
|
result.url = url.href;
|
|
return result;
|
|
}
|
|
|
|
function load(url, context, next) {
|
|
if (context.importAttributes.type === 'json') {
|
|
return {
|
|
shortCircuit: true,
|
|
format: 'json',
|
|
source: JSON.stringify({ data: Math.random() }),
|
|
};
|
|
}
|
|
return next(url, context);
|
|
}
|
|
|
|
register(`data:text/javascript,export ${encodeURIComponent(resolve)};export ${encodeURIComponent(load)}`);
|
|
|
|
assert.notDeepStrictEqual(
|
|
await import(fixtures.fileURL('empty.json'), { with: { type: 'json' } }),
|
|
await import(fixtures.fileURL('empty.json'), { with: { type: 'json' } }),
|
|
);
|