ts-rails 1.0.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 (186) hide show
  1. package/README.md +442 -0
  2. package/dist/app/channels/index.d.ts +2 -0
  3. package/dist/app/channels/index.d.ts.map +1 -0
  4. package/dist/app/channels/index.js +18 -0
  5. package/dist/app/channels/index.js.map +1 -0
  6. package/dist/app/channels/railsChannel.d.ts +11 -0
  7. package/dist/app/channels/railsChannel.d.ts.map +1 -0
  8. package/dist/app/channels/railsChannel.js +20 -0
  9. package/dist/app/channels/railsChannel.js.map +1 -0
  10. package/dist/app/controllers/controllerHelpers.d.ts +4 -0
  11. package/dist/app/controllers/controllerHelpers.d.ts.map +1 -0
  12. package/dist/app/controllers/controllerHelpers.js +55 -0
  13. package/dist/app/controllers/controllerHelpers.js.map +1 -0
  14. package/dist/app/controllers/decorators.d.ts +4 -0
  15. package/dist/app/controllers/decorators.d.ts.map +1 -0
  16. package/dist/app/controllers/decorators.js +23 -0
  17. package/dist/app/controllers/decorators.js.map +1 -0
  18. package/dist/app/controllers/index.d.ts +7 -0
  19. package/dist/app/controllers/index.d.ts.map +1 -0
  20. package/dist/app/controllers/index.js +23 -0
  21. package/dist/app/controllers/index.js.map +1 -0
  22. package/dist/app/controllers/pagination.d.ts +29 -0
  23. package/dist/app/controllers/pagination.d.ts.map +1 -0
  24. package/dist/app/controllers/pagination.js +28 -0
  25. package/dist/app/controllers/pagination.js.map +1 -0
  26. package/dist/app/controllers/railsController.d.ts +30 -0
  27. package/dist/app/controllers/railsController.d.ts.map +1 -0
  28. package/dist/app/controllers/railsController.js +32 -0
  29. package/dist/app/controllers/railsController.js.map +1 -0
  30. package/dist/app/controllers/response.d.ts +19 -0
  31. package/dist/app/controllers/response.d.ts.map +1 -0
  32. package/dist/app/controllers/response.js +26 -0
  33. package/dist/app/controllers/response.js.map +1 -0
  34. package/dist/app/controllers/strongParams.d.ts +18 -0
  35. package/dist/app/controllers/strongParams.d.ts.map +1 -0
  36. package/dist/app/controllers/strongParams.js +91 -0
  37. package/dist/app/controllers/strongParams.js.map +1 -0
  38. package/dist/app/index.d.ts +7 -0
  39. package/dist/app/index.d.ts.map +1 -0
  40. package/dist/app/index.js +23 -0
  41. package/dist/app/index.js.map +1 -0
  42. package/dist/app/jobs/index.d.ts +2 -0
  43. package/dist/app/jobs/index.d.ts.map +1 -0
  44. package/dist/app/jobs/index.js +18 -0
  45. package/dist/app/jobs/index.js.map +1 -0
  46. package/dist/app/jobs/railsJob.d.ts +8 -0
  47. package/dist/app/jobs/railsJob.d.ts.map +1 -0
  48. package/dist/app/jobs/railsJob.js +15 -0
  49. package/dist/app/jobs/railsJob.js.map +1 -0
  50. package/dist/app/mailers/index.d.ts +2 -0
  51. package/dist/app/mailers/index.d.ts.map +1 -0
  52. package/dist/app/mailers/index.js +18 -0
  53. package/dist/app/mailers/index.js.map +1 -0
  54. package/dist/app/mailers/railsMailer.d.ts +13 -0
  55. package/dist/app/mailers/railsMailer.d.ts.map +1 -0
  56. package/dist/app/mailers/railsMailer.js +19 -0
  57. package/dist/app/mailers/railsMailer.js.map +1 -0
  58. package/dist/app/middlewares/fileUploadValidation.d.ts +6 -0
  59. package/dist/app/middlewares/fileUploadValidation.d.ts.map +1 -0
  60. package/dist/app/middlewares/fileUploadValidation.js +21 -0
  61. package/dist/app/middlewares/fileUploadValidation.js.map +1 -0
  62. package/dist/app/middlewares/index.d.ts +2 -0
  63. package/dist/app/middlewares/index.d.ts.map +1 -0
  64. package/dist/app/middlewares/index.js +18 -0
  65. package/dist/app/middlewares/index.js.map +1 -0
  66. package/dist/app/views/index.d.ts +2 -0
  67. package/dist/app/views/index.d.ts.map +1 -0
  68. package/dist/app/views/index.js +18 -0
  69. package/dist/app/views/index.js.map +1 -0
  70. package/dist/app/views/viewHelpers.d.ts +7 -0
  71. package/dist/app/views/viewHelpers.d.ts.map +1 -0
  72. package/dist/app/views/viewHelpers.js +42 -0
  73. package/dist/app/views/viewHelpers.js.map +1 -0
  74. package/dist/cli.d.ts +3 -0
  75. package/dist/cli.d.ts.map +1 -0
  76. package/dist/cli.js +111 -0
  77. package/dist/cli.js.map +1 -0
  78. package/dist/commands/console.d.ts +2 -0
  79. package/dist/commands/console.d.ts.map +1 -0
  80. package/dist/commands/console.js +85 -0
  81. package/dist/commands/console.js.map +1 -0
  82. package/dist/commands/generate-concern.d.ts +2 -0
  83. package/dist/commands/generate-concern.d.ts.map +1 -0
  84. package/dist/commands/generate-concern.js +40 -0
  85. package/dist/commands/generate-concern.js.map +1 -0
  86. package/dist/commands/generate-controller.d.ts +2 -0
  87. package/dist/commands/generate-controller.d.ts.map +1 -0
  88. package/dist/commands/generate-controller.js +92 -0
  89. package/dist/commands/generate-controller.js.map +1 -0
  90. package/dist/commands/generate-factory.d.ts +2 -0
  91. package/dist/commands/generate-factory.d.ts.map +1 -0
  92. package/dist/commands/generate-factory.js +43 -0
  93. package/dist/commands/generate-factory.js.map +1 -0
  94. package/dist/commands/generate-job.d.ts +2 -0
  95. package/dist/commands/generate-job.d.ts.map +1 -0
  96. package/dist/commands/generate-job.js +41 -0
  97. package/dist/commands/generate-job.js.map +1 -0
  98. package/dist/commands/generate-mailer.d.ts +2 -0
  99. package/dist/commands/generate-mailer.d.ts.map +1 -0
  100. package/dist/commands/generate-mailer.js +46 -0
  101. package/dist/commands/generate-mailer.js.map +1 -0
  102. package/dist/commands/generate-model.d.ts +2 -0
  103. package/dist/commands/generate-model.d.ts.map +1 -0
  104. package/dist/commands/generate-model.js +53 -0
  105. package/dist/commands/generate-model.js.map +1 -0
  106. package/dist/commands/generate-resource.d.ts +2 -0
  107. package/dist/commands/generate-resource.d.ts.map +1 -0
  108. package/dist/commands/generate-resource.js +62 -0
  109. package/dist/commands/generate-resource.js.map +1 -0
  110. package/dist/commands/generate-scaffold.d.ts +2 -0
  111. package/dist/commands/generate-scaffold.d.ts.map +1 -0
  112. package/dist/commands/generate-scaffold.js +183 -0
  113. package/dist/commands/generate-scaffold.js.map +1 -0
  114. package/dist/commands/generate-service.d.ts +2 -0
  115. package/dist/commands/generate-service.d.ts.map +1 -0
  116. package/dist/commands/generate-service.js +49 -0
  117. package/dist/commands/generate-service.js.map +1 -0
  118. package/dist/commands/notes.d.ts +2 -0
  119. package/dist/commands/notes.d.ts.map +1 -0
  120. package/dist/commands/notes.js +58 -0
  121. package/dist/commands/notes.js.map +1 -0
  122. package/dist/commands/routes.d.ts +2 -0
  123. package/dist/commands/routes.d.ts.map +1 -0
  124. package/dist/commands/routes.js +76 -0
  125. package/dist/commands/routes.js.map +1 -0
  126. package/dist/configs/cache.d.ts +15 -0
  127. package/dist/configs/cache.d.ts.map +1 -0
  128. package/dist/configs/cache.js +27 -0
  129. package/dist/configs/cache.js.map +1 -0
  130. package/dist/configs/index.d.ts +6 -0
  131. package/dist/configs/index.d.ts.map +1 -0
  132. package/dist/configs/index.js +22 -0
  133. package/dist/configs/index.js.map +1 -0
  134. package/dist/configs/logger.d.ts +12 -0
  135. package/dist/configs/logger.d.ts.map +1 -0
  136. package/dist/configs/logger.js +23 -0
  137. package/dist/configs/logger.js.map +1 -0
  138. package/dist/configs/railsApplication.d.ts +54 -0
  139. package/dist/configs/railsApplication.d.ts.map +1 -0
  140. package/dist/configs/railsApplication.js +314 -0
  141. package/dist/configs/railsApplication.js.map +1 -0
  142. package/dist/configs/railsRoute.d.ts +71 -0
  143. package/dist/configs/railsRoute.d.ts.map +1 -0
  144. package/dist/configs/railsRoute.js +332 -0
  145. package/dist/configs/railsRoute.js.map +1 -0
  146. package/dist/configs/swagger/builder.d.ts +20 -0
  147. package/dist/configs/swagger/builder.d.ts.map +1 -0
  148. package/dist/configs/swagger/builder.js +81 -0
  149. package/dist/configs/swagger/builder.js.map +1 -0
  150. package/dist/configs/swagger/decorator.d.ts +23 -0
  151. package/dist/configs/swagger/decorator.d.ts.map +1 -0
  152. package/dist/configs/swagger/decorator.js +27 -0
  153. package/dist/configs/swagger/decorator.js.map +1 -0
  154. package/dist/configs/swagger/index.d.ts +5 -0
  155. package/dist/configs/swagger/index.d.ts.map +1 -0
  156. package/dist/configs/swagger/index.js +21 -0
  157. package/dist/configs/swagger/index.js.map +1 -0
  158. package/dist/configs/swagger/registry.d.ts +4 -0
  159. package/dist/configs/swagger/registry.d.ts.map +1 -0
  160. package/dist/configs/swagger/registry.js +22 -0
  161. package/dist/configs/swagger/registry.js.map +1 -0
  162. package/dist/configs/swagger/server.d.ts +3 -0
  163. package/dist/configs/swagger/server.d.ts.map +1 -0
  164. package/dist/configs/swagger/server.js +17 -0
  165. package/dist/configs/swagger/server.js.map +1 -0
  166. package/dist/index.d.ts +4 -0
  167. package/dist/index.d.ts.map +1 -0
  168. package/dist/index.js +20 -0
  169. package/dist/index.js.map +1 -0
  170. package/dist/lib/index.d.ts +2 -0
  171. package/dist/lib/index.d.ts.map +1 -0
  172. package/dist/lib/index.js +18 -0
  173. package/dist/lib/index.js.map +1 -0
  174. package/dist/lib/utils/errors.d.ts +22 -0
  175. package/dist/lib/utils/errors.d.ts.map +1 -0
  176. package/dist/lib/utils/errors.js +45 -0
  177. package/dist/lib/utils/errors.js.map +1 -0
  178. package/dist/lib/utils/index.d.ts +3 -0
  179. package/dist/lib/utils/index.d.ts.map +1 -0
  180. package/dist/lib/utils/index.js +19 -0
  181. package/dist/lib/utils/index.js.map +1 -0
  182. package/dist/lib/utils/security.d.ts +9 -0
  183. package/dist/lib/utils/security.d.ts.map +1 -0
  184. package/dist/lib/utils/security.js +14 -0
  185. package/dist/lib/utils/security.js.map +1 -0
  186. package/package.json +105 -0
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const fs_1 = __importDefault(require("fs"));
7
+ const path_1 = __importDefault(require("path"));
8
+ const pluralize_1 = __importDefault(require("pluralize"));
9
+ const args = process.argv.slice(2);
10
+ if (args.length < 1) {
11
+ console.error("Usage: yarn g:model ModelName field:type field:type");
12
+ process.exit(1);
13
+ }
14
+ const modelName = pluralize_1.default.singular(args[0]);
15
+ const fields = args.slice(1).map((f) => {
16
+ const [name, type] = f.split(":");
17
+ return { name, type: type || "string" };
18
+ });
19
+ const typeMap = {
20
+ string: "String",
21
+ int: "Int",
22
+ boolean: "Boolean",
23
+ datetime: "DateTime",
24
+ float: "Float",
25
+ json: "Json",
26
+ };
27
+ const root = process.cwd();
28
+ const schemaPath = path_1.default.join(root, "configs/db/schema.prisma");
29
+ if (!fs_1.default.existsSync(schemaPath)) {
30
+ console.error(`[Error] Schema not found at ${schemaPath}`);
31
+ process.exit(1);
32
+ }
33
+ const modelTemplate = `
34
+ model ${modelName} {
35
+ id String @id @default(uuid())
36
+ ${fields.map((f) => ` ${f.name.padEnd(10)} ${typeMap[f.type.toLowerCase()] || "String"}`).join("\n")}
37
+ createdAt DateTime @default(now())
38
+ updatedAt DateTime @updatedAt
39
+ }
40
+ `;
41
+ try {
42
+ fs_1.default.appendFileSync(schemaPath, modelTemplate);
43
+ console.log(`\x1b[32mUPDATE\x1b[0m configs/db/schema.prisma`);
44
+ console.log(`
45
+ \x1b[33mNext Steps:\x1b[0m
46
+ 1. Run: \x1b[36myarn db:migrate\x1b[0m to update database.
47
+ 2. Your model is ready to use via \x1b[35mmodels.${modelName.toLowerCase()}\x1b[0m
48
+ `);
49
+ }
50
+ catch (err) {
51
+ console.error("Failed to update schema:", err);
52
+ }
53
+ //# sourceMappingURL=generate-model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-model.js","sourceRoot":"","sources":["../../commands/generate-model.ts"],"names":[],"mappings":";;;;;AAAA,4CAAoB;AACpB,gDAAwB;AACxB,0DAAkC;AAElC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;IACpB,OAAO,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,SAAS,GAAG,mBAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;IACrC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAClC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,QAAQ,EAAE,CAAC;AAC1C,CAAC,CAAC,CAAC;AAEH,MAAM,OAAO,GAA2B;IACtC,MAAM,EAAE,QAAQ;IAChB,GAAG,EAAE,KAAK;IACV,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,UAAU;IACpB,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,MAAM;CACb,CAAC;AAEF,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;AAC3B,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,IAAI,EAAE,0BAA0B,CAAC,CAAC;AAE/D,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;IAC/B,OAAO,CAAC,KAAK,CAAC,+BAA+B,UAAU,EAAE,CAAC,CAAC;IAC3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,aAAa,GAAG;QACd,SAAS;;EAEf,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;;CAIpG,CAAC;AAEF,IAAI,CAAC;IACH,YAAE,CAAC,cAAc,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IAC7C,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;IAC9D,OAAO,CAAC,GAAG,CAAC;;;mDAGqC,SAAS,CAAC,WAAW,EAAE;CACzE,CAAC,CAAC;AACH,CAAC;AAAC,OAAO,GAAG,EAAE,CAAC;IACb,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,GAAG,CAAC,CAAC;AACjD,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=generate-resource.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-resource.d.ts","sourceRoot":"","sources":["../../commands/generate-resource.ts"],"names":[],"mappings":""}
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const fs_1 = __importDefault(require("fs"));
7
+ const path_1 = __importDefault(require("path"));
8
+ const pluralize_1 = __importDefault(require("pluralize"));
9
+ const args = process.argv.slice(2);
10
+ if (args.length < 1) {
11
+ console.error("Usage: yarn g:resource ModelName field:type");
12
+ process.exit(1);
13
+ }
14
+ const inputName = args[0];
15
+ const parts = inputName.split("/");
16
+ const rawName = parts.pop();
17
+ const subDir = parts.join("/").toLowerCase();
18
+ const namePlural = (0, pluralize_1.default)(rawName.toLowerCase());
19
+ const root = process.cwd();
20
+ const controllerPath = path_1.default.join(root, "app/controllers", subDir, `${namePlural}.controller.ts`);
21
+ const routePath = path_1.default.join(root, "app/routes", subDir, `${namePlural}.route.ts`);
22
+ const controllerTemplate = `import { Request, Response } from "express";
23
+ import { RailsController } from "ts-rails";
24
+ import models from "@models";
25
+
26
+ export class ${(0, pluralize_1.default)(rawName)}Controller extends RailsController {
27
+ async index() {
28
+ const items = await models.${rawName.toLowerCase()}.findMany();
29
+ this.renderJson(items);
30
+ }
31
+
32
+ async show() {
33
+ const item = await models.${rawName.toLowerCase()}.findUnique({ where: { id: this.req.params.id } });
34
+ this.renderJson(item);
35
+ }
36
+
37
+ async create() {
38
+ const item = await models.${rawName.toLowerCase()}.create({ data: this.req.body });
39
+ this.renderJson(item, 201);
40
+ }
41
+ }
42
+ `;
43
+ const routeTemplate = `import { RailsRoute } from "ts-rails";
44
+ import { ${(0, pluralize_1.default)(rawName)}Controller } from "@controllers/${subDir ? subDir + "/" : ""}${namePlural}.controller";
45
+
46
+ export class ${rawName}Route extends RailsRoute {
47
+ draw() {
48
+ this.resource("${namePlural}", ${(0, pluralize_1.default)(rawName)}Controller, { only: ["index", "show", "create"] });
49
+ }
50
+ }
51
+ `;
52
+ const writeFile = (filePath, content) => {
53
+ const dir = path_1.default.dirname(filePath);
54
+ if (!fs_1.default.existsSync(dir))
55
+ fs_1.default.mkdirSync(dir, { recursive: true });
56
+ fs_1.default.writeFileSync(filePath, content);
57
+ console.log(`\x1b[32mCREATE\x1b[0m ${path_1.default.relative(root, filePath)}`);
58
+ };
59
+ writeFile(controllerPath, controllerTemplate);
60
+ writeFile(routePath, routeTemplate);
61
+ console.log(`\n\x1b[33mResource generated!\x1b[0m (Remember to add to schema.prisma and routes/index.ts)`);
62
+ //# sourceMappingURL=generate-resource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-resource.js","sourceRoot":"","sources":["../../commands/generate-resource.ts"],"names":[],"mappings":";;;;;AAAA,4CAAoB;AACpB,gDAAwB;AACxB,0DAAkC;AAElC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;IACpB,OAAO,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;IAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAC1B,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACnC,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,EAAG,CAAC;AAC7B,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;AAC7C,MAAM,UAAU,GAAG,IAAA,mBAAS,EAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;AAEpD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;AAC3B,MAAM,cAAc,GAAG,cAAI,CAAC,IAAI,CAC9B,IAAI,EACJ,iBAAiB,EACjB,MAAM,EACN,GAAG,UAAU,gBAAgB,CAC9B,CAAC;AACF,MAAM,SAAS,GAAG,cAAI,CAAC,IAAI,CACzB,IAAI,EACJ,YAAY,EACZ,MAAM,EACN,GAAG,UAAU,WAAW,CACzB,CAAC;AAEF,MAAM,kBAAkB,GAAG;;;;eAIZ,IAAA,mBAAS,EAAC,OAAO,CAAC;;iCAEA,OAAO,CAAC,WAAW,EAAE;;;;;gCAKtB,OAAO,CAAC,WAAW,EAAE;;;;;gCAKrB,OAAO,CAAC,WAAW,EAAE;;;;CAIpD,CAAC;AAEF,MAAM,aAAa,GAAG;WACX,IAAA,mBAAS,EAAC,OAAO,CAAC,mCAAmC,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,UAAU;;eAExF,OAAO;;qBAED,UAAU,MAAM,IAAA,mBAAS,EAAC,OAAO,CAAC;;;CAGtD,CAAC;AAEF,MAAM,SAAS,GAAG,CAAC,QAAgB,EAAE,OAAe,EAAE,EAAE;IACtD,MAAM,GAAG,GAAG,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACnC,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,YAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChE,YAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACpC,OAAO,CAAC,GAAG,CAAC,yBAAyB,cAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;AACxE,CAAC,CAAC;AAEF,SAAS,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;AAC9C,SAAS,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;AAEpC,OAAO,CAAC,GAAG,CACT,6FAA6F,CAC9F,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=generate-scaffold.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-scaffold.d.ts","sourceRoot":"","sources":["../../commands/generate-scaffold.ts"],"names":[],"mappings":""}
@@ -0,0 +1,183 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const fs_1 = __importDefault(require("fs"));
7
+ const path_1 = __importDefault(require("path"));
8
+ const pluralize_1 = __importDefault(require("pluralize"));
9
+ const args = process.argv.slice(2);
10
+ if (args.length < 1) {
11
+ console.error("Usage: yarn scaffold ModelName field:type field:type");
12
+ process.exit(1);
13
+ }
14
+ const inputName = args[0];
15
+ const parts = inputName.split("/");
16
+ const rawModelName = parts.pop();
17
+ const subDir = parts.join("/").toLowerCase();
18
+ const modelName = pluralize_1.default.singular(rawModelName);
19
+ const modelLower = rawModelName.toLowerCase();
20
+ const modelPlural = (0, pluralize_1.default)(modelLower);
21
+ const classNamePrefix = parts
22
+ .map((p) => p.charAt(0).toUpperCase() + p.slice(1).toLowerCase())
23
+ .join("");
24
+ const controllerClassName = `${classNamePrefix}${(0, pluralize_1.default)(modelName)}Controller`;
25
+ const fields = args.slice(1).map((f) => {
26
+ const [name, type] = f.split(":");
27
+ return { name, type: type || "string" };
28
+ });
29
+ const root = process.cwd();
30
+ const paths = {
31
+ controller: path_1.default.join(root, "app/controllers", subDir, `${modelPlural}.controller.ts`),
32
+ test: path_1.default.join(root, "app/controllers", subDir, "__tests__", `${modelPlural}.controller.spec.ts`),
33
+ route: path_1.default.join(root, "app/routes", subDir, `${modelPlural}.route.ts`),
34
+ viewsDir: path_1.default.join(root, "app/views", subDir, modelPlural),
35
+ };
36
+ const hasAppController = fs_1.default.existsSync(path_1.default.join(root, "app/controllers/application.controller.ts"));
37
+ const baseClass = hasAppController
38
+ ? "ApplicationController"
39
+ : "RailsController";
40
+ const importBase = hasAppController
41
+ ? `import { ApplicationController } from "@controllers/application.controller";`
42
+ : `import { RailsController } from "ts-rails";`;
43
+ const controllerTemplate = `import { Request, Response } from "express";
44
+ ${importBase}
45
+ import models from "@models";
46
+
47
+ export class ${controllerClassName} extends ${baseClass} {
48
+ async index(req: Request, res: Response) {
49
+ const ${modelPlural} = await models.${modelLower}.findMany();
50
+ res.render("${subDir ? subDir + "/" : ""}${modelPlural}/index", { ${modelPlural} });
51
+ }
52
+
53
+ async show(req: Request, res: Response) {
54
+ const ${modelLower} = await models.${modelLower}.findUnique({ where: { id: req.params.id } });
55
+ res.render("${modelPlural}/show", { ${modelLower} });
56
+ }
57
+
58
+ async new(req: Request, res: Response) {
59
+ res.render("${modelPlural}/new", { ${modelLower}: {} });
60
+ }
61
+
62
+ async edit(req: Request, res: Response) {
63
+ const ${modelLower} = await models.${modelLower}.findUnique({ where: { id: req.params.id } });
64
+ res.render("${subDir ? subDir + "/" : ""}${modelPlural}/edit", { ${modelLower} });
65
+ }
66
+
67
+ async create(req: Request, res: Response) {
68
+ const params = this.params(req).permit(${fields.map((f) => `'${f.name}'`).join(", ")});
69
+ await models.${modelLower}.create({ data: params });
70
+ res.redirect(\`/${modelPlural}\`);
71
+ }
72
+
73
+ async update(req: Request, res: Response) {
74
+ const params = this.params(req).permit(${fields.map((f) => `'${f.name}'`).join(", ")});
75
+ await models.${modelLower}.update({
76
+ where: { id: req.params.id },
77
+ data: params,
78
+ });
79
+ res.redirect(\`/${modelPlural}/\${req.params.id}\`);
80
+ }
81
+
82
+ async destroy(req: Request, res: Response) {
83
+ await models.${modelLower}.delete({ where: { id: req.params.id } });
84
+ res.redirect(\`/${modelPlural}\`);
85
+ }
86
+ }
87
+ `;
88
+ const testTemplate = `import { ${controllerClassName} } from "../${modelPlural}.controller";
89
+
90
+ describe("${controllerClassName}", () => {
91
+ it("should have CRUD actions defined", () => {
92
+ const controller = new ${controllerClassName}();
93
+ expect(controller.index).toBeDefined();
94
+ expect(controller.show).toBeDefined();
95
+ expect(controller.create).toBeDefined();
96
+ expect(controller.update).toBeDefined();
97
+ expect(controller.destroy).toBeDefined();
98
+ });
99
+ });
100
+ `;
101
+ const routeTemplate = `import { RailsRoute } from "ts-rails";
102
+ import { ${controllerClassName} } from "@controllers/${subDir ? subDir + "/" : ""}${modelPlural}.controller";
103
+
104
+ export class ${modelName}Route extends RailsRoute {
105
+ draw() {
106
+ this.resource("${modelPlural}", ${controllerClassName});
107
+ }
108
+ }
109
+ `;
110
+ const indexView = `extends ../layouts/application
111
+
112
+ block content
113
+ .d-flex.justify-content-between.align-items-center.mb-4
114
+ h1 List of ${modelName}s
115
+ a.btn.btn-primary(href="/${modelPlural}/new") New ${modelName}
116
+
117
+ table.table.table-striped
118
+ thead
119
+ tr
120
+ ${fields.map((f) => ` th ${f.name.charAt(0).toUpperCase() + f.name.slice(1)}`).join("\n")}
121
+ th Actions
122
+ tbody
123
+ each item in ${modelPlural}
124
+ tr
125
+ ${fields.map((f) => ` td= item.${f.name}`).join("\n")}
126
+ td
127
+ a.btn.btn-sm.btn-info.me-2(href=\`/${modelPlural}/\${item.id}\`) Show
128
+ a.btn.btn-sm.btn-warning.me-2(href=\`/${modelPlural}/\${item.id}/edit\`) Edit
129
+ form.d-inline(method="POST" action=\`/${modelPlural}/\${item.id}?_method=DELETE\`)
130
+ button.btn.btn-sm.btn-danger(onclick="return confirm('Are you sure?')") Delete
131
+ `;
132
+ const formView = `
133
+ ${fields
134
+ .map((f) => `
135
+ .mb-3
136
+ label.form-label ${f.name.charAt(0).toUpperCase() + f.name.slice(1)}
137
+ input.form-control(name="${f.name}" value=item.${f.name} || '')`)
138
+ .join("")}
139
+ button.btn.btn-success(type="submit") Save
140
+ `;
141
+ const newView = `extends ../layouts/application
142
+
143
+ block content
144
+ h1 New ${modelName}
145
+ form(method="POST" action="/${modelPlural}")
146
+ include _form
147
+ `;
148
+ const editView = `extends ../layouts/application
149
+
150
+ block content
151
+ h1 Edit ${modelName}
152
+ form(method="POST" action=\`/${modelPlural}/\${${modelLower}.id}?_method=PUT\`)
153
+ - var item = ${modelLower}
154
+ include _form
155
+ `;
156
+ const writeFile = (filePath, content) => {
157
+ const dir = path_1.default.dirname(filePath);
158
+ if (!fs_1.default.existsSync(dir))
159
+ fs_1.default.mkdirSync(dir, { recursive: true });
160
+ fs_1.default.writeFileSync(filePath, content);
161
+ console.log(`\x1b[32mCREATE\x1b[0m ${path_1.default.relative(root, filePath)}`);
162
+ };
163
+ writeFile(paths.controller, controllerTemplate);
164
+ writeFile(paths.test, testTemplate);
165
+ writeFile(paths.route, routeTemplate);
166
+ writeFile(path_1.default.join(paths.viewsDir, "index.pug"), indexView);
167
+ writeFile(path_1.default.join(paths.viewsDir, "_form.pug"), formView);
168
+ writeFile(path_1.default.join(paths.viewsDir, "new.pug"), newView);
169
+ writeFile(path_1.default.join(paths.viewsDir, "edit.pug"), editView);
170
+ console.log(`
171
+ \x1b[33mNext Steps:\x1b[0m
172
+ 1. Add the following to your prisma.schema:
173
+ model ${modelName} {
174
+ id String @id @default(uuid())
175
+ ${fields.map((f) => `${f.name} ${f.type === "string" ? "String" : "Int"}`).join("\n ")}
176
+ }
177
+ 2. Run: \x1b[36myarn db:migrate\x1b[0m
178
+ 3. Register the route in \x1b[35mapp/routes/index.ts\x1b[0m:
179
+ import { ${modelName}Route } from "./${subDir ? subDir + "/" : ""}${modelPlural}.route";
180
+ // ... inside draw():
181
+ this.path("/${subDir ? subDir + "/" : ""}${modelPlural}", ${modelName}Route.draw());
182
+ `);
183
+ //# sourceMappingURL=generate-scaffold.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-scaffold.js","sourceRoot":"","sources":["../../commands/generate-scaffold.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=generate-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-service.d.ts","sourceRoot":"","sources":["../../commands/generate-service.ts"],"names":[],"mappings":""}
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const fs_1 = __importDefault(require("fs"));
7
+ const path_1 = __importDefault(require("path"));
8
+ const args = process.argv.slice(2);
9
+ if (args.length < 1) {
10
+ console.error("Usage: yarn g:service Name");
11
+ process.exit(1);
12
+ }
13
+ const inputName = args[0];
14
+ const parts = inputName.split("/");
15
+ const rawName = parts.pop();
16
+ const subDir = parts.join("/").toLowerCase();
17
+ const serviceName = `${rawName.charAt(0).toUpperCase() + rawName.slice(1).toLowerCase()}Service`;
18
+ const root = process.cwd();
19
+ const serviceDir = path_1.default.join(root, "app/services", subDir);
20
+ const servicePath = path_1.default.join(serviceDir, `${rawName.toLowerCase()}.service.ts`);
21
+ const template = `/**
22
+ * ${serviceName} - Generated by ts-rails
23
+ */
24
+ export class ${serviceName} {
25
+ /**
26
+ * Execute the service logic
27
+ */
28
+ async execute(params: any) {
29
+ // TODO: Implement business logic
30
+ return params;
31
+ }
32
+ }
33
+ `;
34
+ const writeFile = (filePath, content) => {
35
+ const dir = path_1.default.dirname(filePath);
36
+ if (!fs_1.default.existsSync(dir))
37
+ fs_1.default.mkdirSync(dir, { recursive: true });
38
+ fs_1.default.writeFileSync(filePath, content);
39
+ console.log(`\x1b[32mCREATE\x1b[0m ${path_1.default.relative(root, filePath)}`);
40
+ };
41
+ writeFile(servicePath, template);
42
+ console.log(`
43
+ \x1b[33mUsage:\x1b[0m
44
+ import { ${serviceName} } from "@services/${subDir ? subDir + "/" : ""}${rawName.toLowerCase()}.service";
45
+
46
+ // In your controller:
47
+ const result = await new ${serviceName}().execute(this.req.body);
48
+ `);
49
+ //# sourceMappingURL=generate-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-service.js","sourceRoot":"","sources":["../../commands/generate-service.ts"],"names":[],"mappings":";;;;;AAAA,4CAAoB;AACpB,gDAAwB;AAExB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;IACpB,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAC1B,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACnC,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,EAAG,CAAC;AAC7B,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;AAE7C,MAAM,WAAW,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,SAAS,CAAC;AACjG,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;AAC3B,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;AAC3D,MAAM,WAAW,GAAG,cAAI,CAAC,IAAI,CAC3B,UAAU,EACV,GAAG,OAAO,CAAC,WAAW,EAAE,aAAa,CACtC,CAAC;AAEF,MAAM,QAAQ,GAAG;KACZ,WAAW;;eAED,WAAW;;;;;;;;;CASzB,CAAC;AAEF,MAAM,SAAS,GAAG,CAAC,QAAgB,EAAE,OAAe,EAAE,EAAE;IACtD,MAAM,GAAG,GAAG,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACnC,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,YAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChE,YAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACpC,OAAO,CAAC,GAAG,CAAC,yBAAyB,cAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;AACxE,CAAC,CAAC;AAEF,SAAS,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;AAEjC,OAAO,CAAC,GAAG,CAAC;;WAED,WAAW,sBAAsB,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,WAAW,EAAE;;;2BAGnE,WAAW;CACrC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=notes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notes.d.ts","sourceRoot":"","sources":["../../commands/notes.ts"],"names":[],"mappings":""}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const fs_1 = __importDefault(require("fs"));
7
+ const path_1 = __importDefault(require("path"));
8
+ const root = process.cwd();
9
+ const directories = ["app", "rails", "configs"];
10
+ const tags = ["TODO", "FIXME", "OPTIMIZE"];
11
+ console.info("\n--- PROJECT NOTES ---\n");
12
+ let totalNotes = 0;
13
+ const scanDir = (dir) => {
14
+ const files = fs_1.default.readdirSync(dir);
15
+ files.forEach((file) => {
16
+ const fullPath = path_1.default.join(dir, file);
17
+ const stat = fs_1.default.statSync(fullPath);
18
+ if (stat.isDirectory()) {
19
+ if (file !== "node_modules" && file !== "dist") {
20
+ scanDir(fullPath);
21
+ }
22
+ }
23
+ else if (file.endsWith(".ts") ||
24
+ file.endsWith(".js") ||
25
+ file.endsWith(".pug")) {
26
+ const content = fs_1.default.readFileSync(fullPath, "utf-8");
27
+ const lines = content.split("\n");
28
+ lines.forEach((line, index) => {
29
+ tags.forEach((tag) => {
30
+ if (line.includes(tag)) {
31
+ const cleanLine = line.substring(line.indexOf(tag)).trim();
32
+ const relativePath = path_1.default.relative(root, fullPath);
33
+ const tagColor = tag === "FIXME"
34
+ ? "\x1b[31m"
35
+ : tag === "TODO"
36
+ ? "\x1b[33m"
37
+ : "\x1b[36m";
38
+ console.info(`${tagColor}${tag.padEnd(8)}\x1b[0m \x1b[90m${relativePath}:${index + 1}\x1b[0m`);
39
+ console.info(` ${cleanLine}\n`);
40
+ totalNotes++;
41
+ }
42
+ });
43
+ });
44
+ }
45
+ });
46
+ };
47
+ directories.forEach((dir) => {
48
+ const fullPath = path_1.default.join(root, dir);
49
+ if (fs_1.default.existsSync(fullPath))
50
+ scanDir(fullPath);
51
+ });
52
+ if (totalNotes === 0) {
53
+ console.info("No notes found. Your code is clean! ✨");
54
+ }
55
+ else {
56
+ console.info(`Total: ${totalNotes} notes found.\n`);
57
+ }
58
+ //# sourceMappingURL=notes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notes.js","sourceRoot":"","sources":["../../commands/notes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../commands/routes.ts"],"names":[],"mappings":""}
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const path_1 = __importDefault(require("path"));
7
+ const configs_1 = require("../configs");
8
+ const originalLog = console.log;
9
+ const originalInfo = console.info;
10
+ console.log = () => { };
11
+ console.info = () => { };
12
+ const getApplication = () => {
13
+ const root = process.cwd();
14
+ const potentialPaths = [
15
+ process.env.APP_PATH,
16
+ path_1.default.join(root, "configs/application"),
17
+ path_1.default.join(root, "src/configs/application"),
18
+ path_1.default.join(root, "index"),
19
+ path_1.default.join(root, "app"),
20
+ path_1.default.join(root, "src/app"),
21
+ ].filter(Boolean);
22
+ for (const appPath of potentialPaths) {
23
+ try {
24
+ const mod = require(appPath);
25
+ const app = mod.default || mod;
26
+ if (app instanceof configs_1.RailsApplication) {
27
+ return app;
28
+ }
29
+ }
30
+ catch (err) {
31
+ continue;
32
+ }
33
+ }
34
+ console.error(`[Error] Could not find an instance of RailsApplication in the project.`);
35
+ console.error("Please ensure your application file exports an instance and is located in src/configs/application or configs/application.");
36
+ process.exit(1);
37
+ };
38
+ const application = getApplication();
39
+ application.bootstrap();
40
+ const routes = application.getRoutes();
41
+ console.log = originalLog;
42
+ console.info = originalInfo;
43
+ const searchTerm = (process.argv[2] ||
44
+ process.env.S ||
45
+ process.env.SEARCH ||
46
+ "").toLowerCase();
47
+ const filteredRoutes = routes.filter((r) => {
48
+ const fullPath = `${r.prefix}${r.path}`.replace(/\/+/g, "/").toLowerCase();
49
+ const method = r.method.toLowerCase();
50
+ return (!searchTerm || fullPath.includes(searchTerm) || method.includes(searchTerm));
51
+ });
52
+ if (searchTerm) {
53
+ console.info(`\n--- ROUTES FILTERED BY: "${searchTerm}" ---\n`);
54
+ }
55
+ else {
56
+ console.info("\n--- APPLICATION ROUTES ---\n");
57
+ }
58
+ filteredRoutes.forEach((r) => {
59
+ const methodStr = r.method.toUpperCase();
60
+ const colors = {
61
+ GET: "\x1b[32m",
62
+ POST: "\x1b[33m",
63
+ PUT: "\x1b[34m",
64
+ PATCH: "\x1b[36m",
65
+ DELETE: "\x1b[31m",
66
+ };
67
+ const color = colors[methodStr] || "\x1b[0m";
68
+ const method = `${color}${methodStr.padEnd(7)}\x1b[0m`;
69
+ let fullPath = `${r.prefix}${r.path}`.replace(/\/+/g, "/");
70
+ if (fullPath.length > 1 && fullPath.endsWith("/")) {
71
+ fullPath = fullPath.slice(0, -1);
72
+ }
73
+ console.info(`${method}\x1b[36m| \x1b[0m${fullPath}`);
74
+ });
75
+ console.info(`\nTotal: ${filteredRoutes.length} routes${searchTerm ? ` (filtered from ${routes.length})` : ""}\n`);
76
+ //# sourceMappingURL=routes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../commands/routes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ export interface CacheStore {
2
+ get<T>(key: string): T | undefined;
3
+ set<T>(key: string, value: T, ttl?: number): boolean;
4
+ del(key: string): number;
5
+ flush(): void;
6
+ has(key: string): boolean;
7
+ }
8
+ export declare const Cache: {
9
+ get<T>(key: string): T | undefined;
10
+ set<T>(key: string, value: T, ttl?: number): boolean;
11
+ del(key: string): number;
12
+ flush(): void;
13
+ has(key: string): boolean;
14
+ };
15
+ //# sourceMappingURL=cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../configs/cache.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,UAAU;IACzB,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC;IACnC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACrD,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,KAAK,IAAI,IAAI,CAAC;IACd,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CAC3B;AAED,eAAO,MAAM,KAAK;QACZ,CAAC,OAAO,MAAM,GAAG,CAAC,GAAG,SAAS;QAI9B,CAAC,OAAO,MAAM,SAAS,CAAC,QAAQ,MAAM,GAAG,OAAO;aAI3C,MAAM,GAAG,MAAM;aAIf,IAAI;aAIJ,MAAM,GAAG,OAAO;CAG1B,CAAC"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Cache = void 0;
4
+ const railsApplication_1 = require("./railsApplication");
5
+ exports.Cache = {
6
+ get(key) {
7
+ var _a;
8
+ return (_a = railsApplication_1.RailsApplication.cacheStore) === null || _a === void 0 ? void 0 : _a.get(key);
9
+ },
10
+ set(key, value, ttl) {
11
+ var _a, _b;
12
+ return (_b = (_a = railsApplication_1.RailsApplication.cacheStore) === null || _a === void 0 ? void 0 : _a.set(key, value, ttl)) !== null && _b !== void 0 ? _b : false;
13
+ },
14
+ del(key) {
15
+ var _a, _b;
16
+ return (_b = (_a = railsApplication_1.RailsApplication.cacheStore) === null || _a === void 0 ? void 0 : _a.del(key)) !== null && _b !== void 0 ? _b : 0;
17
+ },
18
+ flush() {
19
+ var _a;
20
+ (_a = railsApplication_1.RailsApplication.cacheStore) === null || _a === void 0 ? void 0 : _a.flush();
21
+ },
22
+ has(key) {
23
+ var _a, _b;
24
+ return (_b = (_a = railsApplication_1.RailsApplication.cacheStore) === null || _a === void 0 ? void 0 : _a.has(key)) !== null && _b !== void 0 ? _b : false;
25
+ },
26
+ };
27
+ //# sourceMappingURL=cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../configs/cache.ts"],"names":[],"mappings":";;;AAAA,yDAAsD;AAWzC,QAAA,KAAK,GAAG;IACnB,GAAG,CAAI,GAAW;;QAChB,OAAO,MAAA,mCAAgB,CAAC,UAAU,0CAAE,GAAG,CAAI,GAAG,CAAC,CAAC;IAClD,CAAC;IAED,GAAG,CAAI,GAAW,EAAE,KAAQ,EAAE,GAAY;;QACxC,OAAO,MAAA,MAAA,mCAAgB,CAAC,UAAU,0CAAE,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,mCAAI,KAAK,CAAC;IACpE,CAAC;IAED,GAAG,CAAC,GAAW;;QACb,OAAO,MAAA,MAAA,mCAAgB,CAAC,UAAU,0CAAE,GAAG,CAAC,GAAG,CAAC,mCAAI,CAAC,CAAC;IACpD,CAAC;IAED,KAAK;;QACH,MAAA,mCAAgB,CAAC,UAAU,0CAAE,KAAK,EAAE,CAAC;IACvC,CAAC;IAED,GAAG,CAAC,GAAW;;QACb,OAAO,MAAA,MAAA,mCAAgB,CAAC,UAAU,0CAAE,GAAG,CAAC,GAAG,CAAC,mCAAI,KAAK,CAAC;IACxD,CAAC;CACF,CAAC"}
@@ -0,0 +1,6 @@
1
+ export * from "./cache";
2
+ export * from "./logger";
3
+ export * from "./railsApplication";
4
+ export * from "./railsRoute";
5
+ export * from "./swagger";
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../configs/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC"}