## Example
-```js
-var path = require('path');
-
-module.exports = {
- entry: './src/test',
- output: {
- path: path.join(__dirname, 'dist'),
- filename: 'app.js'
- },
- module: {
- loaders: [{
- test: /\.purs$/,
- loader: 'purs-loader?no-prelude&output=output'
- }]
- },
- resolve: {
- modulesDirectories: [
- 'node_modules',
- 'web_modules',
- 'output'
- ]
- }
-};
-```
+See the [example](https://github.com/ethul/purs-loader/tree/topic/bower-components/example) directory for a complete example.
+++ /dev/null
-<!doctype html>
-<html class="no-js" lang="">
- <head>
- <meta charset="utf-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
- <title></title>
- <meta name="description" content="">
- <meta name="viewport" content="width=device-width, initial-scale=1">
- </head>
- <body>
- <!--[if lt IE 8]>
- <p class="browsehappy">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.</p>
- <![endif]-->
- <!-- Add your site or application content here -->
- <p>Hello world! This is HTML5 Boilerplate.</p>
- <script src="dist/app.js"></script>
- </body>
-</html>
"private": true,
"scripts": {
"webpack": "./node_modules/.bin/webpack",
- "run": "node dist/app.js"
+ "run": "node dist/app.js",
+ "clean": "rm -rf bower_components && rm -rf dist && rm -rf node_modules && rm -rf output"
},
"license": "MIT",
"devDependencies": {
- "purs-loader": "0.0.2",
+ "purs-loader": "file:../",
"webpack": "^1.4.15"
}
}
-var test = require('purs?no-prelude&output=output!./Test.purs');
+var test = require('purs?output=output!./Test.purs');
-console.log(test);
+var foo = require('purs?output=output!./Foo.purs');
+
+var baz = require('purs?output=output!./Foo/Baz.purs');
+
+console.log(test, foo, baz);
, chalk = require('chalk')
, lu = require('loader-utils')
, cwd = process.cwd()
+ , MODULE_RE = /^module\s+([\w\.]+)\s+/i
+ , BOWER_PATTERN = path.join('bower_components', 'purescript-*', 'src')
, PSC_MAKE = 'psc-make'
, OUTPUT = 'output'
, OPTIONS = {
}
;
+function pattern(root) {
+ var as = [ BOWER_PATTERN, root ];
+ return path.join('{' + as.join(',') + '}', '**', '*.purs');
+}
+
module.exports = function(source){
var callback = this.async()
, request = lu.getRemainingRequest(this)
else return h(OPTIONS[k]);
}, [])
;
- glob(path.join(root, '**', '*.purs'), function(e, files){
+ glob(pattern(root), function(e, files){
if (e !== null) callback(e);
else {
var cmd = cp.spawn(PSC_MAKE, opts.concat(files));
cmd.on('close', function(e){
if (e) callback(e);
else {
- var module = path.basename(request, '.purs');
+ var result = MODULE_RE.exec(source);
+ var module = result.length > 1 ? result[1] : '';
fs.readFile(path.join(query[OUTPUT] || OUTPUT, module, 'index.js'), 'utf-8', function(e, output){
if (e) callback(e);
else callback(e, output);