Marko v3: Restored hot reload

This commit is contained in:
Patrick Steele-Idem 2016-02-12 17:26:49 -07:00
parent acb4d30886
commit f00d17bc20
8 changed files with 48 additions and 7 deletions

View File

@ -127,6 +127,12 @@ function getLastModified(path, options, callback) {
callback(null, -1); // TODO Implement getLastModified
}
function clearCaches() {
exports.taglibLookup.clearCache();
exports.taglibFinder.clearCache();
exports.taglibLoader.clearCache();
}
exports.createBuilder = createBuilder;
exports.compileFile = compileFile;
exports.compile = compile;
@ -136,10 +142,12 @@ exports.getLastModified = getLastModified;
exports.createWalker = createWalker;
exports.builder = Builder.DEFAULT_BUILDER;
exports.configure = configure;
exports.clearCaches = clearCaches;
var taglibLookup = require('./taglib-lookup');
exports.taglibLookup = taglibLookup;
exports.taglibLoader = require('./taglib-loader');
exports.taglibFinder = require('./taglib-finder');
taglibLookup.registerTaglib(require.resolve('../taglibs/core/marko.json'));
taglibLookup.registerTaglib(require.resolve('../taglibs/layout/marko.json'));

View File

@ -140,11 +140,11 @@ function find(dirname, registeredTaglibs) {
return found;
}
function clearCaches() {
function clearCache() {
existsCache = {};
findCache = {};
taglibsForNodeModulesDirCache = {};
}
exports.find = find;
exports.clearCaches = clearCaches;
exports.clearCache = clearCache;

View File

@ -35,4 +35,8 @@ function load(path) {
return taglib;
}
exports.clearCache = function() {
cache = {};
};
exports.load = load;

View File

@ -16,7 +16,7 @@
'use strict';
exports.registerTaglib = registerTaglib;
exports.buildLookup = buildLookup;
exports.clearCaches = clearCaches;
exports.clearCache = clearCache;
var taglibLoader = require('../taglib-loader');
var taglibFinder = require('../taglib-finder');
@ -75,6 +75,6 @@ function registerTaglib(taglib) {
exports.registeredTaglibs.push(taglib);
}
function clearCaches() {
function clearCache() {
lookupCache = {};
}

View File

@ -0,0 +1 @@
- Hello ${data.name}!

View File

@ -8,7 +8,7 @@ var fs = require('fs');
require('../node-require').install();
xdescribe('hot-reload' , function() {
describe('hot-reload' , function() {
before(function() {
require('../hot-reload').enable();
require('../compiler').defaultOptions.checkUpToDate = false;
@ -17,7 +17,7 @@ xdescribe('hot-reload' , function() {
it('should allow a required template to be hot reloaded', function() {
var srcTemplatePath = nodePath.join(__dirname, 'fixtures/templates/api-tests/hello.marko');
var srcTemplatePath = nodePath.join(__dirname, 'fixtures/hot-reload/hot-reload.marko');
var templateSrc = fs.readFileSync(srcTemplatePath, { encoding: 'utf8' });
var tempTemplatePath = nodePath.join(__dirname, 'temp/hello.marko');
@ -39,7 +39,7 @@ xdescribe('hot-reload' , function() {
it('should allow a non-required template to be hot reloaded', function() {
var srcTemplatePath = nodePath.join(__dirname, 'fixtures/templates/api-tests/hello.marko');
var srcTemplatePath = nodePath.join(__dirname, 'fixtures/hot-reload/hot-reload.marko');
var templateSrc = fs.readFileSync(srcTemplatePath, { encoding: 'utf8' });
var tempTemplatePath = nodePath.join(__dirname, 'temp/hello2.marko');

14
test/temp/hello.marko.js Normal file
View File

@ -0,0 +1,14 @@
function create(__helpers) {
var str = __helpers.s,
empty = __helpers.e,
notEmpty = __helpers.ne,
escapeXml = __helpers.x;
return function render(data, out) {
out.w("Hello " +
escapeXml(data.name) +
"!!");
};
}
(module.exports = require("marko").c(__filename)).c(create);

14
test/temp/hello2.marko.js Normal file
View File

@ -0,0 +1,14 @@
function create(__helpers) {
var str = __helpers.s,
empty = __helpers.e,
notEmpty = __helpers.ne,
escapeXml = __helpers.x;
return function render(data, out) {
out.w("Hello " +
escapeXml(data.name) +
"!!");
};
}
(module.exports = require("marko").c(__filename)).c(create);