Skip to content

Commit

Permalink
Add basic test
Browse files Browse the repository at this point in the history
  • Loading branch information
lukastaegert committed Jan 10, 2020
1 parent ec04aa2 commit 9a334b0
Show file tree
Hide file tree
Showing 19 changed files with 119 additions and 0 deletions.
3 changes: 3 additions & 0 deletions src/ModuleLoader.ts
Expand Up @@ -322,6 +322,9 @@ export class ModuleLoader {
if (typeof sourceDescription.moduleSideEffects === 'boolean') {
module.moduleSideEffects = sourceDescription.moduleSideEffects;
}
if (typeof sourceDescription.inlineDynamicImport === 'boolean') {
module.inlineDynamicImport = sourceDescription.inlineDynamicImport;
}
return transform(this.graph, sourceDescription, module);
})
.then((source: TransformModuleJSON | ModuleJSON) => {
Expand Down
@@ -0,0 +1,37 @@
const fs = require('fs');
const path = require('path');

module.exports = {
solo: true,
description: 'inlines dynamic imports marked for inlining',
options: {
input: 'main.js',
plugins: {
resolveId(id, importer) {
if (id.endsWith('dep-inlined-via-resolveId.js')) {
return this.resolve(id, importer, { skipSelf: true }).then(resolution =>
Object.assign({}, resolution, { inlineDynamicImport: true })
);
}
},
load(id) {
if (id.endsWith('dep-inlined-via-load.js')) {
return {
code: fs.readFileSync(path.resolve(__dirname, 'dep-inlined-via-load.js'), {
encoding: 'utf8'
}),
inlineDynamicImport: true
};
}
},
transform(code, id) {
if (id.endsWith('dep-inlined-via-transform.js')) {
return {
code,
inlineDynamicImport: true
};
}
}
}
}
};
@@ -0,0 +1,5 @@
define(function () { 'use strict';

console.log('inlined');

});
@@ -0,0 +1,5 @@
define(function () { 'use strict';

console.log('not inlined');

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

new Promise(function (resolve, reject) { require(['./generated-dep-inlined'], resolve, reject) });
new Promise(function (resolve, reject) { require(['./generated-dep-not-inlined'], resolve, reject) });

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

console.log('inlined');
@@ -0,0 +1,3 @@
'use strict';

console.log('not inlined');
@@ -0,0 +1,4 @@
'use strict';

new Promise(function (resolve) { resolve(require('./generated-dep-inlined.js')); });
new Promise(function (resolve) { resolve(require('./generated-dep-not-inlined.js')); });
@@ -0,0 +1,2 @@
console.log('inlined');
export const value = 'inlined';
@@ -0,0 +1,2 @@
console.log('not inlined');
export const value = 'not inlined';
@@ -0,0 +1,4 @@
import('./generated-dep-inlined.js').then(ns => console.log(ns));
import('./generated-dep-not-inlined.js').then(ns => console.log(ns));

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

console.log('inlined');

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

console.log('not inlined');

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

module.import('./generated-dep-inlined.js');
module.import('./generated-dep-not-inlined.js');

}
};
});
@@ -0,0 +1,2 @@
console.log('load');
export const value = 'load';
@@ -0,0 +1,2 @@
console.log('resolveId');
export const value = 'resolveId';
@@ -0,0 +1,2 @@
console.log('transform');
export const value = 'transform';
@@ -0,0 +1,2 @@
console.log('not inlined');
export const value = 'not inlined';
@@ -0,0 +1,6 @@
import('./dep-inlined-via-resolveId.js').then(console.log);
import('./dep-inlined-via-load.js').then(console.log);
import('./dep-inlined-via-transform.js').then(console.log);
import('./dep-not-inlined.js').then(console.log);

console.log('main');

0 comments on commit 9a334b0

Please sign in to comment.