@feathersjs/cli 4.6.2 → 5.0.0-pre.24

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 (163) hide show
  1. package/CHANGELOG.md +10 -917
  2. package/LICENSE +1 -1
  3. package/README.md +9 -34
  4. package/bin/feathers +9 -0
  5. package/lib/app/index.d.ts +29 -0
  6. package/lib/app/index.js +123 -0
  7. package/lib/app/index.js.map +1 -0
  8. package/lib/app/index.ts +198 -0
  9. package/lib/app/static/.gitignore +121 -0
  10. package/lib/app/templates/app.test.tpl.d.ts +2 -0
  11. package/lib/app/templates/app.test.tpl.js +48 -0
  12. package/lib/app/templates/app.test.tpl.js.map +1 -0
  13. package/lib/app/templates/app.test.tpl.ts +48 -0
  14. package/lib/app/templates/app.tpl.d.ts +2 -0
  15. package/lib/app/templates/app.tpl.js +110 -0
  16. package/lib/app/templates/app.tpl.js.map +1 -0
  17. package/lib/app/templates/app.tpl.ts +119 -0
  18. package/lib/app/templates/channels.tpl.d.ts +2 -0
  19. package/lib/app/templates/channels.tpl.js +76 -0
  20. package/lib/app/templates/channels.tpl.js.map +1 -0
  21. package/lib/app/templates/channels.tpl.ts +81 -0
  22. package/lib/app/templates/client.tpl.d.ts +2 -0
  23. package/lib/app/templates/client.tpl.js +22 -0
  24. package/lib/app/templates/client.tpl.js.map +1 -0
  25. package/lib/app/templates/client.tpl.ts +27 -0
  26. package/lib/app/templates/config.tpl.d.ts +2 -0
  27. package/lib/app/templates/config.tpl.js +21 -0
  28. package/lib/app/templates/config.tpl.js.map +1 -0
  29. package/lib/app/templates/config.tpl.ts +21 -0
  30. package/lib/app/templates/configuration.tpl.d.ts +2 -0
  31. package/lib/app/templates/configuration.tpl.js +36 -0
  32. package/lib/app/templates/configuration.tpl.js.map +1 -0
  33. package/lib/app/templates/configuration.tpl.ts +41 -0
  34. package/lib/app/templates/declarations.tpl.d.ts +2 -0
  35. package/lib/app/templates/declarations.tpl.js +23 -0
  36. package/lib/app/templates/declarations.tpl.js.map +1 -0
  37. package/lib/app/templates/declarations.tpl.ts +31 -0
  38. package/lib/app/templates/index.html.tpl.d.ts +2 -0
  39. package/lib/app/templates/index.html.tpl.js +85 -0
  40. package/lib/app/templates/index.html.tpl.js.map +1 -0
  41. package/lib/app/templates/index.html.tpl.ts +85 -0
  42. package/lib/app/templates/index.tpl.d.ts +2 -0
  43. package/lib/app/templates/index.tpl.js +18 -0
  44. package/lib/app/templates/index.tpl.js.map +1 -0
  45. package/lib/app/templates/index.tpl.ts +23 -0
  46. package/lib/app/templates/logger.tpl.d.ts +2 -0
  47. package/lib/app/templates/logger.tpl.js +33 -0
  48. package/lib/app/templates/logger.tpl.js.map +1 -0
  49. package/lib/app/templates/logger.tpl.ts +38 -0
  50. package/lib/app/templates/package.json.tpl.d.ts +2 -0
  51. package/lib/app/templates/package.json.tpl.js +53 -0
  52. package/lib/app/templates/package.json.tpl.js.map +1 -0
  53. package/lib/app/templates/package.json.tpl.ts +65 -0
  54. package/lib/app/templates/readme.md.tpl.d.ts +2 -0
  55. package/lib/app/templates/readme.md.tpl.js +50 -0
  56. package/lib/app/templates/readme.md.tpl.js.map +1 -0
  57. package/lib/app/templates/readme.md.tpl.ts +50 -0
  58. package/lib/app/templates/services.tpl.d.ts +2 -0
  59. package/lib/app/templates/services.tpl.js +14 -0
  60. package/lib/app/templates/services.tpl.js.map +1 -0
  61. package/lib/app/templates/services.tpl.ts +19 -0
  62. package/lib/app/templates/tsconfig.json.tpl.d.ts +2 -0
  63. package/lib/app/templates/tsconfig.json.tpl.js +20 -0
  64. package/lib/app/templates/tsconfig.json.tpl.js.map +1 -0
  65. package/lib/app/templates/tsconfig.json.tpl.ts +26 -0
  66. package/lib/authentication/index.d.ts +71 -0
  67. package/lib/authentication/index.js +94 -0
  68. package/lib/authentication/index.js.map +1 -0
  69. package/lib/authentication/index.ts +103 -0
  70. package/lib/authentication/templates/authentication.tpl.d.ts +2 -0
  71. package/lib/authentication/templates/authentication.tpl.js +40 -0
  72. package/lib/authentication/templates/authentication.tpl.js.map +1 -0
  73. package/lib/authentication/templates/authentication.tpl.ts +53 -0
  74. package/lib/authentication/templates/config.tpl.d.ts +2 -0
  75. package/lib/authentication/templates/config.tpl.js +46 -0
  76. package/lib/authentication/templates/config.tpl.js.map +1 -0
  77. package/lib/authentication/templates/config.tpl.ts +51 -0
  78. package/lib/authentication/templates/declarations.tpl.d.ts +2 -0
  79. package/lib/authentication/templates/declarations.tpl.js +19 -0
  80. package/lib/authentication/templates/declarations.tpl.js.map +1 -0
  81. package/lib/authentication/templates/declarations.tpl.ts +29 -0
  82. package/lib/authentication/templates/knex.tpl.d.ts +2 -0
  83. package/lib/authentication/templates/knex.tpl.js +41 -0
  84. package/lib/authentication/templates/knex.tpl.js.map +1 -0
  85. package/lib/authentication/templates/knex.tpl.ts +59 -0
  86. package/lib/authentication/templates/test.tpl.d.ts +2 -0
  87. package/lib/authentication/templates/test.tpl.js +43 -0
  88. package/lib/authentication/templates/test.tpl.js.map +1 -0
  89. package/lib/authentication/templates/test.tpl.ts +50 -0
  90. package/lib/authentication/templates/user.resolver.tpl.d.ts +2 -0
  91. package/lib/authentication/templates/user.resolver.tpl.js +96 -0
  92. package/lib/authentication/templates/user.resolver.tpl.js.map +1 -0
  93. package/lib/authentication/templates/user.resolver.tpl.ts +109 -0
  94. package/lib/authentication/templates/user.schema.tpl.d.ts +2 -0
  95. package/lib/authentication/templates/user.schema.tpl.js +85 -0
  96. package/lib/authentication/templates/user.schema.tpl.js.map +1 -0
  97. package/lib/authentication/templates/user.schema.tpl.ts +93 -0
  98. package/lib/commons.d.ts +120 -0
  99. package/lib/commons.js +137 -0
  100. package/lib/commons.js.map +1 -0
  101. package/lib/commons.ts +187 -0
  102. package/lib/connection/index.d.ts +53 -0
  103. package/lib/connection/index.js +86 -0
  104. package/lib/connection/index.js.map +1 -0
  105. package/lib/connection/index.ts +109 -0
  106. package/lib/connection/templates/knex.tpl.d.ts +2 -0
  107. package/lib/connection/templates/knex.tpl.js +59 -0
  108. package/lib/connection/templates/knex.tpl.js.map +1 -0
  109. package/lib/connection/templates/knex.tpl.ts +79 -0
  110. package/lib/connection/templates/mongodb.tpl.d.ts +2 -0
  111. package/lib/connection/templates/mongodb.tpl.js +39 -0
  112. package/lib/connection/templates/mongodb.tpl.js.map +1 -0
  113. package/lib/connection/templates/mongodb.tpl.ts +51 -0
  114. package/lib/hook/index.d.ts +22 -0
  115. package/lib/hook/index.js +40 -0
  116. package/lib/hook/index.js.map +1 -0
  117. package/lib/hook/index.ts +45 -0
  118. package/lib/hook/templates/hook.tpl.d.ts +2 -0
  119. package/lib/hook/templates/hook.tpl.js +21 -0
  120. package/lib/hook/templates/hook.tpl.js.map +1 -0
  121. package/lib/hook/templates/hook.tpl.ts +28 -0
  122. package/lib/index.d.ts +16 -0
  123. package/lib/index.js +24 -62
  124. package/lib/index.js.map +1 -0
  125. package/lib/index.ts +27 -0
  126. package/lib/service/index.d.ts +130 -0
  127. package/lib/service/index.js +84 -0
  128. package/lib/service/index.js.map +1 -0
  129. package/lib/service/index.ts +150 -0
  130. package/lib/service/templates/client.tpl.d.ts +2 -0
  131. package/lib/service/templates/client.tpl.js +16 -0
  132. package/lib/service/templates/client.tpl.js.map +1 -0
  133. package/lib/service/templates/client.tpl.ts +27 -0
  134. package/lib/service/templates/resolver.tpl.d.ts +2 -0
  135. package/lib/service/templates/resolver.tpl.js +73 -0
  136. package/lib/service/templates/resolver.tpl.js.map +1 -0
  137. package/lib/service/templates/resolver.tpl.ts +78 -0
  138. package/lib/service/templates/schema.tpl.d.ts +2 -0
  139. package/lib/service/templates/schema.tpl.js +75 -0
  140. package/lib/service/templates/schema.tpl.js.map +1 -0
  141. package/lib/service/templates/schema.tpl.ts +80 -0
  142. package/lib/service/templates/service.tpl.d.ts +2 -0
  143. package/lib/service/templates/service.tpl.js +92 -0
  144. package/lib/service/templates/service.tpl.js.map +1 -0
  145. package/lib/service/templates/service.tpl.ts +117 -0
  146. package/lib/service/templates/test.tpl.d.ts +2 -0
  147. package/lib/service/templates/test.tpl.js +24 -0
  148. package/lib/service/templates/test.tpl.js.map +1 -0
  149. package/lib/service/templates/test.tpl.ts +29 -0
  150. package/lib/service/type/custom.tpl.d.ts +4 -0
  151. package/lib/service/type/custom.tpl.js +79 -0
  152. package/lib/service/type/custom.tpl.js.map +1 -0
  153. package/lib/service/type/custom.tpl.ts +81 -0
  154. package/lib/service/type/knex.tpl.d.ts +5 -0
  155. package/lib/service/type/knex.tpl.js +50 -0
  156. package/lib/service/type/knex.tpl.js.map +1 -0
  157. package/lib/service/type/knex.tpl.ts +62 -0
  158. package/lib/service/type/mongodb.tpl.d.ts +4 -0
  159. package/lib/service/type/mongodb.tpl.js +29 -0
  160. package/lib/service/type/mongodb.tpl.js.map +1 -0
  161. package/lib/service/type/mongodb.tpl.ts +34 -0
  162. package/package.json +56 -36
  163. package/bin/feathers.js +0 -5
