@ewwmy/cv-builder
Version:
💻 A CLI utility to generate a well-formatted CV in PDF format 📕 based on JSON CV data and a Handlebars template
72 lines (71 loc) • 3.55 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 });
exports.bootstrap = exports.appBindings = void 0;
const inversify_1 = require("inversify");
const application_service_1 = require("./application/application.service");
const dependency_types_1 = require("./types/dependency.types");
const tslog_logger_service_1 = require("./logger/ts-log/tslog-logger.service");
const app_config_service_1 = require("./config/app-config.service");
const markdown_service_1 = require("./markdown/markdown.service");
const file_service_1 = require("./files/file.service");
const handlebars_service_1 = require("./templates/handlebars.service");
const puppeteer_service_1 = require("./output/puppeteer.service");
const arguments_service_1 = require("./arguments/arguments.service");
const json_transformer_service_1 = require("./json-transformer/json-transformer.service");
const image_service_1 = require("./images/image.service");
exports.appBindings = new inversify_1.ContainerModule((bind) => {
bind(dependency_types_1.DependencyTypes.Application)
.to(application_service_1.ApplicationService)
.inSingletonScope();
bind(dependency_types_1.DependencyTypes.Logger)
.to((tslog_logger_service_1.TslogLoggerService))
.inSingletonScope();
bind(dependency_types_1.DependencyTypes.Config)
.to(app_config_service_1.AppConfigService)
.inSingletonScope();
bind(dependency_types_1.DependencyTypes.Arguments)
.to(arguments_service_1.ArgumentsService)
.inSingletonScope();
bind(dependency_types_1.DependencyTypes.Markdown)
.to(markdown_service_1.MarkdownService)
.inSingletonScope();
bind(dependency_types_1.DependencyTypes.Template)
.to(handlebars_service_1.HandlebarsService)
.inSingletonScope();
bind(dependency_types_1.DependencyTypes.File).to(file_service_1.FileService).inSingletonScope();
bind(dependency_types_1.DependencyTypes.Image).to(image_service_1.ImageService).inSingletonScope();
bind(dependency_types_1.DependencyTypes.Output)
.to(puppeteer_service_1.PuppeteerService)
.inSingletonScope();
bind(dependency_types_1.DependencyTypes.JsonTransformer)
.to(json_transformer_service_1.JsonTransformerService)
.inSingletonScope();
});
const bootstrap = () => __awaiter(void 0, void 0, void 0, function* () {
try {
const appContainer = new inversify_1.Container();
appContainer.load(exports.appBindings);
const app = appContainer.get(dependency_types_1.DependencyTypes.Application);
yield app.run();
}
catch (error) {
if (error instanceof Error) {
console.error(error.message);
}
else {
console.error(error);
}
}
});
exports.bootstrap = bootstrap;
(0, exports.bootstrap)();