Completed merge of marko-widgets and other cleanup

This commit is contained in:
Patrick Steele-Idem 2016-11-02 16:12:13 -06:00
parent 1b8770df35
commit 3010570502
637 changed files with 1154 additions and 1607 deletions

1
.gitignore vendored
View File

@ -10,3 +10,4 @@
coverage
.nvmrc
~*
/.cache

View File

@ -55,7 +55,7 @@ function relPath(path) {
}
}
var args = require('raptor-args').createParser({
var args = require('argly').createParser({
'--help': {
type: 'boolean',
description: 'Show this help message'

View File

@ -204,6 +204,7 @@ taglibLookup.registerTaglib(require.resolve('../taglibs/layout/marko.json'));
taglibLookup.registerTaglib(require.resolve('../taglibs/html/marko.json'));
taglibLookup.registerTaglib(require.resolve('../taglibs/async/marko.json'));
taglibLookup.registerTaglib(require.resolve('../taglibs/cache/marko.json'));
taglibLookup.registerTaglib(require.resolve('../widgets/taglib/marko.json'));
exports.registerTaglib = function(path) {
taglibLookup.registerTaglib(path);

View File

@ -1,13 +1,21 @@
var marko = require('./');
var createRenderFunc = require('raptor-renderer').createRenderFunc;
function defineRenderer(def) {
var template = def.template;
var getTemplateData = def.getTemplateData;
var renderer = def.renderer;
var loadedTemplate;
if (typeof template === 'string') {
template = marko.load(template);
}
var createOut;
if (template) {
createOut = template.createOut;
} else {
createOut = def.createOut || marko.createOut;
}
if (!renderer) {
// Create a renderer function that takes care of translating
@ -21,12 +29,6 @@ function defineRenderer(def) {
newProps = {};
}
if (!loadedTemplate) {
// Lazily load the template on first render to avoid potential problems
// with circular dependencies
loadedTemplate = template.render ? template : marko.load(template);
}
// Use getTemplateData(state, props, out) to get the template
// data. If that method is not provided then just use the
// the state (if provided) or the input data.
@ -36,11 +38,15 @@ function defineRenderer(def) {
// Render the template associated with the component using the final template
// data that we constructed
loadedTemplate.render(templateData, out);
template.render(templateData, out);
};
}
renderer.render = createRenderFunc(renderer);
renderer.render = function(input) {
var out = createOut();
renderer(input, out);
return out.end();
};
return renderer;
}

View File

@ -12,14 +12,19 @@
"url": "https://github.com/marko-js/marko.git"
},
"scripts": {
"test": "npm run mocha && npm run jshint",
"test": "npm run mocha -s && npm run test-widgets -s && npm run jshint -s",
"mocha": "mocha --ui bdd --reporter spec ./test/",
"test-coverage": "istanbul cover _mocha --include-all-sources -- --ui bdd --reporter spec ./test && npm run jshint",
"test-fast": "mocha --ui bdd --reporter spec ./test/render-test",
"test-async": "mocha --ui bdd --reporter spec ./test/async-render-test",
"test-taglib-loader": "mocha --ui bdd --reporter spec ./test/taglib-loader-test",
"test-express": "mocha --ui bdd --reporter spec ./test/express-test",
"jshint": "jshint compiler/ runtime/ taglibs/",
"test-widgets": "npm run test-widgets-browser -s && npm run jshint --silent",
"test-widgets-browser": "node test/browser-tests-runner/cli.js test/widgets-browser-tests.js --automated && npm run test-widgets-browser-pages",
"test-widgets-browser-pages": "node test/browser-tests-runner/cli.js --pages --automated",
"test-widgets-browser-dev": "browser-refresh test/browser-tests-runner/cli.js test/widgets-browser-tests.js --server",
"test-widgets-page": "browser-refresh test/browser-tests-runner/cli.js test/widgets-browser-tests.js --server --page",
"jshint": "jshint compiler/ runtime/ taglibs/ widgets/",
"coveralls": "cat ./coverage/lcov.info | coveralls"
},
"author": "Patrick Steele-Idem <pnidem@gmail.com>",
@ -30,6 +35,7 @@
"Martin Aberer"
],
"dependencies": {
"argly": "^1.0.0",
"app-module-path": "^1.0.5",
"async-vdom-builder": "^1.0.0",
"async-writer": "^3.0.0",
@ -40,36 +46,49 @@
"events": "^1.0.2",
"he": "^1.1.0",
"htmljs-parser": "^1.5.3",
"lasso-modules-client": "^1.0.0",
"lasso-package-root": "^1.0.0",
"listener-tracker": "^1.0.2",
"marko-dom": "^1.1.1",
"marko-html-util": "^1.0.0",
"marko-vdom": "^1.0.0",
"minimatch": "^3.0.2",
"morphdom": "^2.2.0",
"object-assign": "^4.1.0",
"property-handlers": "^1.0.0",
"raptor-args": "^1.0.0",
"raptor-async": "^1.1.2",
"raptor-json": "^1.0.1",
"raptor-logging": "^1.0.1",
"raptor-polyfill": "^1.0.0",
"raptor-promises": "^1.0.1",
"raptor-regexp": "^1.0.0",
"raptor-renderer": "^1.4.4",
"raptor-strings": "^1.0.0",
"raptor-util": "^3.0.0",
"resolve-from": "^1.0.0",
"strip-json-comments": "^2.0.1",
"try-require": "^1.2.1"
"try-require": "^1.2.1",
"warp10": "^1.0.0"
},
"devDependencies": {
"async": "^0.9.0",
"bluebird": "^2.9.30",
"browser-refresh": "^1.6.0",
"browser-refresh-taglib": "^1.1.0",
"chai": "^3.3.0",
"child-process-promise": "^2.0.3",
"coveralls": "^2.11.9",
"express": "^4.13.4",
"fs-extra": "^0.30.0",
"ignoring-watcher": "^1.0.2",
"istanbul": "^0.4.3",
"jquery": "^2.1.3",
"jsdom": "^9.6.0",
"jshint": "^2.5.0",
"lasso": "^2.4.1",
"lasso-marko": "^2.0.4",
"mkdirp": "^0.5.1",
"mocha": "^2.3.3",
"mocha-phantomjs": "^4.1.0",
"phantomjs-prebuilt": "^2.1.13",
"request": "^2.72.0",
"require-self-ref": "^2.0.1",
"through": "^2.3.4"

6
test/.gitignore vendored
View File

@ -1,3 +1,9 @@
/node_modules
/scratch.js
*.generated.js
actual.js
actual.html
*.actual.js
*.actual.html
/generated

View File

@ -1,5 +1,5 @@
'use strict';
require('./patch-module');
require('./util/patch-module');
var chai = require('chai');
chai.config.includeStack = true;

View File

@ -1,5 +1,5 @@
'use strict';
require('./patch-module');
require('./util/patch-module');
require('marko/node-require').install();
var chai = require('chai');

View File

@ -1,5 +1,5 @@
'use strict';
require('./patch-module');
require('./util/patch-module');
require('marko/node-require').install();
require('require-self-ref');

View File

@ -1,5 +1,5 @@
'use strict';
require('./patch-module');
require('./util/patch-module');
var chai = require('chai');
chai.config.includeStack = true;

View File

@ -1,5 +1,5 @@
'use strict';
require('./patch-module');
require('./util/patch-module');
require('../node-require').install();
var chai = require('chai');

View File

@ -11,6 +11,6 @@ exports.check = function(marko, markoCompiler, expect, done) {
});
var renderResult = renderer.render({ firstName: 'John', lastName: 'Doe' });
expect(renderResult.html).to.equal('<div>Hello John Doe!</div>');
expect(renderResult.getOutput()).to.equal('<div>Hello John Doe!</div>');
done();
};

View File

@ -7,7 +7,7 @@ exports.check = function(marko, markoCompiler, expect, done) {
expect(markoCompiler.config.writeToDisk).to.equal(true);
expect(markoCompiler.config.preserveWhitespace).to.equal(true);
require('~/node-require').install({
require('marko/node-require').install({
compilerOptions: {
writeToDisk: false,
preserveWhitespace: false

View File

@ -1,14 +1,10 @@
exports.templateData = {
sharedData: function (args, done) {
var deferred = require('raptor-promises').defer();
return new Promise(function(resolve, reject) {
setTimeout(function() {
deferred.resolve({
name: 'testSharedData'
});
resolve({ name: 'testSharedData' });
}, 100);
return deferred.promise;
});
},
contextData: function (args, done) {
setTimeout(function() {

View File

@ -1,11 +1,9 @@
exports.templateData = {
userInfo: function() {
var deferred = require('raptor-promises').defer();
return new Promise(function(resolve, reject) {
setTimeout(function() {
deferred.resolve({
name: 'John'
resolve({ name: 'John' });
}, 100);
});
}, 200);
return deferred.promise;
}
};

View File

@ -1,9 +1,9 @@
var deferred = require('raptor-promises').defer();
setTimeout(function() {
deferred.resolve({});
}, 200);
var promise = new Promise(function(resolve, reject) {
setTimeout(function() {
resolve({});
}, 100);
});
exports.templateData = {
promiseData: deferred.promise
promiseData: promise
};

View File

@ -1,10 +1,9 @@
var deferred = require('raptor-promises').defer();
setTimeout(function() {
deferred.resolve('Test promise');
}, 200);
exports.templateData = {
promiseData: function (arg, done) {
return deferred.promise;
return new Promise(function(resolve, reject) {
setTimeout(function() {
resolve('Test promise');
}, 100);
});
}
};

View File

@ -1,14 +1,12 @@
exports.templateData = {
sharedData: function (args, done) {
var deferred = require('raptor-promises').defer();
return new Promise(function(resolve, reject) {
setTimeout(function() {
deferred.resolve({
resolve({
name: 'testSharedData'
});
}, 100);
return deferred.promise;
});
},
contextData: function (args, done) {
setTimeout(function() {

View File

@ -1,11 +1,11 @@
exports.templateData = {
userInfo: function() {
var deferred = require('raptor-promises').defer();
return new Promise(function(resolve, reject) {
setTimeout(function() {
deferred.resolve({
resolve({
name: 'John'
});
}, 200);
return deferred.promise;
}, 100);
});
}
};

View File

@ -1,9 +1,9 @@
var deferred = require('raptor-promises').defer();
setTimeout(function() {
deferred.resolve({});
}, 200);
var promise = new Promise(function(resolve, reject) {
setTimeout(function() {
resolve({});
}, 100);
});
exports.templateData = {
promiseData: deferred.promise
promiseData: promise
};

View File

@ -1,10 +1,9 @@
var deferred = require('raptor-promises').defer();
setTimeout(function() {
deferred.resolve('Test promise');
}, 200);
exports.templateData = {
promiseData: function (arg, done) {
return deferred.promise;
return new Promise(function(resolve, reject) {
setTimeout(function() {
resolve('Test promise');
}, 100);
});
}
};

View File

@ -2,10 +2,24 @@
"name",
"age",
"foo-on-*",
"lasso-nonce",
"body-only-if",
"if",
"else-if",
"else",
"for",
"while"
"while",
"w-bind",
"w-scope",
"w-extend",
"w-config",
"w-for",
"w-id",
"w-body",
"w-preserve",
"w-preserve-body",
"w-preserve-if",
"w-preserve-body-if",
"w-preserve-attrs",
"w-on*"
]

View File

@ -2,6 +2,14 @@
"*",
"foo",
"bar",
"lasso-page",
"lasso-slot",
"lasso-head",
"lasso-body",
"lasso-img",
"_lasso-resources-root",
"lasso-resource",
"browser-refresh",
"assign",
"else",
"else-if",
@ -35,5 +43,9 @@
"async-fragment-placeholder",
"async-fragment-timeout",
"async-fragment-error",
"cached-fragment"
"cached-fragment",
"w-widget",
"init-widgets",
"w-preserve",
"widget-types"
]

View File

@ -1,4 +1,5 @@
[
"_lasso-resources-root",
"*",
"a",
"assign",
@ -13,6 +14,7 @@
"await-reorderer",
"await-timeout",
"bar",
"browser-refresh",
"cached-fragment",
"else",
"else-if",
@ -23,7 +25,14 @@
"include",
"include-html",
"include-text",
"init-widgets",
"invoke",
"lasso-body",
"lasso-head",
"lasso-img",
"lasso-page",
"lasso-resource",
"lasso-slot",
"layout-placeholder",
"layout-put",
"layout-use",
@ -36,5 +45,8 @@
"textarea",
"unless",
"var",
"while"
"w-preserve",
"w-widget",
"while",
"widget-types"
]

View File

@ -7,5 +7,5 @@ exports.check = function(markoCompiler, expect) {
transformers.push(transformer);
});
expect(transformers.length).to.equal(1);
expect(transformers.length).to.equal(3);
};

View File

@ -8,6 +8,8 @@ exports.check = function(markoCompiler, expect) {
transformers.push(transformer);
});
expect(transformers.length).to.equal(1);
expect(transformers.length).to.equal(3);
expect(transformers[0].path.indexOf('core-transformer')).to.not.equal(-1);
expect(transformers[1].path.indexOf('lasso-nonce-attr-transformer')).to.not.equal(-1);
expect(transformers[2].path.indexOf('widgets-transformer')).to.not.equal(-1);
};

View File

@ -18,16 +18,20 @@ exports.check = function(markoCompiler, expect) {
transformers.push(transformer);
});
expect(transformers.length).to.equal(2);
expect(transformers.length).to.equal(4);
expect(transformers[0].path.indexOf('foo')).to.not.equal(-1);
expect(transformers[1].path.indexOf('core-transformer')).to.not.equal(-1);
expect(transformers[2].path.indexOf('lasso-nonce-attr-transformer')).to.not.equal(-1);
expect(transformers[3].path.indexOf('widgets-transformer')).to.not.equal(-1);
transformers = [];
lookup.forEachTagTransformer('transform-bar', function(transformer) {
transformers.push(transformer);
});
expect(transformers.length).to.equal(2);
expect(transformers.length).to.equal(4);
expect(transformers[0].path.indexOf('core-transformer')).to.not.equal(-1);
expect(transformers[1].path.indexOf('bar')).to.not.equal(-1);
expect(transformers[2].path.indexOf('lasso-nonce-attr-transformer')).to.not.equal(-1);
expect(transformers[3].path.indexOf('widgets-transformer')).to.not.equal(-1);
};

View File

@ -1,4 +1,4 @@
module.exports = require('marko-widgets').defineComponent({
module.exports = require('marko/widgets').defineComponent({
template: require('./template.marko'),
init: function() {

View File

@ -1,4 +1,4 @@
module.exports = require('marko-widgets').defineComponent({
module.exports = require('marko/widgets').defineComponent({
template: require('./template.marko'),
init: function() {

View File

@ -1,4 +1,4 @@
module.exports = require('marko-widgets').defineComponent({
module.exports = require('marko/widgets').defineComponent({
template: require('./template.marko'),
init: function() {

View File

@ -1,4 +1,4 @@
module.exports = require('marko-widgets').defineComponent({
module.exports = require('marko/widgets').defineComponent({
template: require('./template.marko'),
init: function() {

View File

@ -1,4 +1,4 @@
module.exports = require('marko-widgets').defineComponent({
module.exports = require('marko/widgets').defineComponent({
template: require.resolve('./template.marko'),
getInitialState: function(input) {
return {

View File

@ -1,4 +1,4 @@
module.exports = require('marko-widgets').defineComponent({
module.exports = require('marko/widgets').defineComponent({
template: require.resolve('./template.marko'),
getInitialState: function(input) {
return {

View File

@ -8,7 +8,7 @@ module.exports = function(helpers) {
expect(widget.el.className).to.contain('large');
require('marko-widgets').batchUpdate(function() {
require('marko/widgets').batchUpdate(function() {
widget.setSize('small');
});

View File

@ -1,4 +1,4 @@
module.exports = require('marko-widgets').defineComponent({
module.exports = require('marko/widgets').defineComponent({
template: require.resolve('./template.marko'),
getInitialState: function(input) {
return {

View File

@ -10,7 +10,7 @@ module.exports = function(helpers, done) {
widget.setSize('small');
expect(widget.el.className).to.not.contain('small');
require('marko-widgets').onAfterUpdate(function() {
require('marko/widgets').onAfterUpdate(function() {
expect(widget.el.className).to.contain('small');
done();
});

View File

@ -0,0 +1,7 @@
module.exports = require('marko/widgets').defineComponent({
template: require('./template.marko'),
init: function() {
}
});

View File

@ -1,4 +1,4 @@
module.exports = require('marko-widgets').defineComponent({
module.exports = require('marko/widgets').defineComponent({
template: require('./template.marko'),
getTemplateData: function(state, input) {

View File

@ -1,3 +1,3 @@
// Export a render(input, callback) method that can be used
// to render this UI component on the client or server
require('marko-widgets').renderable(exports, require('./renderer'));
require('marko/widgets').renderable(exports, require('./renderer'));

View File

@ -1,4 +1,4 @@
module.exports = require('marko-widgets').defineComponent({
module.exports = require('marko/widgets').defineComponent({
template: require('./template.marko'),
getWidgetConfig: function(input) {

View File

@ -1,3 +1,3 @@
// Export a render(input, callback) method that can be used
// to render this UI component on the client or server
require('marko-widgets').renderable(exports, require('./renderer'));
require('marko/widgets').renderable(exports, require('./renderer'));

View File

@ -1,3 +1,3 @@
// Export a render(input, callback) method that can be used
// to render this UI component on the client or server
require('marko-widgets').renderable(exports, require('./renderer'));
require('marko/widgets').renderable(exports, require('./renderer'));

View File

@ -1,3 +1,3 @@
// Export a render(input, callback) method that can be used
// to render this UI component on the client or server
require('marko-widgets').renderable(exports, require('./renderer'));
require('marko/widgets').renderable(exports, require('./renderer'));

View File

@ -1,3 +1,3 @@
// Export a render(input) method that can be used
// to render this UI component on the client or server
require('marko-widgets').renderable(exports, require('./renderer'));
require('marko/widgets').renderable(exports, require('./renderer'));

View File

@ -0,0 +1,3 @@
// Export a render(input, callback) method that can be used
// to render this UI component on the client or server
require('marko/widgets').renderable(exports, require('./renderer'));

View File

@ -0,0 +1,3 @@
// Export a render(input, callback) method that can be used
// to render this UI component on the client or server
require('marko/widgets').renderable(exports, require('./renderer'));

Some files were not shown because too many files have changed in this diff Show More