mirror of
https://github.com/sveltejs/svelte.git
synced 2024-12-01 17:30:59 +01:00
fix prepending code to builders
This commit is contained in:
parent
3e57814b76
commit
a9c4b92493
@ -12,33 +12,49 @@ export default class CodeBuilder {
|
||||
addLine ( line ) {
|
||||
if ( this.last === BLOCK ) {
|
||||
this.result += `\n\n${line}`;
|
||||
} else {
|
||||
} else if ( this.last === LINE ) {
|
||||
this.result += `\n${line}`;
|
||||
} else {
|
||||
this.result += line;
|
||||
}
|
||||
|
||||
this.last = LINE;
|
||||
if ( !this.first ) this.first = LINE;
|
||||
}
|
||||
|
||||
addLineAtStart ( line ) {
|
||||
if ( this.first === BLOCK ) {
|
||||
this.result = `${line}\n\n${this.result}`;
|
||||
} else {
|
||||
} else if ( this.first === LINE ) {
|
||||
this.result = `${line}\n${this.result}`;
|
||||
} else {
|
||||
this.result += line;
|
||||
}
|
||||
|
||||
this.first = LINE;
|
||||
if ( !this.last ) this.last = LINE;
|
||||
}
|
||||
|
||||
addBlock ( block ) {
|
||||
this.result += `\n\n${block}`;
|
||||
if ( this.result ) {
|
||||
this.result += `\n\n${block}`;
|
||||
} else {
|
||||
this.result += block;
|
||||
}
|
||||
|
||||
this.last = BLOCK;
|
||||
if ( !this.first ) this.first = BLOCK;
|
||||
}
|
||||
|
||||
addBlockAtStart ( block ) {
|
||||
this.result = `${block}\n\n${this.result}`;
|
||||
if ( this.result ) {
|
||||
this.result = `${block}\n\n${this.result}`;
|
||||
} else {
|
||||
this.result += block;
|
||||
}
|
||||
|
||||
this.first = BLOCK;
|
||||
if ( !this.last ) this.last = BLOCK;
|
||||
}
|
||||
|
||||
isEmpty () {
|
||||
|
@ -118,4 +118,55 @@ describe( 'CodeBuilder', () => {
|
||||
// line 4
|
||||
` );
|
||||
});
|
||||
|
||||
it( 'adds a line at start', () => {
|
||||
const builder = new CodeBuilder();
|
||||
|
||||
builder.addLine( '// second' );
|
||||
builder.addLineAtStart( '// first' );
|
||||
|
||||
assert.equal( builder.toString(), deindent`
|
||||
// first
|
||||
// second
|
||||
` );
|
||||
});
|
||||
|
||||
it( 'adds a line at start before a block', () => {
|
||||
const builder = new CodeBuilder();
|
||||
|
||||
builder.addBlock( '// second' );
|
||||
builder.addLineAtStart( '// first' );
|
||||
|
||||
assert.equal( builder.toString(), deindent`
|
||||
// first
|
||||
|
||||
// second
|
||||
` );
|
||||
});
|
||||
|
||||
it( 'adds a block at start', () => {
|
||||
const builder = new CodeBuilder();
|
||||
|
||||
builder.addLine( '// second' );
|
||||
builder.addBlockAtStart( '// first' );
|
||||
|
||||
assert.equal( builder.toString(), deindent`
|
||||
// first
|
||||
|
||||
// second
|
||||
` );
|
||||
});
|
||||
|
||||
it( 'adds a block at start before a block', () => {
|
||||
const builder = new CodeBuilder();
|
||||
|
||||
builder.addBlock( '// second' );
|
||||
builder.addBlockAtStart( '// first' );
|
||||
|
||||
assert.equal( builder.toString(), deindent`
|
||||
// first
|
||||
|
||||
// second
|
||||
` );
|
||||
});
|
||||
});
|
||||
|
Loading…
Reference in New Issue
Block a user