"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
/**
* Class which implements the logic for generating valid package.json files.
*
* @export
* @class PackageJsonGenerator
*/
var PackageJsonGenerator = (function () {
function PackageJsonGenerator() {
}
/**
* Generates content of package json
*
* @param {PackageJsonInfo} options - package json info
* @param {string} dialect - database types
* @returns {PackageJson} - package json content
* @memberof PackageJsonGenerator
*/
PackageJsonGenerator.prototype.getPackageJson = function (options, dialect) {
var packageJson = {
name: options.name,
version: options.version,
description: options.description,
main: 'index.js',
scripts: {
'test': 'echo \'Error: no test specified\' && exit 1',
'start': 'node src/index.js',
'start:dev': './node_modules/.bin/nodemon src/index.js',
},
author: options.author,
license: options.license,
dependencies: {},
};
Object.assign(packageJson.scripts, this.getScriptsForDb(dialect));
return packageJson;
};
/**
* Generate package.json as string
*
* @param {PackageJsonInfo} options - package json info
* @param {string} dialect - database type
* @returns {string} - package json as string
* @memberof PackageJsonGenerator
*/
PackageJsonGenerator.prototype.getPackageJsonAsString = function (options, dialect) {
return JSON.stringify(this.getPackageJson(options, dialect), undefined, 2);
};
/**
* Based on database type generates some helpfull scripts for it
*
* @private
* @param {string} databaseType - database type
* @returns {MapOfStrings} - map of helpull scripts
* @memberof PackageJsonGenerator
*/
PackageJsonGenerator.prototype.getScriptsForDb = function (databaseType) {
switch (databaseType) {
case 'MySql':
return {
'db:migrate': './node_modules/.bin/sequelize db:migrate --env development --config ./src/configs/database.js',
'db:create-migration': "./node_modules/.bin/sequelize migration:create --env development --config ./src/configs/database.js",
};
default:
return {};
}
};
return PackageJsonGenerator;
}());
exports.PackageJsonGenerator = PackageJsonGenerator;
exports.default = new PackageJsonGenerator();
|