remove unnecessary codebuilder

pull/673/head
Rich Harris 8 years ago
parent 078f3ad8b6
commit c8e396730b

@ -78,13 +78,10 @@ export default function dom(
visit(generator, block, state, node); visit(generator, block, state, node);
}); });
const builders = { const builder = new CodeBuilder();
main: new CodeBuilder(),
_set: new CodeBuilder(),
};
if (computations.length) { if (computations.length) {
const builder = new CodeBuilder(); const computationBuilder = new CodeBuilder();
computations.forEach(({ key, deps }) => { computations.forEach(({ key, deps }) => {
if (generator.readonly.has(key)) { if (generator.readonly.has(key)) {
@ -106,19 +103,19 @@ export default function dom(
'template' 'template'
)}.computed.${key}( ${deps.map(dep => `state.${dep}`).join(', ')} );`; )}.computed.${key}( ${deps.map(dep => `state.${dep}`).join(', ')} );`;
builder.addConditionalLine(condition, statement); computationBuilder.addConditionalLine(condition, statement);
}); });
builders.main.addBlock(deindent` builder.addBlock(deindent`
function ${generator.alias( function ${generator.alias(
'recompute' 'recompute'
)} ( state, newState, oldState, isInitial ) { )} ( state, newState, oldState, isInitial ) {
${builder} ${computationBuilder}
} }
`); `);
} }
builders._set.addBlock(deindent` const _set = deindent`
${options.dev && ${options.dev &&
deindent` deindent`
if ( typeof newState !== 'object' ) { if ( typeof newState !== 'object' ) {
@ -144,16 +141,16 @@ export default function dom(
`while ( this._bindings.length ) this._bindings.pop()();`} `while ( this._bindings.length ) this._bindings.pop()();`}
${(generator.hasComponents || generator.hasIntroTransitions) && ${(generator.hasComponents || generator.hasIntroTransitions) &&
`this._flush();`} `this._flush();`}
`); `;
if (hasJs) { if (hasJs) {
builders.main.addBlock( builder.addBlock(
`[✂${parsed.js.content.start}-${parsed.js.content.end}✂]` `[✂${parsed.js.content.start}-${parsed.js.content.end}✂]`
); );
} }
if (generator.css && options.css !== false) { if (generator.css && options.css !== false) {
builders.main.addBlock(deindent` builder.addBlock(deindent`
function ${generator.alias('add_css')} () { function ${generator.alias('add_css')} () {
var style = @createElement( 'style' ); var style = @createElement( 'style' );
style.id = ${JSON.stringify(generator.cssId + '-style')}; style.id = ${JSON.stringify(generator.cssId + '-style')};
@ -164,7 +161,7 @@ export default function dom(
} }
generator.blocks.forEach(block => { generator.blocks.forEach(block => {
builders.main.addBlock(block.render()); builder.addBlock(block.render());
}); });
const sharedPath = options.shared === true const sharedPath = options.shared === true
@ -186,7 +183,7 @@ export default function dom(
}`; }`;
// TODO deprecate component.teardown() // TODO deprecate component.teardown()
builders.main.addBlock(deindent` builder.addBlock(deindent`
function ${name} ( options ) { function ${name} ( options ) {
options = options || {}; options = options || {};
${options.dev && ${options.dev &&
@ -269,7 +266,7 @@ export default function dom(
@assign( ${prototypeBase}, ${proto}); @assign( ${prototypeBase}, ${proto});
${name}.prototype._set = function _set ( newState ) { ${name}.prototype._set = function _set ( newState ) {
${builders._set} ${_set}
}; };
${name}.prototype.teardown = ${name}.prototype.destroy = function destroy ( detach ) { ${name}.prototype.teardown = ${name}.prototype.destroy = function destroy ( detach ) {
@ -286,7 +283,7 @@ export default function dom(
}; };
`); `);
let result = builders.main.toString() let result = builder.toString()
.replace(helperPattern, (match: string, name: string) => generator.helper(name)); .replace(helperPattern, (match: string, name: string) => generator.helper(name));
if (sharedPath) { if (sharedPath) {

Loading…
Cancel
Save