@@ -0,0 +1,2 @@
1
+ import { AppGeneratorContext } from '../index';
2
+ export declare const generate: (ctx: AppGeneratorContext) => Promise<AppGeneratorContext>;
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generate = void 0;
4
+ const pinion_1 = require("@feathershq/pinion");
5
+ const template = ({ name, description }) => `<!DOCTYPE html>
6
+ <html lang="en">
7
+ <head>
8
+ <title>${name}</title>
9
+ <meta name="description" content="${description}">
10
+ <meta name="viewport" content="width=device-width, initial-scale=1">
11
+ <style>
12
+ * {
13
+ margin: 0;
14
+ padding: 0;
15
+ box-sizing: border-box;
16
+ }
17
+
18
+ html, body {
19
+ font-family: 'Helvetica Neue', 'Helvetica', 'Arial', 'sans-serif';
20
+ font-weight: 400;
21
+ font-size: 16px;
22
+ color: #2c3e50;
23
+ }
24
+
25
+ .center-text {
26
+ text-align: center;
27
+ }
28
+
29
+ main {
30
+ margin-top: 100px;
31
+ padding: 20px;
32
+ }
33
+
34
+ img.logo {
35
+ display: block;
36
+ margin: 0 auto;
37
+ max-width: 100%;
38
+ margin-bottom: 30px;
39
+ }
40
+
41
+ h2 {
42
+ font-size: 2em;
43
+ font-weight: 100;
44
+ }
45
+
46
+ footer {
47
+ position: absolute;
48
+ bottom: 0;
49
+ left: 0;
50
+ right: 0;
51
+ padding: 20px;
52
+ }
53
+
54
+ footer p {
55
+ font-weight: 300;
56
+ font-size: 1.0em;
57
+ }
58
+
59
+ a {
60
+ color: #3cf;
61
+ text-decoration: none;
62
+ }
63
+
64
+ a:hover,
65
+ a:focus {
66
+ color: #3cf;
67
+ }
68
+ </style>
69
+ </head>
70
+ <body>
71
+ <main class="container">
72
+ <h1>${name}</h1>
73
+
74
+ <img class="logo" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAk4AAABkCAMAAABHL0++AAADAFBMVEUAAAD///+AgIBVVVVAQEAzMzNVVVVJSUlAQEA5OTkzMzNGRkZAQEA7Ozs3NzczMzNAQEA8PDw5OTk2NjYzMzM9PT06Ojo3Nzc1NTUzMzM7Ozs5OTk3Nzc1NTUzMzM6Ojo4ODg2NjY1NTUzMzM5OTk3Nzc2NjY0NDQzMzM4ODg3Nzc1NTU0NDQzMzM3Nzc2NjY1NTU0NDQzMzM3Nzc2NjY1NTU0NDQzMzM3Nzc2NjY1NTU0NDQzMzM2NjY1NTU1NTU0NDQzMzM2NjY1NTU1NTU0NDQzMzM2NjY1NTU0NDQ0NDQzMzM2NjY1NTU0NDQ0NDQzMzM2NjY1NTU0NDQ0NDQzMzM1NTU1NTU0NDQ0NDQzMzM1NTU1NTU0NDQ0NDQzMzM1NTU1NTU0NDQ0NDQzMzM1NTU1NTU0NDQzMzMzMzM1NTU0NDQ0NDQzMzMzMzM1NTU0NDQ0NDQzMzMzMzM1NTU0NDQ0NDQzMzMzMzM1NTU0NDQ0NDQzMzMzMzM1NTU0NDQ0NDQzMzMzMzM1NTU0NDQ0NDQzMzMzMzM1NTU0NDQ0NDQzMzMzMzM0NDQ0NDQ0NDQzMzMzMzM0NDQ0NDQ0NDQzMzMzMzM0NDQ0NDQ0NDQzMzMzMzM0NDQ0NDQ0NDQzMzMzMzM0NDQ0NDQ0NDQzMzMzMzM0NDQ0NDQ0NDQzMzMzMzM0NDQ0NDQ0NDQzMzMzMzM0NDQ0NDQ0NDQzMzMzMzM0NDQ0NDQ0NDQzMzMzMzM0NDQ0NDQ0NDQzMzMzMzM0NDQ0NDQ0NDQzMzMzMzM0NDQ0NDQ0NDQzMzMzMzM0NDQ0NDQ0NDQzMzMzMzM0NDQ0NDQzMzMzMzMzMzM0NDQ0NDQzMzMzMzMzMzM0NDQ0NDQzMzMzMzMzMzM0NDQ0NDQzMzMzMzMzMzM0NDQ0NDQzMzMzMzMzMzM0NDQ0NDQzMzMzMzMzMzM0NDQ0NDQzMzMzMzMzMzM0NDQ0NDQzMzMzMzMzMzM0NDQ0NDQzMzMzMzMzMzM0NDQ0NDQzMzMzMzMzMzN4a/VhAAAA/3RSTlMAAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1O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" alt="Feathers Logo">
75
+
76
+ <footer>
77
+ <p class="center-text">For more information on Feathers see <a href="https://docs.feathersjs.com" title="Feathers Documentation" target="blank">docs.feathersjs.com</a>.</p>
78
+ </footer>
79
+ </main>
80
+ </body>
81
+ </html>
82
+ `;
83
+ const generate = (ctx) => (0, pinion_1.generator)(ctx).then((0, pinion_1.renderTemplate)(template, (0, pinion_1.toFile)('public', 'index.html')));
84
+ exports.generate = generate;
85
+ //# sourceMappingURL=index.html.tpl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.html.tpl.js","sourceRoot":"","sources":["../../../src/app/templates/index.html.tpl.ts"],"names":[],"mappings":";;;AAAA,+CAAsE;AAGtE,MAAM,QAAQ,GAAG,CAAC,EAAE,IAAI,EAAE,WAAW,EAAuB,EAAE,EAAE,CAC9D;;;aAGW,IAAI;wCACuB,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YA+DvC,IAAI;;;;;;;;;;CAUf,CAAA;AAEM,MAAM,QAAQ,GAAG,CAAC,GAAwB,EAAE,EAAE,CACnD,IAAA,kBAAS,EAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAA,uBAAc,EAAC,QAAQ,EAAE,IAAA,eAAM,EAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,CAAA;AADlE,QAAA,QAAQ,YAC0D"}
@@ -0,0 +1,85 @@
1
+ import { generator, renderTemplate, toFile } from '@feathershq/pinion'
2
+ import { AppGeneratorContext } from '../index'
3
+
4
+ const template = ({ name, description }: AppGeneratorContext) =>
5
+ `<!DOCTYPE html>
6
+ <html lang="en">
7
+ <head>
8
+ <title>${name}</title>
9
+ <meta name="description" content="${description}">
10
+ <meta name="viewport" content="width=device-width, initial-scale=1">
11
+ <style>
12
+ * {
13
+ margin: 0;
14
+ padding: 0;
15
+ box-sizing: border-box;
16
+ }
17
+
18
+ html, body {
19
+ font-family: 'Helvetica Neue', 'Helvetica', 'Arial', 'sans-serif';
20
+ font-weight: 400;
21
+ font-size: 16px;
22
+ color: #2c3e50;
23
+ }
24
+
25
+ .center-text {
26
+ text-align: center;
27
+ }
28
+
29
+ main {
30
+ margin-top: 100px;
31
+ padding: 20px;
32
+ }
33
+
34
+ img.logo {
35
+ display: block;
36
+ margin: 0 auto;
37
+ max-width: 100%;
38
+ margin-bottom: 30px;
39
+ }
40
+
41
+ h2 {
42
+ font-size: 2em;
43
+ font-weight: 100;
44
+ }
45
+
46
+ footer {
47
+ position: absolute;
48
+ bottom: 0;
49
+ left: 0;
50
+ right: 0;
51
+ padding: 20px;
52
+ }
53
+
54
+ footer p {
55
+ font-weight: 300;
56
+ font-size: 1.0em;
57
+ }
58
+
59
+ a {
60
+ color: #3cf;
61
+ text-decoration: none;
62
+ }
63
+
64
+ a:hover,
65
+ a:focus {
66
+ color: #3cf;
67
+ }
68
+ </style>
69
+ </head>
70
+ <body>
71
+ <main class="container">
72
+ <h1>${name}</h1>
73
+
74
+ <img class="logo" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAk4AAABkCAMAAABHL0++AAADAFBMVEUAAAD///+AgIBVVVVAQEAzMzNVVVVJSUlAQEA5OTkzMzNGRkZAQEA7Ozs3NzczMzNAQEA8PDw5OTk2NjYzMzM9PT06Ojo3Nzc1NTUzMzM7Ozs5OTk3Nzc1NTUzMzM6Ojo4ODg2NjY1NTUzMzM5OTk3Nzc2NjY0NDQzMzM4ODg3Nzc1NTU0NDQzMzM3Nzc2NjY1NTU0NDQzMzM3Nzc2NjY1NTU0NDQzMzM3Nzc2NjY1NTU0NDQzMzM2NjY1NTU1NTU0NDQzMzM2NjY1NTU1NTU0NDQzMzM2NjY1NTU0NDQ0NDQzMzM2NjY1NTU0NDQ0NDQzMzM2NjY1NTU0NDQ0NDQzMzM1NTU1NTU0NDQ0NDQzMzM1NTU1NTU0NDQ0NDQzMzM1NTU1NTU0NDQ0NDQzMzM1NTU1NTU0NDQzMzMzMzM1NTU0NDQ0NDQzMzMzMzM1NTU0NDQ0NDQzMzMzMzM1NTU0NDQ0NDQzMzMzMzM1NTU0NDQ0NDQzMzMzMzM1NTU0NDQ0NDQzMzMzMzM1NTU0NDQ0NDQzMzMzMzM1NTU0NDQ0NDQzMzMzMzM0NDQ0NDQ0NDQzMzMzMzM0NDQ0NDQ0NDQzMzMzMzM0NDQ0NDQ0NDQzMzMzMzM0NDQ0NDQ0NDQzMzMzMzM0NDQ0NDQ0NDQzMzMzMzM0NDQ0NDQ0NDQzMzMzMzM0NDQ0NDQ0NDQzMzMzMzM0NDQ0NDQ0NDQzMzMzMzM0NDQ0NDQ0NDQzMzMzMzM0NDQ0NDQ0NDQzMzMzMzM0NDQ0NDQ0NDQzMzMzMzM0NDQ0NDQ0NDQzMzMzMzM0NDQ0NDQ0NDQzMzMzMzM0NDQ0NDQzMzMzMzMzMzM0NDQ0NDQzMzMzMzMzMzM0NDQ0NDQzMzMzMzMzMzM0NDQ0NDQzMzMzMzMzMzM0NDQ0NDQzMzMzMzMzMzM0NDQ0NDQzMzMzMzMzMzM0NDQ0NDQzMzMzMzMzMzM0NDQ0NDQzMzMzMzMzMzM0NDQ0NDQzMzMzMzMzMzM0NDQ0NDQzMzMzMzMzMzN4a/VhAAAA/3RSTlMAAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1O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" alt="Feathers Logo">
75
+
76
+ <footer>
77
+ <p class="center-text">For more information on Feathers see <a href="https://docs.feathersjs.com" title="Feathers Documentation" target="blank">docs.feathersjs.com</a>.</p>
78
+ </footer>
79
+ </main>
80
+ </body>
81
+ </html>
82
+ `
83
+
84
+ export const generate = (ctx: AppGeneratorContext) =>
85
+ generator(ctx).then(renderTemplate(template, toFile('public', 'index.html')))
@@ -0,0 +1,2 @@
1
+ import { AppGeneratorContext } from '../index';
2
+ export declare const generate: (ctx: AppGeneratorContext) => Promise<AppGeneratorContext>;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generate = void 0;
4
+ const pinion_1 = require("@feathershq/pinion");
5
+ const commons_1 = require("../../commons");
6
+ const template = ({}) => `import { app } from './app'
7
+ import { logger } from './logger'
8
+
9
+ const port = app.get('port')
10
+ const host = app.get('host')
11
+
12
+ app.listen(port).then(() => {
13
+ logger.info(\`Feathers app listening on http://\${host}:\${port}\`)
14
+ })
15
+ `;
16
+ const generate = (ctx) => (0, pinion_1.generator)(ctx).then((0, commons_1.renderSource)(template, (0, pinion_1.toFile)(({ lib }) => lib, 'index')));
17
+ exports.generate = generate;
18
+ //# sourceMappingURL=index.tpl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.tpl.js","sourceRoot":"","sources":["../../../src/app/templates/index.tpl.ts"],"names":[],"mappings":";;;AAAA,+CAAsD;AACtD,2CAA4C;AAG5C,MAAM,QAAQ,GAAG,CAAC,EAAuB,EAAE,EAAE,CAC3C;;;;;;;;;CASD,CAAA;AAEM,MAAM,QAAQ,GAAG,CAAC,GAAwB,EAAE,EAAE,CACnD,IAAA,kBAAS,EAAC,GAAG,CAAC,CAAC,IAAI,CACjB,IAAA,sBAAY,EACV,QAAQ,EACR,IAAA,eAAM,EAAsB,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,CACvD,CACF,CAAA;AANU,QAAA,QAAQ,YAMlB"}
@@ -0,0 +1,23 @@
1
+ import { generator, toFile } from '@feathershq/pinion'
2
+ import { renderSource } from '../../commons'
3
+ import { AppGeneratorContext } from '../index'
4
+
5
+ const template = ({}: AppGeneratorContext) =>
6
+ `import { app } from './app'
7
+ import { logger } from './logger'
8
+
9
+ const port = app.get('port')
10
+ const host = app.get('host')
11
+
12
+ app.listen(port).then(() => {
13
+ logger.info(\`Feathers app listening on http://\${host}:\${port}\`)
14
+ })
15
+ `
16
+
17
+ export const generate = (ctx: AppGeneratorContext) =>
18
+ generator(ctx).then(
19
+ renderSource(
20
+ template,
21
+ toFile<AppGeneratorContext>(({ lib }) => lib, 'index')
22
+ )
23
+ )
@@ -0,0 +1,2 @@
1
+ import { AppGeneratorContext } from '../index';
2
+ export declare const generate: (ctx: AppGeneratorContext) => Promise<AppGeneratorContext>;
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generate = void 0;
4
+ const pinion_1 = require("@feathershq/pinion");
5
+ const commons_1 = require("../../commons");
6
+ const template = ({}) => `import { createLogger, format, transports } from 'winston'
7
+ import type { HookContext, NextFunction } from './declarations'
8
+
9
+ // Configure the Winston logger. For the complete documentation see https://github.com/winstonjs/winston
10
+ export const logger = createLogger({
11
+ // To see more detailed errors, change this to 'debug'
12
+ level: 'info',
13
+ format: format.combine(
14
+ format.splat(),
15
+ format.simple()
16
+ ),
17
+ transports: [
18
+ new transports.Console()
19
+ ]
20
+ })
21
+
22
+ export const logErrorHook = async (context: HookContext, next: NextFunction) => {
23
+ try {
24
+ await next()
25
+ } catch (error) {
26
+ logger.error(error)
27
+ throw error
28
+ }
29
+ }
30
+ `;
31
+ const generate = (ctx) => (0, pinion_1.generator)(ctx).then((0, commons_1.renderSource)(template, (0, pinion_1.toFile)(({ lib }) => lib, 'logger')));
32
+ exports.generate = generate;
33
+ //# sourceMappingURL=logger.tpl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.tpl.js","sourceRoot":"","sources":["../../../src/app/templates/logger.tpl.ts"],"names":[],"mappings":";;;AAAA,+CAAsD;AACtD,2CAA4C;AAG5C,MAAM,QAAQ,GAAG,CAAC,EAAuB,EAAE,EAAE,CAC3C;;;;;;;;;;;;;;;;;;;;;;;;CAwBD,CAAA;AAEM,MAAM,QAAQ,GAAG,CAAC,GAAwB,EAAE,EAAE,CACnD,IAAA,kBAAS,EAAC,GAAG,CAAC,CAAC,IAAI,CACjB,IAAA,sBAAY,EACV,QAAQ,EACR,IAAA,eAAM,EAAsB,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,QAAQ,CAAC,CACxD,CACF,CAAA;AANU,QAAA,QAAQ,YAMlB"}
@@ -0,0 +1,38 @@
1
+ import { generator, toFile } from '@feathershq/pinion'
2
+ import { renderSource } from '../../commons'
3
+ import { AppGeneratorContext } from '../index'
4
+
5
+ const template = ({}: AppGeneratorContext) =>
6
+ `import { createLogger, format, transports } from 'winston'
7
+ import type { HookContext, NextFunction } from './declarations'
8
+
9
+ // Configure the Winston logger. For the complete documentation see https://github.com/winstonjs/winston
10
+ export const logger = createLogger({
11
+ // To see more detailed errors, change this to 'debug'
12
+ level: 'info',
13
+ format: format.combine(
14
+ format.splat(),
15
+ format.simple()
16
+ ),
17
+ transports: [
18
+ new transports.Console()
19
+ ]
20
+ })
21
+
22
+ export const logErrorHook = async (context: HookContext, next: NextFunction) => {
23
+ try {
24
+ await next()
25
+ } catch (error) {
26
+ logger.error(error)
27
+ throw error
28
+ }
29
+ }
30
+ `
31
+
32
+ export const generate = (ctx: AppGeneratorContext) =>
33
+ generator(ctx).then(
34
+ renderSource(
35
+ template,
36
+ toFile<AppGeneratorContext>(({ lib }) => lib, 'logger')
37
+ )
38
+ )
@@ -0,0 +1,2 @@
1
+ import { AppGeneratorContext } from '../index';
2
+ export declare const generate: (ctx: AppGeneratorContext) => Promise<AppGeneratorContext>;
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generate = void 0;
4
+ const pinion_1 = require("@feathershq/pinion");
5
+ const jsPackageJson = (lib) => ({
6
+ type: 'module',
7
+ scripts: {
8
+ start: `node ${lib}`,
9
+ dev: `nodemon ${lib}/`,
10
+ mocha: 'cross-env NODE_ENV=test mocha test/ --recursive --exit',
11
+ test: 'npm run mocha'
12
+ }
13
+ });
14
+ const tsPackageJson = (lib) => ({
15
+ scripts: {
16
+ dev: `nodemon -x ts-node ${lib}/index.ts`,
17
+ compile: 'shx rm -rf dist/ && tsc',
18
+ start: 'npm run compile && node dist/',
19
+ mocha: 'cross-env NODE_ENV=test mocha test/ --require ts-node/register --recursive --extension .ts --exit',
20
+ test: 'npm run mocha'
21
+ }
22
+ });
23
+ const packageJson = ({ name, description, language, packager, database, framework, transports, lib, test }) => ({
24
+ name,
25
+ description,
26
+ version: '0.0.0',
27
+ homepage: '',
28
+ private: true,
29
+ keywords: ['feathers'],
30
+ author: {},
31
+ contributors: [],
32
+ bugs: {},
33
+ engines: {
34
+ node: `>= ${process.version.substring(1)}`
35
+ },
36
+ feathers: {
37
+ language,
38
+ packager,
39
+ database,
40
+ framework,
41
+ transports
42
+ },
43
+ directories: {
44
+ lib,
45
+ test
46
+ },
47
+ main: `${lib}/`,
48
+ browser: language === 'ts' ? 'dist/client' : `${lib}/client`,
49
+ ...(language === 'ts' ? tsPackageJson(lib) : jsPackageJson(lib))
50
+ });
51
+ const generate = (ctx) => (0, pinion_1.generator)(ctx).then((0, pinion_1.writeJSON)(packageJson, (0, pinion_1.toFile)('package.json')));
52
+ exports.generate = generate;
53
+ //# sourceMappingURL=package.json.tpl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package.json.tpl.js","sourceRoot":"","sources":["../../../src/app/templates/package.json.tpl.ts"],"names":[],"mappings":";;;AAAA,+CAAiE;AAGjE,MAAM,aAAa,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC;IACtC,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE;QACP,KAAK,EAAE,QAAQ,GAAG,EAAE;QACpB,GAAG,EAAE,WAAW,GAAG,GAAG;QACtB,KAAK,EAAE,wDAAwD;QAC/D,IAAI,EAAE,eAAe;KACtB;CACF,CAAC,CAAA;AAEF,MAAM,aAAa,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC;IACtC,OAAO,EAAE;QACP,GAAG,EAAE,sBAAsB,GAAG,WAAW;QACzC,OAAO,EAAE,yBAAyB;QAClC,KAAK,EAAE,+BAA+B;QACtC,KAAK,EACH,mGAAmG;QACrG,IAAI,EAAE,eAAe;KACtB;CACF,CAAC,CAAA;AAEF,MAAM,WAAW,GAAG,CAAC,EACnB,IAAI,EACJ,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,UAAU,EACV,GAAG,EACH,IAAI,EACgB,EAAE,EAAE,CAAC,CAAC;IAC1B,IAAI;IACJ,WAAW;IACX,OAAO,EAAE,OAAO;IAChB,QAAQ,EAAE,EAAE;IACZ,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,CAAC,UAAU,CAAC;IACtB,MAAM,EAAE,EAAE;IACV,YAAY,EAAE,EAAc;IAC5B,IAAI,EAAE,EAAE;IACR,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;KAC3C;IACD,QAAQ,EAAE;QACR,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,UAAU;KACX;IACD,WAAW,EAAE;QACX,GAAG;QACH,IAAI;KACL;IACD,IAAI,EAAE,GAAG,GAAG,GAAG;IACf,OAAO,EAAE,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,GAAG,SAAS;IAC5D,GAAG,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;CACjE,CAAC,CAAA;AAEK,MAAM,QAAQ,GAAG,CAAC,GAAwB,EAAE,EAAE,CACnD,IAAA,kBAAS,EAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAA,kBAAS,EAAC,WAAW,EAAE,IAAA,eAAM,EAAC,cAAc,CAAC,CAAC,CAAC,CAAA;AADxD,QAAA,QAAQ,YACgD"}
@@ -0,0 +1,65 @@
1
+ import { generator, toFile, writeJSON } from '@feathershq/pinion'
2
+ import { AppGeneratorContext } from '../index'
3
+
4
+ const jsPackageJson = (lib: string) => ({
5
+ type: 'module',
6
+ scripts: {
7
+ start: `node ${lib}`,
8
+ dev: `nodemon ${lib}/`,
9
+ mocha: 'cross-env NODE_ENV=test mocha test/ --recursive --exit',
10
+ test: 'npm run mocha'
11
+ }
12
+ })
13
+
14
+ const tsPackageJson = (lib: string) => ({
15
+ scripts: {
16
+ dev: `nodemon -x ts-node ${lib}/index.ts`,
17
+ compile: 'shx rm -rf dist/ && tsc',
18
+ start: 'npm run compile && node dist/',
19
+ mocha:
20
+ 'cross-env NODE_ENV=test mocha test/ --require ts-node/register --recursive --extension .ts --exit',
21
+ test: 'npm run mocha'
22
+ }
23
+ })
24
+
25
+ const packageJson = ({
26
+ name,
27
+ description,
28
+ language,
29
+ packager,
30
+ database,
31
+ framework,
32
+ transports,
33
+ lib,
34
+ test
35
+ }: AppGeneratorContext) => ({
36
+ name,
37
+ description,
38
+ version: '0.0.0',
39
+ homepage: '',
40
+ private: true,
41
+ keywords: ['feathers'],
42
+ author: {},
43
+ contributors: [] as string[],
44
+ bugs: {},
45
+ engines: {
46
+ node: `>= ${process.version.substring(1)}`
47
+ },
48
+ feathers: {
49
+ language,
50
+ packager,
51
+ database,
52
+ framework,
53
+ transports
54
+ },
55
+ directories: {
56
+ lib,
57
+ test
58
+ },
59
+ main: `${lib}/`,
60
+ browser: language === 'ts' ? 'dist/client' : `${lib}/client`,
61
+ ...(language === 'ts' ? tsPackageJson(lib) : jsPackageJson(lib))
62
+ })
63
+
64
+ export const generate = (ctx: AppGeneratorContext) =>
65
+ generator(ctx).then(writeJSON(packageJson, toFile('package.json')))
@@ -0,0 +1,2 @@
1
+ import { AppGeneratorContext } from '../index';
2
+ export declare const generate: (ctx: AppGeneratorContext) => Promise<AppGeneratorContext>;
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generate = void 0;
4
+ const pinion_1 = require("@feathershq/pinion");
5
+ const template = ({ name, description }) => `# ${name}
6
+
7
+ > ${description}
8
+
9
+ ## About
10
+
11
+ This project uses [Feathers](http://feathersjs.com). An open source framework for building APIs and real-time applications.
12
+
13
+ ## Getting Started
14
+
15
+ 1. Make sure you have [NodeJS](https://nodejs.org/) and [npm](https://www.npmjs.com/) installed.
16
+ 2. Install your dependencies
17
+
18
+ \`\`\`
19
+ cd path/to/${name}
20
+ npm install
21
+ \`\`\`
22
+
23
+ 3. Start your app
24
+
25
+ \`\`\`
26
+ npm start
27
+ \`\`\`
28
+
29
+ ## Testing
30
+
31
+ Run \`npm test\` and all your tests in the \`test/\` directory will be run.
32
+
33
+ ## Scaffolding
34
+
35
+ Feathers has a powerful command line interface. Here are a few things it can do:
36
+
37
+ \`\`\`
38
+ $ npm install -g @feathersjs/cli # Install Feathers CLI
39
+
40
+ $ feathers generate service # Generate a new Service
41
+ $ feathers help # Show all commands
42
+ \`\`\`
43
+
44
+ ## Help
45
+
46
+ For more information on all the things you can do with Feathers visit [docs.feathersjs.com](http://docs.feathersjs.com).
47
+ `;
48
+ const generate = (ctx) => (0, pinion_1.generator)(ctx).then((0, pinion_1.renderTemplate)(template, (0, pinion_1.toFile)('readme.md')));
49
+ exports.generate = generate;
50
+ //# sourceMappingURL=readme.md.tpl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readme.md.tpl.js","sourceRoot":"","sources":["../../../src/app/templates/readme.md.tpl.ts"],"names":[],"mappings":";;;AAAA,+CAAsE;AAGtE,MAAM,QAAQ,GAAG,CAAC,EAAE,IAAI,EAAE,WAAW,EAAuB,EAAE,EAAE,CAC9D,KAAK,IAAI;;IAEP,WAAW;;;;;;;;;;;;iBAYE,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BpB,CAAA;AAEM,MAAM,QAAQ,GAAG,CAAC,GAAwB,EAAE,EAAE,CACnD,IAAA,kBAAS,EAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAA,uBAAc,EAAC,QAAQ,EAAE,IAAA,eAAM,EAAC,WAAW,CAAC,CAAC,CAAC,CAAA;AADvD,QAAA,QAAQ,YAC+C"}
@@ -0,0 +1,50 @@
1
+ import { generator, renderTemplate, toFile } from '@feathershq/pinion'
2
+ import { AppGeneratorContext } from '../index'
3
+
4
+ const template = ({ name, description }: AppGeneratorContext) =>
5
+ `# ${name}
6
+
7
+ > ${description}
8
+
9
+ ## About
10
+
11
+ This project uses [Feathers](http://feathersjs.com). An open source framework for building APIs and real-time applications.
12
+
13
+ ## Getting Started
14
+
15
+ 1. Make sure you have [NodeJS](https://nodejs.org/) and [npm](https://www.npmjs.com/) installed.
16
+ 2. Install your dependencies
17
+
18
+ \`\`\`
19
+ cd path/to/${name}
20
+ npm install
21
+ \`\`\`
22
+
23
+ 3. Start your app
24
+
25
+ \`\`\`
26
+ npm start
27
+ \`\`\`
28
+
29
+ ## Testing
30
+
31
+ Run \`npm test\` and all your tests in the \`test/\` directory will be run.
32
+
33
+ ## Scaffolding
34
+
35
+ Feathers has a powerful command line interface. Here are a few things it can do:
36
+
37
+ \`\`\`
38
+ $ npm install -g @feathersjs/cli # Install Feathers CLI
39
+
40
+ $ feathers generate service # Generate a new Service
41
+ $ feathers help # Show all commands
42
+ \`\`\`
43
+
44
+ ## Help
45
+
46
+ For more information on all the things you can do with Feathers visit [docs.feathersjs.com](http://docs.feathersjs.com).
47
+ `
48
+
49
+ export const generate = (ctx: AppGeneratorContext) =>
50
+ generator(ctx).then(renderTemplate(template, toFile('readme.md')))
@@ -0,0 +1,2 @@
1
+ import { AppGeneratorContext } from '../index';
2
+ export declare const generate: (ctx: AppGeneratorContext) => Promise<AppGeneratorContext>;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generate = void 0;
4
+ const pinion_1 = require("@feathershq/pinion");
5
+ const commons_1 = require("../../commons");
6
+ const template = ({}) => `import type { Application } from '../declarations'
7
+
8
+ export const services = (app: Application) => {
9
+ // All services will be registered here
10
+ }
11
+ `;
12
+ const generate = (ctx) => (0, pinion_1.generator)(ctx).then((0, commons_1.renderSource)(template, (0, pinion_1.toFile)(({ lib }) => lib, 'services', 'index')));
13
+ exports.generate = generate;
14
+ //# sourceMappingURL=services.tpl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"services.tpl.js","sourceRoot":"","sources":["../../../src/app/templates/services.tpl.ts"],"names":[],"mappings":";;;AAAA,+CAAsD;AACtD,2CAA4C;AAG5C,MAAM,QAAQ,GAAG,CAAC,EAAuB,EAAE,EAAE,CAC3C;;;;;CAKD,CAAA;AAEM,MAAM,QAAQ,GAAG,CAAC,GAAwB,EAAE,EAAE,CACnD,IAAA,kBAAS,EAAC,GAAG,CAAC,CAAC,IAAI,CACjB,IAAA,sBAAY,EACV,QAAQ,EACR,IAAA,eAAM,EAAsB,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,CAAC,CACnE,CACF,CAAA;AANU,QAAA,QAAQ,YAMlB"}
@@ -0,0 +1,19 @@
1
+ import { generator, toFile } from '@feathershq/pinion'
2
+ import { renderSource } from '../../commons'
3
+ import { AppGeneratorContext } from '../index'
4
+
5
+ const template = ({}: AppGeneratorContext) =>
6
+ `import type { Application } from '../declarations'
7
+
8
+ export const services = (app: Application) => {
9
+ // All services will be registered here
10
+ }
11
+ `
12
+
13
+ export const generate = (ctx: AppGeneratorContext) =>
14
+ generator(ctx).then(
15
+ renderSource(
16
+ template,
17
+ toFile<AppGeneratorContext>(({ lib }) => lib, 'services', 'index')
18
+ )
19
+ )
@@ -0,0 +1,2 @@
1
+ import { AppGeneratorContext } from '../index';
2
+ export declare const generate: (ctx: AppGeneratorContext) => Promise<AppGeneratorContext>;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generate = void 0;
4
+ const pinion_1 = require("@feathershq/pinion");
5
+ const generate = (ctx) => (0, pinion_1.generator)(ctx).then((0, pinion_1.when)((ctx) => ctx.language === 'ts', (0, pinion_1.writeJSON)(({ lib }) => ({
6
+ 'ts-node': {
7
+ files: true
8
+ },
9
+ compilerOptions: {
10
+ target: 'es2020',
11
+ module: 'commonjs',
12
+ outDir: './dist',
13
+ rootDir: `./${lib}`,
14
+ strict: true,
15
+ esModuleInterop: true
16
+ },
17
+ exclude: ['test']
18
+ }), (0, pinion_1.toFile)('tsconfig.json'))));
19
+ exports.generate = generate;
20
+ //# sourceMappingURL=tsconfig.json.tpl.js.map