Skip to content

Commit

Permalink
Add new test for virtual file output when modifying entryFileNames
Browse files Browse the repository at this point in the history
Use entryFileNames to change the extension of the filename to be mjs,
and see that the file created from the virtual file chunk has a .mjs
extension

Note that the amd definition contains the .mjs extension, as amd ids only
strip the .js file extension, which is slightly odd but probably ok as
this amd is not the targetted usecase for this behaviour
  • Loading branch information
BPScott committed Nov 14, 2021
1 parent 8c5030d commit 8f3747b
Show file tree
Hide file tree
Showing 18 changed files with 167 additions and 0 deletions.
@@ -0,0 +1,34 @@
module.exports = {
description:
'Generates actual files whose filename adheres to entryFileNames for virtual modules when preserving modules',
options: {
input: 'main.js',
output: {
preserveModules: true,
entryFileNames: 'entry-[name]-[format]-[ext][extname][assetExtname].mjs'
},
plugins: [
{
resolveId(id) {
if (id === '\0virtualModule') return id;
if (id === '\0virtualWithExt.js') return id;
if (id === '\0virtualWithAssetExt.str') return id;
},
load(id) {
if (id === '\0virtualModule') return 'export const virtual = "Virtual!";\n';
if (id === '\0virtualWithExt.js') return 'export const virtual2 = "Virtual2!";\n';
if (id === '\0virtualWithAssetExt.str') return 'export const virtual3 = "Virtual3!";\n';
},
transform(code, id) {
if (id === '\0virtualModule') return null;
if (id === '\0virtualWithExt.js') return null;
if (id === '\0virtualWithAssetExt.str') return null;
return (
'import {virtual} from "\0virtualModule";\nimport {virtual2} from "\0virtualWithExt.js";\nimport {virtual3} from "\0virtualWithAssetExt.str";' +
code
);
}
}
]
}
};
@@ -0,0 +1,9 @@
define(['exports'], (function (exports) { 'use strict';

const virtual = "Virtual!";

exports.virtual = virtual;

Object.defineProperty(exports, '__esModule', { value: true });

}));
@@ -0,0 +1,9 @@
define(['exports'], (function (exports) { 'use strict';

const virtual3 = "Virtual3!";

exports.virtual3 = virtual3;

Object.defineProperty(exports, '__esModule', { value: true });

}));
@@ -0,0 +1,9 @@
define(['exports'], (function (exports) { 'use strict';

const virtual2 = "Virtual2!";

exports.virtual2 = virtual2;

Object.defineProperty(exports, '__esModule', { value: true });

}));
@@ -0,0 +1,7 @@
define(['./_virtual/entry-_virtualModule-amd-.mjs', './_virtual/entry-_virtualWithExt-amd-js.js.mjs', './_virtual/entry-_virtualWithAssetExt-amd-str.str.str.mjs'], (function (_virtualModule, _virtualWithExt, _virtualWithAssetExt) { 'use strict';

assert.equal(_virtualModule.virtual, 'Virtual!');
assert.equal(_virtualWithExt.virtual2, 'Virtual2!');
assert.equal(_virtualWithAssetExt.virtual3, 'Virtual3!');

}));
@@ -0,0 +1,7 @@
'use strict';

Object.defineProperty(exports, '__esModule', { value: true });

const virtual = "Virtual!";

exports.virtual = virtual;
@@ -0,0 +1,7 @@
'use strict';

Object.defineProperty(exports, '__esModule', { value: true });

const virtual3 = "Virtual3!";

exports.virtual3 = virtual3;
@@ -0,0 +1,7 @@
'use strict';

Object.defineProperty(exports, '__esModule', { value: true });

const virtual2 = "Virtual2!";

exports.virtual2 = virtual2;
@@ -0,0 +1,9 @@
'use strict';

var _virtualModule = require('./_virtual/entry-_virtualModule-cjs-.mjs');
var _virtualWithExt = require('./_virtual/entry-_virtualWithExt-cjs-js.js.mjs');
var _virtualWithAssetExt = require('./_virtual/entry-_virtualWithAssetExt-cjs-str.str.str.mjs');

assert.equal(_virtualModule.virtual, 'Virtual!');
assert.equal(_virtualWithExt.virtual2, 'Virtual2!');
assert.equal(_virtualWithAssetExt.virtual3, 'Virtual3!');
@@ -0,0 +1,3 @@
const virtual = "Virtual!";

export { virtual };
@@ -0,0 +1,3 @@
const virtual3 = "Virtual3!";

export { virtual3 };
@@ -0,0 +1,3 @@
const virtual2 = "Virtual2!";

export { virtual2 };
@@ -0,0 +1,7 @@
import { virtual } from './_virtual/entry-_virtualModule-es-.mjs';
import { virtual2 } from './_virtual/entry-_virtualWithExt-es-js.js.mjs';
import { virtual3 } from './_virtual/entry-_virtualWithAssetExt-es-str.str.str.mjs';

assert.equal(virtual, 'Virtual!');
assert.equal(virtual2, 'Virtual2!');
assert.equal(virtual3, 'Virtual3!');
@@ -0,0 +1,10 @@
System.register([], (function (exports) {
'use strict';
return {
execute: (function () {

const virtual = exports('virtual', "Virtual!");

})
};
}));
@@ -0,0 +1,10 @@
System.register([], (function (exports) {
'use strict';
return {
execute: (function () {

const virtual3 = exports('virtual3', "Virtual3!");

})
};
}));
@@ -0,0 +1,10 @@
System.register([], (function (exports) {
'use strict';
return {
execute: (function () {

const virtual2 = exports('virtual2', "Virtual2!");

})
};
}));
@@ -0,0 +1,20 @@
System.register(['./_virtual/entry-_virtualModule-system-.mjs', './_virtual/entry-_virtualWithExt-system-js.js.mjs', './_virtual/entry-_virtualWithAssetExt-system-str.str.str.mjs'], (function () {
'use strict';
var virtual, virtual2, virtual3;
return {
setters: [function (module) {
virtual = module.virtual;
}, function (module) {
virtual2 = module.virtual2;
}, function (module) {
virtual3 = module.virtual3;
}],
execute: (function () {

assert.equal(virtual, 'Virtual!');
assert.equal(virtual2, 'Virtual2!');
assert.equal(virtual3, 'Virtual3!');

})
};
}));
@@ -0,0 +1,3 @@
assert.equal(virtual, 'Virtual!');
assert.equal(virtual2, 'Virtual2!');
assert.equal(virtual3, 'Virtual3!');

0 comments on commit 8f3747b

Please sign in to comment.