budgie-cli
Version:
Node CLI for Budgie.
64 lines • 2.71 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
const general_language_syntax_1 = require("general-language-syntax");
const os_1 = require("os");
const extensions_1 = require("../utils/extensions");
const converter_1 = require("./converter");
/**
* Extension for GLS files.
*/
exports.glsExtension = ".gls";
/**
* Converts GLS files to their language outputs.
*/
class GlsConverter {
/**
* Initializes a new instance of the GlsConverter class.
*
* @param dependencies Dependencies used for initialization.
*/
constructor(dependencies) {
this.gls = new general_language_syntax_1.Gls(dependencies.language.general.name);
this.dependencies = dependencies;
}
/**
* Converts a GLS file to its language output.
*
* @param sourcePath Original GLS file path.
* @returns The file's language output.
*/
convertFile(sourcePath) {
return __awaiter(this, void 0, void 0, function* () {
const newExtension = this.dependencies.language.general.extension;
const outputPath = extensions_1.replaceFileExtension(sourcePath, exports.glsExtension, newExtension);
try {
const results = this.gls.convert((yield this.dependencies.fileSystem.readFile(sourcePath)).split(/\r\n|\r|\n/g));
yield this.dependencies.fileSystem.writeFile(outputPath, results.join(os_1.EOL));
return {
outputPath,
sourcePath,
status: converter_1.ConversionStatus.Succeeded,
};
}
catch (error) {
return {
error,
outputPath,
sourcePath,
status: converter_1.ConversionStatus.Failed,
};
}
});
}
}
exports.GlsConverter = GlsConverter;
//# sourceMappingURL=glsConverter.js.map