Integrating canopy (with a demo parser from the canopy docs)
This commit is contained in:
parent
fe06a99178
commit
ba9b779ba7
@ -4,7 +4,7 @@
|
||||
"other": "./src/**/*.!(html|scss|js)",
|
||||
"html": "./src/**/*.html",
|
||||
"sass": "./src/**/*.scss",
|
||||
"js": "./src/**/*.js",
|
||||
"js": ["./src/**/*.js", "./src/**/*.peg"],
|
||||
"spec": "./spec/**/*_spec.js"
|
||||
},
|
||||
"compass": {
|
||||
@ -17,7 +17,6 @@
|
||||
"browserify": {
|
||||
"basedir": "./src/js",
|
||||
"debug": true,
|
||||
"fullPaths": false,
|
||||
"transform": ["es6ify"]
|
||||
"fullPaths": false
|
||||
}
|
||||
}
|
||||
|
@ -17,6 +17,8 @@ function browserifyPipe() {
|
||||
var bundler = browserify(config.browserify);
|
||||
|
||||
bundler.add([file.path, es6ify.runtime]);
|
||||
bundler.transform(require('./lib/canopy-transform'));
|
||||
bundler.transform(es6ify);
|
||||
|
||||
file.contents = bundler.bundle();
|
||||
});
|
||||
|
@ -2,7 +2,7 @@ var _ = require('lodash'),
|
||||
config = require('./config');
|
||||
|
||||
module.exports = function(karma) {
|
||||
var globs = [config.globs.js, config.globs.spec];
|
||||
var globs = _.flatten([config.globs.js, config.globs.spec]);
|
||||
|
||||
karma.set({
|
||||
frameworks: ['browserify', 'jasmine'],
|
||||
@ -19,7 +19,11 @@ module.exports = function(karma) {
|
||||
singleRun: false,
|
||||
browserify: _.defaults({}, config.browserify, {
|
||||
prebundle: function(bundle) {
|
||||
bundle.add([require('es6ify').runtime]);
|
||||
var es6ify = require('es6ify');
|
||||
|
||||
bundle.add([es6ify.runtime]);
|
||||
bundle.transform(require('./lib/canopy-transform'));
|
||||
bundle.transform(es6ify);
|
||||
}
|
||||
})
|
||||
});
|
||||
|
24
lib/canopy-transform.js
Normal file
24
lib/canopy-transform.js
Normal file
@ -0,0 +1,24 @@
|
||||
var through = require('through'),
|
||||
canopy = require('canopy');
|
||||
|
||||
module.exports = function(file) {
|
||||
if (!/\.peg$/.test(file)) {
|
||||
return through();
|
||||
}
|
||||
|
||||
var data = '';
|
||||
|
||||
return through(
|
||||
function(buf) {
|
||||
data += buf;
|
||||
},
|
||||
function() {
|
||||
try {
|
||||
this.queue(String(canopy.compile(data)));
|
||||
} catch(err) {
|
||||
this.emit('error', err);
|
||||
}
|
||||
this.queue(null);
|
||||
}
|
||||
);
|
||||
};
|
@ -11,6 +11,7 @@
|
||||
"private": true,
|
||||
"devDependencies": {
|
||||
"browserify": "^6.3.2",
|
||||
"canopy": "^0.2.0",
|
||||
"es6ify": "^1.5.1",
|
||||
"gulp": "^3.8.10",
|
||||
"gulp-compass": "^2.0.3",
|
||||
@ -25,6 +26,7 @@
|
||||
"karma-jasmine": "^0.3.1",
|
||||
"karma-notify-reporter": "^0.1.1",
|
||||
"karma-phantomjs-launcher": "^0.1.4",
|
||||
"lodash": "^2.4.1"
|
||||
"lodash": "^2.4.1",
|
||||
"through": "^2.3.6"
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,3 @@
|
||||
import test from './test';
|
||||
import parser from './parser.peg';
|
||||
|
||||
test('foo');
|
||||
|
||||
console.log('testing');
|
||||
console.log('testing:', parser.parse('[0,1,2,3]'));
|
||||
|
4
src/js/parser.peg
Normal file
4
src/js/parser.peg
Normal file
@ -0,0 +1,4 @@
|
||||
grammar Lists
|
||||
value <- list / number
|
||||
list <- "[" ( value ("," value)* )? "]"
|
||||
number <- [0-9]
|
@ -1,3 +0,0 @@
|
||||
export default m => {
|
||||
console.log(m);
|
||||
};
|
Loading…
Reference in New Issue
Block a user