Initial commit

This commit is contained in:
Developer
2025-04-21 16:03:20 +02:00
commit 2832896157
22874 changed files with 3092801 additions and 0 deletions

View File

@@ -0,0 +1,66 @@
/*
MIT License http://www.opensource.org/licenses/mit-license.php
Author Tobias Koppers @sokra
*/
"use strict";
const getNumberOfLines = require("./helpers").getNumberOfLines;
const getUnfinishedLine = require("./helpers").getUnfinishedLine;
class CodeNode {
constructor(generatedCode) {
this.generatedCode = generatedCode;
}
clone() {
return new CodeNode(this.generatedCode);
}
getGeneratedCode() {
return this.generatedCode;
}
getMappings(mappingsContext) {
const lines = getNumberOfLines(this.generatedCode);
const mapping = Array(lines+1).join(";");
if(lines > 0) {
mappingsContext.unfinishedGeneratedLine = getUnfinishedLine(this.generatedCode);
if(mappingsContext.unfinishedGeneratedLine > 0) {
return mapping + "A";
} else {
return mapping;
}
} else {
const prevUnfinished = mappingsContext.unfinishedGeneratedLine;
mappingsContext.unfinishedGeneratedLine += getUnfinishedLine(this.generatedCode);
if(prevUnfinished === 0 && mappingsContext.unfinishedGeneratedLine > 0) {
return "A";
} else {
return "";
}
}
}
addGeneratedCode(generatedCode) {
this.generatedCode += generatedCode;
}
mapGeneratedCode(fn) {
const generatedCode = fn(this.generatedCode);
return new CodeNode(generatedCode);
}
getNormalizedNodes() {
return [this];
}
merge(otherNode) {
if(otherNode instanceof CodeNode) {
this.generatedCode += otherNode.generatedCode;
return this;
}
return false;
}
}
module.exports = CodeNode;