Browse Source

allow external imports, show additional options

update-to-0.20.1
Rich-Harris 9 years ago
parent
commit
cfae349db4
  1. 1
      package.json
  2. 32
      src/app/Output/BundleOptions.html
  3. 2
      src/app/Output/index.html
  4. 17
      src/app/main.js

1
package.json

@ -30,6 +30,7 @@
"dependencies": { "dependencies": {
"ractive": "^0.7.3", "ractive": "^0.7.3",
"ractive-events-tap": "^0.2.0", "ractive-events-tap": "^0.2.0",
"ractive-transitions-slide": "^0.2.1",
"rollup": "^0.19.1" "rollup": "^0.19.1"
} }
} }

32
src/app/Output/BundleOptions.html

@ -11,6 +11,20 @@
</tr> </tr>
</table> </table>
{{#if options.format === 'iife' || options.format === 'umd'}}
{{#if exports.length}}
<div intro-outro='slide'>
<label><span>Bundle name</span> <input value='{{options.moduleName}}'></label>
</div>
{{/if}}
{{#each imports}}
<div intro-outro='slide'>
<label><span>{{this}}</span> <input value='{{options.globals[this]}}'></label>
</div>
{{/each}}
{{/if}}
<style> <style>
table { table {
width: 100%; width: 100%;
@ -34,10 +48,25 @@
background-color: #ccc; background-color: #ccc;
font-weight: bold; font-weight: bold;
} }
label {
display: block;
padding: 0 0 0 8em;
}
label span {
position: absolute;
display: block;
left: 0;
top: 1px;
padding: 0.5em;
line-height: 1;
}
</style> </style>
<script> <script>
import tap from 'ractive-events-tap'; import tap from 'ractive-events-tap';
import slide from 'ractive-transitions-slide';
component.exports = { component.exports = {
data: () => ({ data: () => ({
@ -50,6 +79,7 @@
] ]
}), }),
events: { tap } events: { tap },
transitions: { slide }
}; };
</script> </script>

2
src/app/Output/index.html

@ -3,7 +3,7 @@
<link rel='ractive' href='./Bundle.html'> <link rel='ractive' href='./Bundle.html'>
<Status error='{{error}}'/> <Status error='{{error}}'/>
<BundleOptions options='{{options}}'/> <BundleOptions options='{{options}}' imports='{{imports}}' exports='{{exports}}'/>
<Bundle code='{{code}}'/> <Bundle code='{{code}}'/>

17
src/app/main.js

@ -32,7 +32,7 @@ function update () {
entry: 'main', entry: 'main',
resolveId ( importee, importer ) { resolveId ( importee, importer ) {
if ( !importer ) return importee; if ( !importer ) return importee;
if ( importee[0] !== '.' ) return undefined; if ( importee[0] !== '.' ) return false;
return resolve( dirname( importer ), importee ).replace( /^\.\//, '' ); return resolve( dirname( importer ), importee ).replace( /^\.\//, '' );
}, },
@ -49,10 +49,19 @@ function update () {
}).then( bundle => { }).then( bundle => {
const generated = bundle.generate( options ); const generated = bundle.generate( options );
output.set( 'code', generated.code ); output.set({
output.set( 'error', null ); code: generated.code,
error: null,
imports: bundle.imports,
exports: bundle.exports
});
}) })
.catch( error => output.set( 'error', error ) ); .catch( error => {
output.set( 'error', error );
setTimeout( () => {
throw error;
});
});
} }
input.observe( 'modules', update ); input.observe( 'modules', update );

Loading…
Cancel
Save