Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion uglify-webpack-prototype/babel-transpiled/app.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
'use strict';

var operations = require('./operations.js');
var operations = require('./operations.js');

/* ~dab */
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
"use strict";
"Multiply numbers";
var inp1 = 1,
inp2 = 2;equal(operations.multiply(inp1, inp2), 3);
20 changes: 10 additions & 10 deletions uglify-webpack-prototype/babel-transpiled/operations.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,25 +9,25 @@ operations.add = function (a, b) {
operations.multiply = function (a, b) {
return a * b;
};
/* dab Tape */

/*
const numbers = require("../src/operations.js")
/* ~dab const tape = require('tape');
const numbers = require('../src/operations.js'); */

/* ~dab tape('Add - adds numbers', function(t) {t.equal(numbers.add(1, 2), 2);
t.end();
});*/

/* ~dab const numbers = require("../src/operations.js")
test( 'add: add two numbers correctly', function( assert ) {
assert.equal( numbers.add(1,2), 3, 'Add numbers' ) ;
assert.end() ;
} );
*/

test('Multiple numbers', function(t){
/* ~dab test('Multiple numbers', function(t){
t.equal(numbers.multiply(1,2), 3, 'Multiple numbers');
t.end();
});
*/

// GUIDE --------------------------------------------------------------

// numbers = require('../src/numbers.js'); */

/* ~dab( Add - adds numbers', equal(numbers.add(1,2), 2) */

module.exports = operations;
39 changes: 25 additions & 14 deletions uglify-webpack-prototype/dab-babel-plugin.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,28 @@ module.exports = function ({types: t}) {
visitor: {
Program(path) {
// if there are comments in the program file
console.log(path);
if (path.parent.comments.length) {
// loop through comments
for (let i = 0; i < path.parent.comments.length; i += 1) {
console.log('COMMENTS', path.parent.comments[i].value)
// console.log('COMMENTS', path.parent.comments[i].value)
let comment = path.parent.comments
let reqTape = " dab const test = require( 'tape' );"
const reqTape = " ~dab const tape = require('tape');"
// if a comment requires Tape then replace with complete require statement
if (comment[i].value.includes('dab Tape')) {
path.parent.comments[i].value = reqTape;
console.log('COMMENT IN TAPE REQUIRE', comment[i].value)
if (comment[i].value.includes('~dab Tape')) {
// console.log('COMMENT IN TAPE REQUIRE', comment[i].value)
let fileReq = comment[i].value.split(`\n`)[1]
let reqs = reqTape + `\n` + fileReq;
// console.log('REQS', reqs);
comment[i].value = reqs;
}
else if (comment[i].value.includes('~dab tape(')) {
let comma = comment[i].value.indexOf(',')
let params0 = comment[i].value.substring(0, comma)
let params1 = comment[i].value.substring(comma + 1).trim();
let func = params0 + ", function(t) {t."+ params1 +";\nt.end();\n});"
// console.log('FUNC', func);
comment[i].value = func;
}
}
}
Expand All @@ -23,20 +35,19 @@ module.exports = function ({types: t}) {

// GUIDE --------------------------------------------------------------

/* ~dab Tape = true, numbers = require('../src/numbers.js'); */
/* ~dab( Add - adds numbers', equal(numbers.add(1,2), 2) */
/* ~dab Tape
const numbers = require('../src/numbers.js'); */

/*
~dab var test = require( 'tape' );
const numbers = require("../src/operations.js")
test( 'add: add two numbers correctly', function( assert ) {
assert.equal( numbers.add(1,2), 3, 'Add numbers' ) ;
assert.end() ;
/* ~dab tape('Add - adds numbers', equal(numbers.add(1,2), 2) */

/* ~dab tape( 'add: add two numbers correctly', function(t) {
t.equal(numbers.add(1,2), 3);
t.end() ;
} );
*/

/*
~dab test('Multiple numbers', function(t){
~dab tape('Multiple numbers', function(t){
t.equal(numbers.multiply(1,2), 3, 'Multiple numbers');
t.end();
});
Expand Down
5 changes: 5 additions & 0 deletions uglify-webpack-prototype/dab-pre-loader.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
module.exports = function (source) {
console.log('SOURCE', source);
// work magic
return source.replace('dab','BAD');
}
2 changes: 2 additions & 0 deletions uglify-webpack-prototype/src/app.js
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
const operations = require('./operations.js');

/* ~dab */
1 change: 1 addition & 0 deletions uglify-webpack-prototype/src/babel-access-test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
"Multiply numbers"; let inp1 = 1, inp2 = 2; equal(operations.multiply(inp1, inp2), 3)
17 changes: 8 additions & 9 deletions uglify-webpack-prototype/src/operations.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,24 +7,23 @@ operations.add = (a, b) => {
operations.multiply = (a, b) => {
return a * b;
}
/* dab Tape */

/* dab const numbers = require("../src/operations.js")
/* ~dab Tape
const numbers = require('../src/operations.js'); */

/* ~dab tape('Add - adds numbers', equal(numbers.add(1, 2), 2) */

/* ~dab const numbers = require("../src/operations.js")
test( 'add: add two numbers correctly', function( assert ) {
assert.equal( numbers.add(1,2), 3, 'Add numbers' ) ;
assert.end() ;
} );
*/

test('Multiple numbers', function(t){
/* ~dab test('Multiple numbers', function(t){
t.equal(numbers.multiply(1,2), 3, 'Multiple numbers');
t.end();
});
*/

// GUIDE --------------------------------------------------------------

// dab numbers = require('../src/numbers.js');

// dab( Add - adds numbers', equal(numbers.add(1,2), 2)

module.exports = operations;
16 changes: 9 additions & 7 deletions uglify-webpack-prototype/tests/tape-test-sample.js
Original file line number Diff line number Diff line change
@@ -1,17 +1,19 @@
const test = require( 'tape' );
const numbers = require("../src/operations.js")
const tape = require('tape');
const numbers = require('../src/operations.js');

tape('Add - adds numbers', function(t) {t.equal(numbers.add(1, 2), 2);
t.end();
});

const numbers = require("../src/operations.js")
test( 'add: add two numbers correctly', function( assert ) {
assert.equal( numbers.add(1,2), 3, 'Add numbers' ) ;
assert.end() ;
} );

test('Multiple numbers', function(t){

test('Multiple numbers', function(t){
t.equal(numbers.multiply(1,2), 3, 'Multiple numbers');
t.end();
});


// dab numbers = require('../src/numbers.js');

// dab( Add - adds numbers', equal(numbers.add(1,2), 2)
5 changes: 3 additions & 2 deletions uglify-webpack-prototype/webpack-comment-extraction-plugin.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
function webpackCommentExtractionPlugin() {}

webpackCommentExtractionPlugin.prototype.apply = function(compiler) {
compiler.plugin('emit', function(compilation, callback) {
compiler.plugin('after-compile', function(compilation, callback) {
console.log('hello');
const source = compilation.assets['../tests/tape-test-sample.js'].source();
compilation.assets['../tests/tape-test-sample.js'] = {
source: function() {
return source.replace(/(\/\* dab)|(\*\/)/g,'');
return source.replace(/(\/\* ~dab)|(\*\/)/g,'');
},
size: function() {
return source.length;
Expand Down
9 changes: 6 additions & 3 deletions uglify-webpack-prototype/webpack.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,23 +9,26 @@ module.exports = {
filename: 'bundle.js',
path: path.resolve(__dirname, 'dist')
},
resolveLoader:{
modules: ['node_modules', path.resolve(__dirname)]
},
module: {
rules: [
{test: /\.(js)$/, use: 'babel-loader'}
]
},
plugins: [
new webpackCommentExtractionPlugin(),
new webpack.optimize.UglifyJsPlugin({
compress: false,
mangle: false,
comments: false,
beautify: true,
extractComments: {
condition: /dab/,
condition: /~dab/,
filename: '../tests/tape-test-sample.js'
},
}),
new webpackCommentExtractionPlugin()
})
]

};