@anthonylzq/simba.js 6.1.0 → 6.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +27 -305
  2. package/package.json +9 -3
package/README.md CHANGED
@@ -3,6 +3,7 @@
3
3
  <a href="https://simbajs.notion.site/783092dc7d444067b4c56a25d671f658?v=31060f3d17524ca58870e86c2960a6df"><img src="https://i.ibb.co/QFX0WnH/simba-pink.png" alt="Simba.js"></a>
4
4
  </h1>
5
5
 
6
+
6
7
  [![NPM version](https://img.shields.io/npm/v/@anthonylzq/simba.js.svg?style=flat)](https://www.npmjs.com/package/@anthonylzq/simba.js)
7
8
  [![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/AnthonyLzq/simba.js/blob/master/LICENSE)
8
9
  [![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com)
@@ -129,318 +130,20 @@ Finally, you may not want to use a license or one of the available licenses, don
129
130
  simba -N myProject -D 'This is a test' -a myName -e myEmail@email.com -H
130
131
  ```
131
132
 
132
- #### Why didn't you use [`TypeGraphQL`](https://typegraphql.com/)?
133
+ #### Why I didn't you use [`TypeGraphQL`](https://typegraphql.com/)?
133
134
 
134
135
  [They don't support GraphQL v16.x.x](https://github.com/MichalLytek/type-graphql/issues/1100), until then.
135
136
 
136
137
  ## <a name="project-structure"></a>Project structure
137
138
 
138
- Regardless of the option chosen, a new folder will be generated with the name of the project, it will contain the following structure, depending if you have chosen Express or Fastify:
139
-
140
- ### Express case
141
-
142
- ```
143
- 📂.github
144
- ┣ 📂workflows
145
- ┃ ┣ 📜test.yml
146
- 📂node_modules
147
- 📂src
148
- ┣ 📂@types
149
- ┃ ┣ 📂custom
150
- ┃ ┃ ┣ 📜request.d.ts
151
- ┃ ┃ ┗ 📜response.d.ts
152
- ┃ ┣ 📂models
153
- ┃ ┃ ┗ 📜user.d.ts
154
- ┃ ┗ 📜index.d.ts
155
- ┣ 📂database
156
- ┃ ┣ 📂mongo
157
- ┃ ┃ ┣ 📂models
158
- ┃ ┃ ┃ ┣ 📜index.ts
159
- ┃ ┃ ┃ ┗ 📜user.ts
160
- ┃ ┃ ┣ 📂queries
161
- ┃ ┃ ┃ ┣ 📜index.ts
162
- ┃ ┃ ┃ ┗ 📜user.ts
163
- ┃ ┃ ┣ 📜connection.ts
164
- ┃ ┃ ┗ 📜index.ts
165
- ┃ ┗ 📜index.ts
166
- ┣ 📂network
167
- ┃ ┣ 📂routes
168
- ┃ ┃ ┣ 📂utils
169
- ┃ ┃ ┃ ┗ 📜index.ts
170
- ┃ ┃ ┣ 📜home.ts
171
- ┃ ┃ ┣ 📜index.ts
172
- ┃ ┃ ┗ 📜user.ts
173
- ┃ ┣ 📜index.ts
174
- ┃ ┣ 📜response.ts
175
- ┃ ┣ 📜routes.ts
176
- ┃ ┗ 📜server.ts
177
- ┣ 📂schemas
178
- ┃ ┣ 📜index.ts
179
- ┃ ┗ 📜user.ts
180
- ┣ 📂services
181
- ┃ ┣ 📂utils
182
- ┃ ┃ ┣ 📂messages
183
- ┃ ┃ ┃ ┣ 📜index.ts
184
- ┃ ┃ ┃ ┗ 📜user.ts
185
- ┃ ┃ ┗ 📜index.ts
186
- ┃ ┣ 📜index.ts
187
- ┃ ┗ 📜user.ts
188
- ┣ 📂utils
189
- ┃ ┣ 📜docs.json
190
- ┃ ┗ 📜index.ts
191
- ┣ 📜index.ts
192
- 📂test
193
- ┣ 📜index.test.ts
194
- ┣ 📜jestGlobalSetup.ts
195
- ┗ 📜setEnvVars.ts
196
- 📜.env
197
- 📜.eslintignore
198
- 📜.eslintrc
199
- 📜.gitignore
200
- 📜CHANGELOG.md
201
- 📜Dockerfile
202
- 📜heroku.yml
203
- 📜index.http
204
- 📜LICENSE
205
- 📜nodemon.json
206
- 📜package.json
207
- 📜README.md
208
- 📜index.http
209
- 📜tsconfig.base.json
210
- 📜tsconfig.json
211
- 📜webpack.config.js
212
- 📜yarn.lock (or package-lock.json)
213
- ```
214
-
215
- ### Express-GraphQL case
139
+ If you want to check the content of the files, please check the [example](https://github.com/AnthonyLzq/simba.js/tree/master/example) folder, there you will an example for both, Express and Fastify (REST and GraphQL versions). Regardless of the option chosen, a new folder will be generated with the name of the project.
216
140
 
217
- ```
218
- 📂.github
219
- ┣ 📂workflows
220
- ┃ ┣ 📜test.yml
221
- 📂node_modules
222
- 📂src
223
- ┣ 📂@types
224
- ┃ ┣ 📂custom
225
- ┃ ┃ ┣ 📜request.d.ts
226
- ┃ ┃ ┗ 📜response.d.ts
227
- ┃ ┣ 📂graphQL
228
- ┃ ┃ ┗ 📜context.d.ts
229
- ┃ ┣ 📂models
230
- ┃ ┃ ┗ 📜user.d.ts
231
- ┃ ┗ 📜index.d.ts
232
- ┣ 📂database
233
- ┃ ┣ 📂mongo
234
- ┃ ┃ ┣ 📂models
235
- ┃ ┃ ┃ ┣ 📜index.ts
236
- ┃ ┃ ┃ ┗ 📜user.ts
237
- ┃ ┃ ┣ 📂queries
238
- ┃ ┃ ┃ ┣ 📜index.ts
239
- ┃ ┃ ┃ ┗ 📜user.ts
240
- ┃ ┃ ┣ 📜connection.ts
241
- ┃ ┃ ┗ 📜index.ts
242
- ┃ ┗ 📜index.ts
243
- ┣ 📂graphQL
244
- ┃ ┣ 📂models
245
- ┃ ┃ ┣ 📂User
246
- ┃ ┃ ┃ ┣ 📜index.ts
247
- ┃ ┃ ┃ ┣ 📜mutations.ts
248
- ┃ ┃ ┃ ┣ 📜mutationsResolver.ts
249
- ┃ ┃ ┃ ┣ 📜queries.ts
250
- ┃ ┃ ┃ ┣ 📜queriesResolver.ts
251
- ┃ ┃ ┃ ┣ 📜schemas.ts
252
- ┃ ┃ ┃ ┗ 📜typeDefs.ts
253
- ┃ ┃ ┣ 📂utils
254
- ┃ ┃ ┃ ┣ 📂messages
255
- ┃ ┃ ┃ ┃ ┣ 📜index.ts
256
- ┃ ┃ ┃ ┃ ┗ 📜user.ts
257
- ┃ ┃ ┃ ┗ 📜index.ts
258
- ┃ ┃ ┗ 📜index.ts
259
- ┃ ┗ 📜index.ts
260
- ┣ 📂network
261
- ┃ ┣ 📂routes
262
- ┃ ┃ ┣ 📂utils
263
- ┃ ┃ ┃ ┗ 📜index.ts
264
- ┃ ┃ ┣ 📜home.ts
265
- ┃ ┃ ┣ 📜index.ts
266
- ┃ ┣ 📜index.ts
267
- ┃ ┣ 📜response.ts
268
- ┃ ┣ 📜routes.ts
269
- ┃ ┗ 📜server.ts
270
- ┣ 📂schemas
271
- ┃ ┣ 📜index.ts
272
- ┃ ┗ 📜user.ts
273
- ┣ 📂utils
274
- ┃ ┣ 📜docs.json
275
- ┃ ┗ 📜index.ts
276
- ┣ 📜index.ts
277
- 📂test
278
- ┣ 📜index.test.ts
279
- ┣ 📜jestGlobalSetup.ts
280
- ┗ 📜setEnvVars.ts
281
- 📜.env
282
- 📜.eslintignore
283
- 📜.eslintrc
284
- 📜.gitignore
285
- 📜CHANGELOG.md
286
- 📜Dockerfile
287
- 📜heroku.yml
288
- 📜LICENSE
289
- 📜nodemon.json
290
- 📜package.json
291
- 📜README.md
292
- 📜tsconfig.base.json
293
- 📜tsconfig.json
294
- 📜webpack.config.js
295
- 📜yarn.lock (or package-lock.json)
296
- ```
141
+ Also, if you are interested in the folder structure of each case, please take a look at:
297
142
 
298
- ### Fastify case
299
-
300
- ```
301
- 📂node_modules
302
- 📂src
303
- ┣ 📂@types
304
- ┃ ┣ 📂models
305
- ┃ ┃ ┗ 📜user.d.ts
306
- ┃ ┗ 📜index.d.ts
307
- ┣ 📂database
308
- ┃ ┣ 📂mongo
309
- ┃ ┃ ┣ 📂models
310
- ┃ ┃ ┃ ┣ 📜index.ts
311
- ┃ ┃ ┃ ┗ 📜user.ts
312
- ┃ ┃ ┣ 📂queries
313
- ┃ ┃ ┃ ┣ 📜index.ts
314
- ┃ ┃ ┃ ┗ 📜user.ts
315
- ┃ ┃ ┣ 📜connection.ts
316
- ┃ ┃ ┗ 📜index.ts
317
- ┃ ┗ 📜index.ts
318
- ┣ 📂network
319
- ┃ ┣ 📂routes
320
- ┃ ┃ ┣ 📂utils
321
- ┃ ┃ ┃ ┗ 📜docs.ts
322
- ┃ ┃ ┣ 📜docs.ts
323
- ┃ ┃ ┣ 📜home.ts
324
- ┃ ┃ ┣ 📜index.ts
325
- ┃ ┃ ┗ 📜user.ts
326
- ┃ ┣ 📜index.ts
327
- ┃ ┣ 📜response.ts
328
- ┃ ┣ 📜routes.ts
329
- ┃ ┗ 📜server.ts
330
- ┣ 📂schemas
331
- ┃ ┣ 📜index.ts
332
- ┃ ┗ 📜user.ts
333
- ┣ 📂services
334
- ┃ ┣ 📂utils
335
- ┃ ┃ ┣ 📂messages
336
- ┃ ┃ ┃ ┣ 📜index.ts
337
- ┃ ┃ ┃ ┗ 📜user.ts
338
- ┃ ┃ ┗ 📜index.ts
339
- ┃ ┣ 📜index.ts
340
- ┃ ┗ 📜user.ts
341
- ┣ 📜index.ts
342
- 📂test
343
- ┣ 📜index.test.ts
344
- ┣ 📜jestGlobalSetup.ts
345
- ┗ 📜setEnvVars.ts
346
- 📜.env
347
- 📜.eslintignore
348
- 📜.eslintrc
349
- 📜.gitignore
350
- 📜CHANGELOG.md
351
- 📜Dockerfile
352
- 📜heroku.yml
353
- 📜index.http
354
- 📜LICENSE
355
- 📜nodemon.json
356
- 📜package.json
357
- 📜README.md
358
- 📜index.http
359
- 📜tsconfig.base.json
360
- 📜tsconfig.json
361
- 📜webpack.config.js
362
- 📜yarn.lock (or package-lock.json)
363
- ```
364
-
365
- ### Fastify-GraphQL case
366
-
367
- ```
368
- 📂.github
369
- ┣ 📂workflows
370
- ┃ ┣ 📜test.yml
371
- 📂node_modules
372
- 📂src
373
- ┣ 📂@types
374
- ┃ ┣ 📂graphQL
375
- ┃ ┃ ┗ 📜context.d.ts
376
- ┃ ┣ 📂dto
377
- ┃ ┃ ┗ 📜user.d.ts
378
- ┃ ┣ 📂models
379
- ┃ ┃ ┗ 📜user.d.ts
380
- ┃ ┗ 📜index.d.ts
381
- ┣ 📂database
382
- ┃ ┣ 📂mongo
383
- ┃ ┃ ┣ 📂models
384
- ┃ ┃ ┃ ┣ 📜index.ts
385
- ┃ ┃ ┃ ┗ 📜user.ts
386
- ┃ ┃ ┣ 📂queries
387
- ┃ ┃ ┃ ┣ 📜index.ts
388
- ┃ ┃ ┃ ┗ 📜user.ts
389
- ┃ ┃ ┣ 📜connection.ts
390
- ┃ ┃ ┗ 📜index.ts
391
- ┃ ┗ 📜index.ts
392
- ┣ 📂graphQL
393
- ┃ ┣ 📂models
394
- ┃ ┃ ┣ 📂User
395
- ┃ ┃ ┃ ┣ 📜index.ts
396
- ┃ ┃ ┃ ┣ 📜mutations.ts
397
- ┃ ┃ ┃ ┣ 📜mutationsResolver.ts
398
- ┃ ┃ ┃ ┣ 📜queries.ts
399
- ┃ ┃ ┃ ┣ 📜queriesResolver.ts
400
- ┃ ┃ ┃ ┣ 📜schemas.ts
401
- ┃ ┃ ┃ ┗ 📜typeDefs.ts
402
- ┃ ┃ ┣ 📂utils
403
- ┃ ┃ ┃ ┣ 📂messages
404
- ┃ ┃ ┃ ┃ ┣ 📜index.ts
405
- ┃ ┃ ┃ ┃ ┗ 📜user.ts
406
- ┃ ┃ ┃ ┗ 📜index.ts
407
- ┃ ┃ ┗ 📜index.ts
408
- ┃ ┗ 📜index.ts
409
- ┣ 📂network
410
- ┃ ┣ 📂routes
411
- ┃ ┃ ┣ 📜docs.ts
412
- ┃ ┃ ┣ 📜home.ts
413
- ┃ ┃ ┣ 📜index.ts
414
- ┃ ┣ 📜index.ts
415
- ┃ ┣ 📜response.ts
416
- ┃ ┣ 📜routes.ts
417
- ┃ ┗ 📜server.ts
418
- ┣ 📂schemas
419
- ┃ ┣ 📜index.ts
420
- ┃ ┗ 📜user.ts
421
- ┣ 📜index.ts
422
- 📂test
423
- ┣ 📜index.test.ts
424
- ┣ 📜jestGlobalSetup.ts
425
- ┗ 📜setEnvVars.ts
426
- 📜.env
427
- 📜.eslintignore
428
- 📜.eslintrc
429
- 📜.gitignore
430
- 📜CHANGELOG.md
431
- 📜Dockerfile
432
- 📜heroku.yml
433
- 📜LICENSE
434
- 📜nodemon.json
435
- 📜package.json
436
- 📜README.md
437
- 📜tsconfig.base.json
438
- 📜tsconfig.json
439
- 📜webpack.config.js
440
- 📜yarn.lock (or package-lock.json)
441
- ```
442
-
443
- If you want to check the content of the files, please check the [example](https://github.com/AnthonyLzq/simba.js/tree/master/example) folder, there you will an example for both, Express and Fastify.
143
+ - [Express case](./projectStructureExamples/express.txt)
144
+ - [Express-GraphQL case](./projectStructureExamples/express-graphql.txt)
145
+ - [Fastify case](./projectStructureExamples/fastify.txt)
146
+ - [Fastify-GraphQL case](./../projectStructureExamples/fastify-graphql.txt)
444
147
 
445
148
  ### Some considerations
446
149
 
@@ -484,6 +187,25 @@ If you want to check the content of the files, please check the [example](https:
484
187
  - Relative imports is already configured, you do not need to import a file using `../../../some/very/nested/stuff/in/other/folder`, you can use `some/very/nested/stuff/in/other/folder` assuming that your folder is under the `src` folder.
485
188
  - The Fastify version is set to v3 because Apollo Server has not yet provided support for Fastify v4 yet, and it is difficult to have support for two different major versions of Fastify, so until Apollo Server supports Fastify v4, this package will use Fastify v3.
486
189
 
190
+ ## Who uses Simba.js?
191
+
192
+ <p align="left" style="display: flex; align-items: center;">
193
+ <a href="https://chazki.com/">
194
+ <img
195
+ width="272"
196
+ src="https://i.ibb.co/3kbN6gG/logo-chazki-blanco-250px.png"
197
+ alt="Simba.js"
198
+ >
199
+ </a>
200
+ <a href="https://www.mein.ai">
201
+ <img
202
+ width="269"
203
+ src="https://static.wixstatic.com/media/e61b06_ed2d347ea1a44effa5a912e7d4fdd9a2~mv2.png/v1/fill/w_269,h_64,al_c,q_85,usm_0.66_1.00_0.01,enc_auto/logoMein.png"
204
+ alt="Simba.js"
205
+ >
206
+ </a>
207
+ </p>
208
+
487
209
  ## What is new?
488
210
 
489
211
  Please check the [`changelog.md`](https://github.com/AnthonyLzq/simba.js/blob/master/CHANGELOG.md) file. Also, if you want to check what is coming, check the [road map](https://simbajs.notion.site/simbajs/783092dc7d444067b4c56a25d671f658?v=31060f3d17524ca58870e86c2960a6df).
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@anthonylzq/simba.js",
3
- "version": "6.1.0",
3
+ "version": "6.2.0",
4
4
  "description": "set up a modern backend app by running one command",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {
7
7
  "service": "node ./bin",
8
8
  "help": "node ./bin --help",
9
9
  "release": "standard-version",
10
- "test": "npm run build && npm run test:express:local && npm run test:fastify:local && npm run test:express:graphql:local && npm run test:fastify:graphql:local",
10
+ "test": "npm run build && npm run test:express:local && npm run test:fastify:local && npm run test:express:graphql:local && npm run test:fastify:graphql:local && git restore .",
11
11
  "test:ci": "npm run build && npm run test:express:ci && npm run test:fastify:ci && npm run test:express:graphql:ci && npm run test:fastify:graphql:ci",
12
12
  "test:only": "npm run test:express:local && npm run test:fastify:local && npm run test:express:graphql:local && npm run test:fastify:graphql:local",
13
13
  "build": "npm run rm && npm run build:express && npm run build:fastify && npm run build:express:graphql && npm run build:fastify:graphql",
@@ -34,7 +34,13 @@
34
34
  "test:express:graphql:ci": "if [ -d \"example/express-graphql/node_modules\" ]; then npm run test:ci --prefix example/express-graphql; else echo 'Can not run the test for express api because the dependencies are not installed'; fi",
35
35
  "test:fastify:graphql:ci": "if [ -d \"example/fastify-graphql/node_modules\" ]; then npm run test:ci --prefix example/fastify-graphql; else echo 'Can not run the test for fastify api because the dependencies are not installed'; fi",
36
36
  "cd:mv:example": "if [ ! -d \"example\" ]; then mkdir example && cd example; fi",
37
- "version": "npm run release && git add CHANGELOG.md"
37
+ "version": "npm run release && npm run list:directory:tree:examples && git add .",
38
+ "remove:node_modules": "if [ -f \"example/express/node_modules\" ]; then rm -rf example/express/node_modules; fi && if [ -d \"example/express-graphql/node_modules\" ]; then rm -rf example/express-graphql/node_modules; fi && if [ -d \"example/fastify/node_modules\" ]; then rm -rf example/fastify/node_modules; fi && if [ -d \"example/fastify-graphql/node_modules\" ]; then rm -rf example/fastify-graphql/node_modules; fi",
39
+ "list:directory:tree:express": "npm run remove:node_modules && if [ -f \"projectStructureExamples/express.txt\" ]; then rm projectStructureExamples/express.txt; fi && tree example/express -a --dirsfirst --sort name | cut -d'/' -f 2 | head -n -2 >> projectStructureExamples/express.txt",
40
+ "list:directory:tree:express-graphql": "npm run remove:node_modules && if [ -f \"projectStructureExamples/express-graphql.txt\" ]; then rm projectStructureExamples/express-graphql.txt; fi && tree example/express -a --dirsfirst --sort name | cut -d'/' -f 2 | head -n -2 >> projectStructureExamples/express-graphql.txt",
41
+ "list:directory:tree:fastify": "npm run remove:node_modules && if [ -f \"projectStructureExamples/fastify.txt\" ]; then rm projectStructureExamples/fastify.txt; fi && tree example/express -a --dirsfirst --sort name | cut -d'/' -f 2 | head -n -2 >> projectStructureExamples/fastify.txt",
42
+ "list:directory:tree:fastify-graphql": "npm run remove:node_modules && if [ -f \"projectStructureExamples/fastify-graphql.txt\" ]; then rm projectStructureExamples/fastify-graphql.txt; fi && tree example/express -a --dirsfirst --sort name | cut -d'/' -f 2 | head -n -2 >> projectStructureExamples/fastify-graphql.txt",
43
+ "list:directory:tree:examples": "npm run list:directory:tree:express && npm run list:directory:tree:express-graphql && npm run list:directory:tree:fastify && npm run list:directory:tree:fastify-graphql"
38
44
  },
39
45
  "bin": {
40
46
  "simba": "./bin/index.js"