diff --git a/README.md b/README.md
index f95d006..ce80b18 100644
--- a/README.md
+++ b/README.md
@@ -1,8 +1,8 @@
create-service
Boring Express Microservice Generator
-
-
+
+
+
## Install
-Make sure `yeoman` is installed:
+Make sure `yeoman` is installed
```sh
$ yarn global add yo
@@ -38,36 +40,40 @@ $ yarn global add yo
Then install the generator
```sh
-$ yarn global add @boringcodes/create-service
+$ yarn global add generator-create-service
```
## Usage
-With [yo](https://github.com/yeoman/yo):
+Create a new directory
+
+```sh
+$ mkdir service-name
+```
+
+Then navigate to the created directory and run the following command to generate source
```sh
$ yo create-service
```
This scaffolds out:
+
```
-├── Dockerfile
-├── README.md
+├── src
+│ ├── components
+│ │ ├── things
+│ │ │ ├── constants.ts
+│ │ │ ├── controller.ts
+│ │ │ ├── index.ts
+│ │ └── types.ts
+│ ├── app.ts
+│ ├── index.ts
+│ └── routes.ts
+├── .env.example
+├── .huskyrc
├── package.json
-└── src
- ├── app.ts
- ├── components
- │ ├── things
- │ │ ├── constants.ts
- │ │ ├── controller.ts
- │ │ ├── index.ts
- │ │ ├── middleware.ts
- │ │ ├── model.ts
- │ │ ├── repository.ts
- │ │ └── type.ts
- │ └── types.ts
- ├── index.ts
- └── routes.ts
+└── tslint.json
```
## Contributing
diff --git a/banner.png b/banner.png
new file mode 100644
index 0000000..468a1d5
Binary files /dev/null and b/banner.png differ
diff --git a/generators/app/index.js b/generators/app/index.js
index 0e39314..88e9bd9 100644
--- a/generators/app/index.js
+++ b/generators/app/index.js
@@ -10,24 +10,53 @@ module.exports = class extends Generator {
yosay(`Welcome to the astounding ${chalk.red(pkg.name)} generator!`),
);
+ const gitName = this.user.git.name() || 'organization';
+ const gitEmail = this.user.git.email() || 'hi@domain.com';
+ const githubUsername = await (async () => {
+ try {
+ const username = await this.user.github.username();
+
+ return username;
+ } catch (err) {
+ return 'organization';
+ }
+ })();
const prompts = [
{
type: 'input',
name: 'elementName',
message: 'What is the name of your service?',
- default: 'my-awesome-service',
+ default: this.appname,
},
{
type: 'input',
name: 'elementDescription',
- message: 'Give us some small description of your service',
- default: '',
+ message: 'Description of your service?',
+ default: 'My awesome service',
+ },
+ {
+ type: 'input',
+ name: 'elementHomepageUrl',
+ message: 'Homepage URL?',
+ default: `https://github.com/${githubUsername}/${this.appname}`,
+ },
+ {
+ type: 'input',
+ name: 'elementBugsUrl',
+ message: 'Bugs tracking URL?',
+ default: `https://github.com/${githubUsername}/${this.appname}/issues`,
},
{
type: 'input',
name: 'elementAuthor',
- message: 'Who is the author of this service?',
- default: '',
+ message: 'Author of this service?',
+ default: `${gitName} \<${gitEmail}\>`,
+ },
+ {
+ type: 'input',
+ name: 'elementRepositoryUrl',
+ message: 'Repository URL?',
+ default: `https://github.com/${githubUsername}/${this.appname}.git`,
},
];
@@ -39,18 +68,13 @@ module.exports = class extends Generator {
writing() {
this.fs.copyTpl(
- [this.templatePath('**')],
+ [this.templatePath('**/*'), this.templatePath('**/.*')],
this.destinationPath(),
this.props,
);
-
- this.fs.copyTpl(
- this.templatePath('.env.example'),
- this.destinationPath('.env.example'),
- );
}
install() {
- this.installDependencies();
+ this.yarnInstall();
}
};
diff --git a/generators/app/templates/.gitignore b/generators/app/templates/.gitignore
deleted file mode 100644
index b4224c1..0000000
--- a/generators/app/templates/.gitignore
+++ /dev/null
@@ -1,25 +0,0 @@
-# dependencies
-node_modules
-package-lock.json
-test/node_modules
-
-
-# testing
-.nyc_output
-coverage
-
-# build output
-build
-dist
-
-# misc
-.DS_Store
-.env
-npm-debug.log*
-yarn-debug.log*
-yarn-error.log*
-
-# logs & pids
-*.log
-pids
-.idea
diff --git a/generators/app/templates/README.md b/generators/app/templates/README.md
deleted file mode 100644
index 8460734..0000000
--- a/generators/app/templates/README.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# <%= elementName %>
-
-API Service Starter Kit
diff --git a/generators/app/templates/package.json b/generators/app/templates/package.json
index b3fa272..497a649 100644
--- a/generators/app/templates/package.json
+++ b/generators/app/templates/package.json
@@ -1,12 +1,11 @@
{
"name": "<%= elementName %>",
- "description": "<%= elementDescription %>",
"version": "0.0.0",
- "private": true,
- "license": "MIT",
- "author": "<%= elementAuthor %>",
- "repository": "",
- "bugs": "",
+ "description": "<%= elementDescription %>",
+ "homepage": "<%= elementHomepageUrl %>",
+ "bugs": "<%= elementBugsUrl %>",
+ "author": "<%- elementAuthor %>",
+ "repository": "<%= elementRepositoryUrl %>",
"scripts": {
"clean": "rm -rf build",
"purge": "rm -rf node_modules",
@@ -31,7 +30,6 @@
"devDependencies": {
"@types/express": "^4.16.0",
"@types/morgan": "^1.7.35",
- "@types/qs": "^6.5.1",
"@types/yup": "^0.26.3",
"husky": "^1.2.1",
"standard-version": "^4.4.0",
diff --git a/generators/app/templates/src/components/things/controller.ts b/generators/app/templates/src/components/things/controller.ts
index 097ad06..930b538 100644
--- a/generators/app/templates/src/components/things/controller.ts
+++ b/generators/app/templates/src/components/things/controller.ts
@@ -10,7 +10,7 @@ import { NAME } from './constants';
interface Request extends ExpressRequest {
readonly [NAME]: any;
-};
+}
const list = async (_: Request, res: Response, next: NextFunction) => {
try {
diff --git a/package.json b/package.json
index 685d7aa..cd1f813 100644
--- a/package.json
+++ b/package.json
@@ -1,5 +1,5 @@
{
- "name": "@boringcodes/create-service",
+ "name": "generator-create-service",
"version": "0.1.1",
"description": "Boring Express Microservice Generator",
"homepage": "https://github.com/boringcodes/create-service",