@quenty/nevermore-cli 2.0.0-canary.367.903617a.0 → 2.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 (55) hide show
  1. package/CHANGELOG.md +40 -1
  2. package/dist/commands/init-game-command.d.ts +0 -1
  3. package/dist/commands/init-game-command.d.ts.map +1 -1
  4. package/dist/commands/init-game-command.js +5 -25
  5. package/dist/commands/init-game-command.js.map +1 -1
  6. package/dist/commands/init-package-command.d.ts +2 -1
  7. package/dist/commands/init-package-command.d.ts.map +1 -1
  8. package/dist/commands/init-package-command.js +14 -7
  9. package/dist/commands/init-package-command.js.map +1 -1
  10. package/dist/commands/pack-command.d.ts +18 -0
  11. package/dist/commands/pack-command.d.ts.map +1 -0
  12. package/dist/commands/pack-command.js +77 -0
  13. package/dist/commands/pack-command.js.map +1 -0
  14. package/dist/nevermore.js +2 -0
  15. package/dist/nevermore.js.map +1 -1
  16. package/dist/utils/nevermore-cli-utils.d.ts +10 -0
  17. package/dist/utils/nevermore-cli-utils.d.ts.map +1 -0
  18. package/dist/utils/nevermore-cli-utils.js +72 -0
  19. package/dist/utils/nevermore-cli-utils.js.map +1 -0
  20. package/package.json +4 -4
  21. package/src/commands/init-game-command.ts +12 -56
  22. package/src/commands/init-package-command.ts +25 -19
  23. package/src/commands/pack-command.ts +64 -0
  24. package/src/nevermore.ts +2 -0
  25. package/src/utils/nevermore-cli-utils.ts +44 -0
  26. package/templates/game-template/.github/workflows/build.yml +1 -1
  27. package/templates/game-template/aftman.toml +1 -1
  28. package/templates/game-template/default.project.json +1 -1
  29. package/templates/game-template/src/modules/Client/Binders/ENSURE_FOLDER_CREATED +0 -0
  30. package/templates/game-template/src/modules/Client/{{gameNameProper}}ServiceClient.lua +0 -1
  31. package/templates/game-template/src/modules/Server/Binders/ENSURE_FOLDER_CREATED +0 -0
  32. package/templates/game-template/src/modules/Server/{{gameNameProper}}Service.lua +1 -1
  33. package/templates/nevermore-library-package-template/src/Client/ENSURE_FOLDER_CREATED +0 -0
  34. package/templates/nevermore-library-package-template/src/Server/ENSURE_FOLDER_CREATED +0 -0
  35. package/templates/nevermore-library-package-template/test/default.project.json +11 -0
  36. package/templates/nevermore-service-package-template/README.md +23 -0
  37. package/templates/nevermore-service-package-template/default.project.json +6 -0
  38. package/templates/nevermore-service-package-template/package.json +33 -0
  39. package/templates/nevermore-service-package-template/src/Client/{{packageNameProper}}ServiceClient.lua +17 -0
  40. package/templates/nevermore-service-package-template/src/Server/{{packageNameProper}}Service.lua +17 -0
  41. package/templates/nevermore-service-package-template/src/Shared/ENSURE_FOLDER_CREATED +0 -0
  42. package/templates/nevermore-service-package-template/src/node_modules.project.json +7 -0
  43. package/templates/nevermore-service-package-template/test/default.project.json +21 -0
  44. package/templates/nevermore-service-package-template/test/scripts/Client/ClientMain.client.lua +11 -0
  45. package/templates/nevermore-service-package-template/test/scripts/Server/ServerMain.server.lua +14 -0
  46. package/templates/pack-template/README.md +3 -0
  47. package/templates/pack-template/default.project.json +6 -0
  48. package/templates/pack-template/src/init.lua +17 -0
  49. package/templates/pack-template/src/src.project.json +7 -0
  50. package/templates/pack-template/test/README.md +3 -0
  51. package/templates/pack-template/test/default.project.json +6 -0
  52. package/tsconfig.tsbuildinfo +1 -1
  53. package/templates/game-template/src/modules/Client/{{gameNameProper}}BindersClient.lua +0 -12
  54. package/templates/game-template/src/modules/Server/{{gameNameProper}}BindersServer.lua +0 -12
  55. /package/templates/game-template/src/modules/{Client → Shared}/{{gameNameProper}}Translator.lua +0 -0
package/CHANGELOG.md CHANGED
@@ -3,7 +3,46 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
- # [2.0.0-canary.367.903617a.0](https://github.com/Quenty/Nevermore/compare/@quenty/nevermore-cli@1.7.0...@quenty/nevermore-cli@2.0.0-canary.367.903617a.0) (2023-06-09)
6
+ # [2.0.0](https://github.com/Quenty/Nevermore/compare/@quenty/nevermore-cli@1.9.0...@quenty/nevermore-cli@2.0.0) (2023-10-11)
7
+
8
+
9
+ ### Features
10
+
11
+ * JSONTranslator can exist on server and generate translation keys (improved ergonomics) ([84b84b5](https://github.com/Quenty/Nevermore/commit/84b84b5587b9cfebad9b9bbda7694ba714188d9c))
12
+
13
+
14
+
15
+
16
+
17
+ # [1.9.0](https://github.com/Quenty/Nevermore/compare/@quenty/nevermore-cli@1.8.1...@quenty/nevermore-cli@1.9.0) (2023-08-23)
18
+
19
+
20
+ ### Bug Fixes
21
+
22
+ * Fix package template ([4b1be5b](https://github.com/Quenty/Nevermore/commit/4b1be5b18267c22b6e01401d4555dd5413f0bf91))
23
+ * Update game-template with latest data and ideas ([922ef09](https://github.com/Quenty/Nevermore/commit/922ef0979359beaee1c4cc8085f4e1a209bf793d))
24
+
25
+
26
+ ### Features
27
+
28
+ * Add initial pack command (not finished yet) ([73ac451](https://github.com/Quenty/Nevermore/commit/73ac4519fb9221d95c43e2737f5eb5a3b51b563c))
29
+
30
+
31
+
32
+
33
+
34
+ ## [1.8.1](https://github.com/Quenty/Nevermore/compare/@quenty/nevermore-cli@1.8.0...@quenty/nevermore-cli@1.8.1) (2023-07-23)
35
+
36
+
37
+ ### Bug Fixes
38
+
39
+ * Escape generated workflow ([#396](https://github.com/Quenty/Nevermore/issues/396)) ([2539ae7](https://github.com/Quenty/Nevermore/commit/2539ae767c5c6b87468a065f142c01006f9444eb))
40
+
41
+
42
+
43
+
44
+
45
+ # [1.8.0](https://github.com/Quenty/Nevermore/compare/@quenty/nevermore-cli@1.7.0...@quenty/nevermore-cli@1.8.0) (2023-06-17)
7
46
 
8
47
  **Note:** Version bump only for package @quenty/nevermore-cli
9
48
 
@@ -14,7 +14,6 @@ export declare class InitGameCommand<T> implements CommandModule<T, InitGameArgs
14
14
  describe: string;
15
15
  builder(args: Argv<T>): Argv<InitGameArgs>;
16
16
  handler(args: InitGameArgs): Promise<void>;
17
- private static _runCommandAsync;
18
17
  private static _ensureGameName;
19
18
  private static _validateGameName;
20
19
  }
@@ -1 +1 @@
1
- {"version":3,"file":"init-game-command.d.ts","sourceRoot":"","sources":["../../src/commands/init-game-command.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAI5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAG1D,MAAM,WAAW,YAAa,SAAQ,mBAAmB;IACvD,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,qBAAa,eAAe,CAAC,CAAC,CAAE,YAAW,aAAa,CAAC,CAAC,EAAE,YAAY,CAAC;IAChE,OAAO,SAAsB;IAC7B,QAAQ,SACiE;IAEzE,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IASf,OAAO,CAAC,IAAI,EAAE,YAAY;mBA8DlB,gBAAgB;mBA+BhB,eAAe;IAYpC,OAAO,CAAC,MAAM,CAAC,iBAAiB;CASjC"}
1
+ {"version":3,"file":"init-game-command.d.ts","sourceRoot":"","sources":["../../src/commands/init-game-command.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAI5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAM1D,MAAM,WAAW,YAAa,SAAQ,mBAAmB;IACvD,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,qBAAa,eAAe,CAAC,CAAC,CAAE,YAAW,aAAa,CAAC,CAAC,EAAE,YAAY,CAAC;IAChE,OAAO,SAAsB;IAC7B,QAAQ,SACsB;IAE9B,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IASf,OAAO,CAAC,IAAI,EAAE,YAAY;mBA8ClB,eAAe;IAYpC,OAAO,CAAC,MAAM,CAAC,iBAAiB;CASjC"}
@@ -39,14 +39,14 @@ exports.InitGameCommand = void 0;
39
39
  const path = __importStar(require("path"));
40
40
  const cli_output_helpers_1 = require("@quenty/cli-output-helpers");
41
41
  const nevermore_template_helpers_1 = require("@quenty/nevermore-template-helpers");
42
- const execa = require("execa");
42
+ const nevermore_cli_utils_1 = require("../utils/nevermore-cli-utils");
43
43
  /**
44
44
  * Creates a new game with Nevermore dependencies
45
45
  */
46
46
  class InitGameCommand {
47
47
  constructor() {
48
48
  this.command = 'init [game-name]';
49
- this.describe = 'Initializes a new game to use Nevermore with Cmdr and a few other packages.';
49
+ this.describe = 'Initializes a new game template.';
50
50
  }
51
51
  builder(args) {
52
52
  args.positional('game-name', {
@@ -62,7 +62,7 @@ class InitGameCommand {
62
62
  const gameName = nevermore_template_helpers_1.TemplateHelper.camelize(rawGameName).toLowerCase();
63
63
  const gameNameProper = nevermore_template_helpers_1.TemplateHelper.camelize(rawGameName);
64
64
  const srcRoot = process.cwd();
65
- const templatePath = path.join(__dirname, '..', '..', 'templates', 'game-template');
65
+ const templatePath = (0, nevermore_cli_utils_1.getTemplatePathByName)('game-template');
66
66
  cli_output_helpers_1.OutputHelper.info(`Creating a new game at '${srcRoot}' with template '${templatePath}'`);
67
67
  yield nevermore_template_helpers_1.TemplateHelper.createDirectoryContentsAsync(templatePath, srcRoot, {
68
68
  gameName: gameName,
@@ -75,11 +75,11 @@ class InitGameCommand {
75
75
  '@quenty/clienttranslator',
76
76
  '@quenty/cmdrservice',
77
77
  ];
78
- yield InitGameCommand._runCommandAsync(args, 'npm', ['install', ...packages], {
78
+ yield (0, nevermore_cli_utils_1.runCommandAsync)(args, 'npm', ['install', ...packages], {
79
79
  cwd: srcRoot,
80
80
  });
81
81
  try {
82
- yield InitGameCommand._runCommandAsync(args, 'selene', ['generate-roblox-std'], {
82
+ yield (0, nevermore_cli_utils_1.runCommandAsync)(args, 'selene', ['generate-roblox-std'], {
83
83
  cwd: srcRoot,
84
84
  });
85
85
  }
@@ -88,26 +88,6 @@ class InitGameCommand {
88
88
  }
89
89
  });
90
90
  }
91
- static _runCommandAsync(initGameArgs, command, args, options) {
92
- return __awaiter(this, void 0, void 0, function* () {
93
- if (initGameArgs.dryrun) {
94
- cli_output_helpers_1.OutputHelper.info(`[DRYRUN]: Would have ran \`${command} ${args.join(' ')}\``);
95
- }
96
- else {
97
- cli_output_helpers_1.OutputHelper.info(`Running \`${command} ${args.join(' ')}\``);
98
- const commandExec = execa(command, args, options);
99
- if (commandExec.stdout) {
100
- commandExec.stdout.pipe(process.stdout);
101
- }
102
- if (commandExec.stderr) {
103
- commandExec.stderr.pipe(process.stderr);
104
- }
105
- const result = yield commandExec;
106
- cli_output_helpers_1.OutputHelper.info(`Finished running '${result.command}'`);
107
- return result;
108
- }
109
- });
110
- }
111
91
  static _ensureGameName(args) {
112
92
  return __awaiter(this, void 0, void 0, function* () {
113
93
  let { gameName } = args;
@@ -1 +1 @@
1
- {"version":3,"file":"init-game-command.js","sourceRoot":"","sources":["../../src/commands/init-game-command.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGH,2CAA6B;AAC7B,mEAA0D;AAC1D,mFAAoE;AAEpE,+BAAgC;AAMhC;;GAEG;AACH,MAAa,eAAe;IAA5B;QACS,YAAO,GAAG,kBAAkB,CAAC;QAC7B,aAAQ,GACb,6EAA6E,CAAC;IA6HlF,CAAC;IA3HQ,OAAO,CAAC,IAAa;QAC1B,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE;YAC3B,QAAQ,EAAE,iCAAiC;YAC3C,YAAY,EAAE,KAAK;YACnB,IAAI,EAAE,QAAQ;SACf,CAAC,CAAC;QACH,OAAO,IAA0B,CAAC;IACpC,CAAC;IAEY,OAAO,CAAC,IAAkB;;YACrC,MAAM,WAAW,GAAG,MAAM,eAAe,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAEhE,MAAM,QAAQ,GAAG,2CAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC;YACpE,MAAM,cAAc,GAAG,2CAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YAE5D,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;YAC9B,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAC5B,SAAS,EACT,IAAI,EACJ,IAAI,EACJ,WAAW,EACX,eAAe,CAChB,CAAC;YAEF,iCAAY,CAAC,IAAI,CACf,2BAA2B,OAAO,oBAAoB,YAAY,GAAG,CACtE,CAAC;YAEF,MAAM,2CAAc,CAAC,4BAA4B,CAC/C,YAAY,EACZ,OAAO,EACP;gBACE,QAAQ,EAAE,QAAQ;gBAClB,cAAc,EAAE,cAAc;aAC/B,EACD,IAAI,CAAC,MAAM,CACZ,CAAC;YAEF,MAAM,QAAQ,GAAG;gBACf,gBAAgB;gBAChB,oBAAoB;gBACpB,gBAAgB;gBAChB,0BAA0B;gBAC1B,qBAAqB;aACtB,CAAC;YAEF,MAAM,eAAe,CAAC,gBAAgB,CACpC,IAAI,EACJ,KAAK,EACL,CAAC,SAAS,EAAE,GAAG,QAAQ,CAAC,EACxB;gBACE,GAAG,EAAE,OAAO;aACb,CACF,CAAC;YAEF,IAAI;gBACF,MAAM,eAAe,CAAC,gBAAgB,CACpC,IAAI,EACJ,QAAQ,EACR,CAAC,qBAAqB,CAAC,EACvB;oBACE,GAAG,EAAE,OAAO;iBACb,CACF,CAAC;aACH;YAAC,WAAM;gBACN,iCAAY,CAAC,IAAI,CACf,kEAAkE,CACnE,CAAC;aACH;QACH,CAAC;KAAA;IAEO,MAAM,CAAO,gBAAgB,CACnC,YAA0B,EAC1B,OAAe,EACf,IAAc,EACd,OAAqC;;YAErC,IAAI,YAAY,CAAC,MAAM,EAAE;gBACvB,iCAAY,CAAC,IAAI,CACf,8BAA8B,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAC5D,CAAC;aACH;iBAAM;gBACL,iCAAY,CAAC,IAAI,CAAC,aAAa,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAE9D,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;gBAElD,IAAI,WAAW,CAAC,MAAM,EAAE;oBACtB,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;iBACzC;gBAED,IAAI,WAAW,CAAC,MAAM,EAAE;oBACtB,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;iBACzC;gBAED,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC;gBAEjC,iCAAY,CAAC,IAAI,CAAC,qBAAqB,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC;gBAE1D,OAAO,MAAM,CAAC;aACf;QACH,CAAC;KAAA;IAEO,MAAM,CAAO,eAAe,CAAC,IAAkB;;YACrD,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;YAExB,IAAI,CAAC,QAAQ,EAAE;gBACb,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;aACzC;YAED,eAAe,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YAE5C,OAAO,QAAQ,CAAC;QAClB,CAAC;KAAA;IAEO,MAAM,CAAC,iBAAiB,CAAC,IAAY;QAC3C,IAAI,CAAC,IAAI,EAAE;YACT,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;SAClD;QAED,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;YACrB,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;SAC7D;IACH,CAAC;CACF;AAhID,0CAgIC"}
1
+ {"version":3,"file":"init-game-command.js","sourceRoot":"","sources":["../../src/commands/init-game-command.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGH,2CAA6B;AAC7B,mEAA0D;AAC1D,mFAAoE;AAEpE,sEAGsC;AAMtC;;GAEG;AACH,MAAa,eAAe;IAA5B;QACS,YAAO,GAAG,kBAAkB,CAAC;QAC7B,aAAQ,GACb,kCAAkC,CAAC;IA8EvC,CAAC;IA5EQ,OAAO,CAAC,IAAa;QAC1B,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE;YAC3B,QAAQ,EAAE,iCAAiC;YAC3C,YAAY,EAAE,KAAK;YACnB,IAAI,EAAE,QAAQ;SACf,CAAC,CAAC;QACH,OAAO,IAA0B,CAAC;IACpC,CAAC;IAEY,OAAO,CAAC,IAAkB;;YACrC,MAAM,WAAW,GAAG,MAAM,eAAe,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAEhE,MAAM,QAAQ,GAAG,2CAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC;YACpE,MAAM,cAAc,GAAG,2CAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YAE5D,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;YAC9B,MAAM,YAAY,GAAG,IAAA,2CAAqB,EAAC,eAAe,CAAC,CAAC;YAE5D,iCAAY,CAAC,IAAI,CACf,2BAA2B,OAAO,oBAAoB,YAAY,GAAG,CACtE,CAAC;YAEF,MAAM,2CAAc,CAAC,4BAA4B,CAC/C,YAAY,EACZ,OAAO,EACP;gBACE,QAAQ,EAAE,QAAQ;gBAClB,cAAc,EAAE,cAAc;aAC/B,EACD,IAAI,CAAC,MAAM,CACZ,CAAC;YAEF,MAAM,QAAQ,GAAG;gBACf,gBAAgB;gBAChB,oBAAoB;gBACpB,gBAAgB;gBAChB,0BAA0B;gBAC1B,qBAAqB;aACtB,CAAC;YAEF,MAAM,IAAA,qCAAe,EAAC,IAAI,EAAE,KAAK,EAAE,CAAC,SAAS,EAAE,GAAG,QAAQ,CAAC,EAAE;gBAC3D,GAAG,EAAE,OAAO;aACb,CAAC,CAAC;YAEH,IAAI;gBACF,MAAM,IAAA,qCAAe,EAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,qBAAqB,CAAC,EAAE;oBAC7D,GAAG,EAAE,OAAO;iBACb,CAAC,CAAC;aACJ;YAAC,WAAM;gBACN,iCAAY,CAAC,IAAI,CACf,kEAAkE,CACnE,CAAC;aACH;QACH,CAAC;KAAA;IAEO,MAAM,CAAO,eAAe,CAAC,IAAkB;;YACrD,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;YAExB,IAAI,CAAC,QAAQ,EAAE;gBACb,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;aACzC;YAED,eAAe,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YAE5C,OAAO,QAAQ,CAAC;QAClB,CAAC;KAAA;IAEO,MAAM,CAAC,iBAAiB,CAAC,IAAY;QAC3C,IAAI,CAAC,IAAI,EAAE;YACT,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;SAClD;QAED,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;YACrB,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;SAC7D;IACH,CAAC;CACF;AAjFD,0CAiFC"}
@@ -6,6 +6,7 @@ import { NevermoreGlobalArgs } from '../args/global-args';
6
6
  export interface InitPackageArgs extends NevermoreGlobalArgs {
7
7
  packageName: string;
8
8
  description: string;
9
+ packageTemplate: 'library' | 'service';
9
10
  }
10
11
  /**
11
12
  * Creates a new package within Nevermore
@@ -13,7 +14,7 @@ export interface InitPackageArgs extends NevermoreGlobalArgs {
13
14
  export declare class InitPackageCommand<T> implements CommandModule<T, InitPackageArgs> {
14
15
  command: string;
15
16
  describe: string;
16
- builder(args: Argv<T>): Argv<InitPackageArgs>;
17
+ builder(args: Argv<T>): any;
17
18
  handler(args: InitPackageArgs): Promise<void>;
18
19
  private static _ensurePackageName;
19
20
  private static validatePackageName;
@@ -1 +1 @@
1
- {"version":3,"file":"init-package-command.d.ts","sourceRoot":"","sources":["../../src/commands/init-package-command.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAI5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1D,MAAM,WAAW,eAAgB,SAAQ,mBAAmB;IAC1D,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,qBAAa,kBAAkB,CAAC,CAAC,CAC/B,YAAW,aAAa,CAAC,CAAC,EAAE,eAAe,CAAC;IAErC,OAAO,SAA+C;IACtD,QAAQ,SAAiD;IAEzD,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAcf,OAAO,CAAC,IAAI,EAAE,eAAe;mBAgCrB,kBAAkB;IAcvC,OAAO,CAAC,MAAM,CAAC,mBAAmB;mBAUb,kBAAkB;IAUvC,OAAO,CAAC,MAAM,CAAC,mBAAmB;CASnC"}
1
+ {"version":3,"file":"init-package-command.d.ts","sourceRoot":"","sources":["../../src/commands/init-package-command.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAI5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAG1D,MAAM,WAAW,eAAgB,SAAQ,mBAAmB;IAC1D,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,SAAS,GAAG,SAAS,CAAC;CACxC;AAED;;GAEG;AACH,qBAAa,kBAAkB,CAAC,CAAC,CAC/B,YAAW,aAAa,CAAC,CAAC,EAAE,eAAe,CAAC;IAErC,OAAO,SACmD;IAC1D,QAAQ,SAAiD;IAEzD,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAqBf,OAAO,CAAC,IAAI,EAAE,eAAe;mBA4BrB,kBAAkB;IAcvC,OAAO,CAAC,MAAM,CAAC,mBAAmB;mBAUb,kBAAkB;IAUvC,OAAO,CAAC,MAAM,CAAC,mBAAmB;CASnC"}
@@ -39,35 +39,42 @@ exports.InitPackageCommand = void 0;
39
39
  const path = __importStar(require("path"));
40
40
  const cli_output_helpers_1 = require("@quenty/cli-output-helpers");
41
41
  const nevermore_template_helpers_1 = require("@quenty/nevermore-template-helpers");
42
+ const nevermore_cli_utils_1 = require("../utils/nevermore-cli-utils");
42
43
  /**
43
44
  * Creates a new package within Nevermore
44
45
  */
45
46
  class InitPackageCommand {
46
47
  constructor() {
47
- this.command = 'init-package [package-name] [description]';
48
+ this.command = 'init-package [package-name] [description] [package-template]';
48
49
  this.describe = 'Initializes a new package within Nevermore.';
49
50
  }
50
51
  builder(args) {
51
- args.positional('package-name', {
52
+ let result = args
53
+ .positional('package-name', {
52
54
  describe: 'Name of the new package folder.',
53
55
  demandOption: true,
54
56
  type: 'string',
55
- });
56
- args.positional('description', {
57
+ })
58
+ .positional('description', {
57
59
  describe: 'The description of the package.',
58
60
  demandOption: true,
59
61
  type: 'string',
62
+ })
63
+ .positional('package-template', {
64
+ describe: 'The template type to use.',
65
+ default: 'library',
66
+ choices: ['library', 'service'],
60
67
  });
61
- return args;
68
+ return result;
62
69
  }
63
70
  handler(args) {
64
71
  return __awaiter(this, void 0, void 0, function* () {
65
- const rawPackageName = yield InitPackageCommand._ensurePackageName(args);
72
+ let rawPackageName = yield InitPackageCommand._ensurePackageName(args);
66
73
  const packageName = nevermore_template_helpers_1.TemplateHelper.camelize(rawPackageName).toLowerCase();
67
74
  const packageNameProper = nevermore_template_helpers_1.TemplateHelper.camelize(rawPackageName);
68
75
  const description = yield InitPackageCommand._ensureDescription(args);
69
76
  const srcRoot = process.cwd();
70
- const templatePath = path.join(__dirname, '..', '..', 'templates', 'nevermore-library-package-template');
77
+ const templatePath = (0, nevermore_cli_utils_1.getTemplatePathByName)(`nevermore-${args.packageTemplate}-package-template`);
71
78
  cli_output_helpers_1.OutputHelper.info(`Initializing a new package at '${srcRoot}' with template '${templatePath}'`);
72
79
  yield nevermore_template_helpers_1.TemplateHelper.createDirectoryContentsAsync(templatePath, srcRoot, {
73
80
  packageName: packageName,
@@ -1 +1 @@
1
- {"version":3,"file":"init-package-command.js","sourceRoot":"","sources":["../../src/commands/init-package-command.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGH,2CAA6B;AAC7B,mEAA0D;AAC1D,mFAAoE;AAQpE;;GAEG;AACH,MAAa,kBAAkB;IAA/B;QAGS,YAAO,GAAG,2CAA2C,CAAC;QACtD,aAAQ,GAAG,6CAA6C,CAAC;IA2FlE,CAAC;IAzFQ,OAAO,CAAC,IAAa;QAC1B,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE;YAC9B,QAAQ,EAAE,iCAAiC;YAC3C,YAAY,EAAE,IAAI;YAClB,IAAI,EAAE,QAAQ;SACf,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE;YAC7B,QAAQ,EAAE,iCAAiC;YAC3C,YAAY,EAAE,IAAI;YAClB,IAAI,EAAE,QAAQ;SACf,CAAC,CAAC;QACH,OAAO,IAA6B,CAAC;IACvC,CAAC;IAEY,OAAO,CAAC,IAAqB;;YACxC,MAAM,cAAc,GAAG,MAAM,kBAAkB,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;YAEzE,MAAM,WAAW,GAAG,2CAAc,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,WAAW,EAAE,CAAC;YAC1E,MAAM,iBAAiB,GAAG,2CAAc,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;YAClE,MAAM,WAAW,GAAG,MAAM,kBAAkB,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;YAEtE,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;YAC9B,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAC5B,SAAS,EACT,IAAI,EACJ,IAAI,EACJ,WAAW,EACX,oCAAoC,CACrC,CAAC;YAEF,iCAAY,CAAC,IAAI,CACf,kCAAkC,OAAO,oBAAoB,YAAY,GAAG,CAC7E,CAAC;YAEF,MAAM,2CAAc,CAAC,4BAA4B,CAC/C,YAAY,EACZ,OAAO,EACP;gBACE,WAAW,EAAE,WAAW;gBACxB,iBAAiB,EAAE,iBAAiB;gBACpC,WAAW,EAAE,WAAW;aACzB,EACD,IAAI,CAAC,MAAM,CACZ,CAAC;QACJ,CAAC;KAAA;IAEO,MAAM,CAAO,kBAAkB,CACrC,IAAqB;;YAErB,IAAI,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;YAE3B,IAAI,CAAC,WAAW,EAAE;gBAChB,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;aAC5C;YAED,kBAAkB,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;YAEpD,OAAO,WAAW,CAAC;QACrB,CAAC;KAAA;IAEO,MAAM,CAAC,mBAAmB,CAAC,IAAY;QAC7C,IAAI,CAAC,IAAI,EAAE;YACT,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;SAClD;QAED,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;YACrB,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;SAC7D;IACH,CAAC;IAEO,MAAM,CAAO,kBAAkB,CACrC,IAAqB;;YAErB,IAAI,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;YAE3B,kBAAkB,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;YAEpD,OAAO,WAAW,CAAC;QACrB,CAAC;KAAA;IAEO,MAAM,CAAC,mBAAmB,CAAC,WAAmB;QACpD,IAAI,CAAC,WAAW,EAAE;YAChB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;SACjD;QAED,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;YAC5B,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;SAC5D;IACH,CAAC;CACF;AA/FD,gDA+FC"}
1
+ {"version":3,"file":"init-package-command.js","sourceRoot":"","sources":["../../src/commands/init-package-command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Initialize a new game command
3
+ */
4
+ import { Argv, CommandModule } from 'yargs';
5
+ import { NevermoreGlobalArgs } from '../args/global-args';
6
+ export interface PackArgs extends NevermoreGlobalArgs {
7
+ packageDirectory: string;
8
+ }
9
+ /**
10
+ * Creates a new game with Nevermore dependencies
11
+ */
12
+ export declare class PackCommand<T> implements CommandModule<T, PackArgs> {
13
+ command: string;
14
+ describe: string;
15
+ builder(args: Argv<T>): Argv<PackArgs>;
16
+ handler(args: PackArgs): Promise<void>;
17
+ }
18
+ //# sourceMappingURL=pack-command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pack-command.d.ts","sourceRoot":"","sources":["../../src/commands/pack-command.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAG5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAM1D,MAAM,WAAW,QAAS,SAAQ,mBAAmB;IACnD,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,qBAAa,WAAW,CAAC,CAAC,CAAE,YAAW,aAAa,CAAC,CAAC,EAAE,QAAQ,CAAC;IACxD,OAAO,SAAU;IACjB,QAAQ,SACsD;IAE9D,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAUf,OAAO,CAAC,IAAI,EAAE,QAAQ;CA4BpC"}
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ /**
3
+ * Initialize a new game command
4
+ */
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
18
+ }) : function(o, v) {
19
+ o["default"] = v;
20
+ });
21
+ var __importStar = (this && this.__importStar) || function (mod) {
22
+ if (mod && mod.__esModule) return mod;
23
+ var result = {};
24
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
25
+ __setModuleDefault(result, mod);
26
+ return result;
27
+ };
28
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
29
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
30
+ return new (P || (P = Promise))(function (resolve, reject) {
31
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
32
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
33
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
34
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
35
+ });
36
+ };
37
+ Object.defineProperty(exports, "__esModule", { value: true });
38
+ exports.PackCommand = void 0;
39
+ const path = __importStar(require("path"));
40
+ const nevermore_template_helpers_1 = require("@quenty/nevermore-template-helpers");
41
+ const nevermore_cli_utils_1 = require("../utils/nevermore-cli-utils");
42
+ /**
43
+ * Creates a new game with Nevermore dependencies
44
+ */
45
+ class PackCommand {
46
+ constructor() {
47
+ this.command = 'pack';
48
+ this.describe = 'Packs the package into a reusable rbxm file for upload to Roblox';
49
+ }
50
+ builder(args) {
51
+ args.positional('packageDirectory', {
52
+ describe: 'The directory for the package to pack. Defaults to the current directory if not specified.',
53
+ demandOption: false,
54
+ type: 'string',
55
+ });
56
+ return args;
57
+ }
58
+ handler(args) {
59
+ return __awaiter(this, void 0, void 0, function* () {
60
+ const packageDirectory = args.packageDirectory || process.cwd();
61
+ const templatePath = (0, nevermore_cli_utils_1.getTemplatePathByName)('pack-template');
62
+ const packageName = path.basename(packageDirectory);
63
+ const outputDirectory = path.join(packageDirectory, 'pack');
64
+ yield nevermore_template_helpers_1.TemplateHelper.ensureFolderAsync(outputDirectory, args.dryrun);
65
+ yield nevermore_template_helpers_1.TemplateHelper.createDirectoryContentsAsync(templatePath, outputDirectory, {
66
+ packageName: packageName,
67
+ exactPackageName: 'exactPackageName',
68
+ commit: 'commit',
69
+ }, args.dryrun);
70
+ yield (0, nevermore_cli_utils_1.runCommandAsync)(args, 'rojo', ['build', outputDirectory, '--output', `pack.rbxm`], {
71
+ cwd: packageDirectory,
72
+ });
73
+ });
74
+ }
75
+ }
76
+ exports.PackCommand = PackCommand;
77
+ //# sourceMappingURL=pack-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pack-command.js","sourceRoot":"","sources":["../../src/commands/pack-command.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGH,2CAA6B;AAC7B,mFAAoE;AAEpE,sEAGsC;AAMtC;;GAEG;AACH,MAAa,WAAW;IAAxB;QACS,YAAO,GAAG,MAAM,CAAC;QACjB,aAAQ,GACb,kEAAkE,CAAC;IAwCvE,CAAC;IAtCQ,OAAO,CAAC,IAAa;QAC1B,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE;YAClC,QAAQ,EACN,4FAA4F;YAC9F,YAAY,EAAE,KAAK;YACnB,IAAI,EAAE,QAAQ;SACf,CAAC,CAAC;QACH,OAAO,IAAsB,CAAC;IAChC,CAAC;IAEY,OAAO,CAAC,IAAc;;YACjC,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;YAChE,MAAM,YAAY,GAAG,IAAA,2CAAqB,EAAC,eAAe,CAAC,CAAC;YAC5D,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;YAEpD,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;YAE5D,MAAM,2CAAc,CAAC,iBAAiB,CAAC,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YACrE,MAAM,2CAAc,CAAC,4BAA4B,CAC/C,YAAY,EACZ,eAAe,EACf;gBACE,WAAW,EAAE,WAAW;gBACxB,gBAAgB,EAAE,kBAAkB;gBACpC,MAAM,EAAE,QAAQ;aACjB,EACD,IAAI,CAAC,MAAM,CACZ,CAAC;YAEF,MAAM,IAAA,qCAAe,EACnB,IAAI,EACJ,MAAM,EACN,CAAC,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,WAAW,CAAC,EACnD;gBACE,GAAG,EAAE,gBAAgB;aACtB,CACF,CAAC;QACJ,CAAC;KAAA;CACF;AA3CD,kCA2CC"}
package/dist/nevermore.js CHANGED
@@ -12,6 +12,7 @@ const helpers_1 = require("yargs/helpers");
12
12
  const cli_output_helpers_1 = require("@quenty/cli-output-helpers");
13
13
  const init_game_command_1 = require("./commands/init-game-command");
14
14
  const init_package_command_1 = require("./commands/init-package-command");
15
+ const pack_command_1 = require("./commands/pack-command");
15
16
  (0, yargs_1.default)((0, helpers_1.hideBin)(process.argv))
16
17
  .scriptName('nevermore')
17
18
  .version()
@@ -30,6 +31,7 @@ const init_package_command_1 = require("./commands/init-package-command");
30
31
  .usage(cli_output_helpers_1.OutputHelper.formatInfo('Usage: $0 <command> [options]'))
31
32
  .command(new init_game_command_1.InitGameCommand())
32
33
  .command(new init_package_command_1.InitPackageCommand())
34
+ .command(new pack_command_1.PackCommand())
33
35
  .recommendCommands()
34
36
  .demandCommand(1, cli_output_helpers_1.OutputHelper.formatHint("Hint: See 'raven help' for more help"))
35
37
  .wrap(null)
@@ -1 +1 @@
1
- {"version":3,"file":"nevermore.js","sourceRoot":"","sources":["../src/nevermore.ts"],"names":[],"mappings":";;AAEA;;GAEG;;;;;AAEH,kDAA0B;AAC1B,2CAAwC;AACxC,mEAA0D;AAE1D,oEAA+D;AAC/D,0EAAqE;AAErE,IAAA,eAAK,EAAC,IAAA,iBAAO,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC;KACzB,UAAU,CAAC,WAAW,CAAC;KACvB,OAAO,EAAE;KACT,MAAM,CAAC,KAAK,EAAE;IACb,WAAW,EAAE,wDAAwD;IACrE,OAAO,EAAE,KAAK;IACd,MAAM,EAAE,IAAI;IACZ,IAAI,EAAE,SAAS;CAChB,CAAC;KACD,MAAM,CAAC,QAAQ,EAAE;IAChB,WAAW,EACT,mEAAmE;IACrE,OAAO,EAAE,KAAK;IACd,MAAM,EAAE,IAAI;IACZ,IAAI,EAAE,SAAS;CAChB,CAAC;KACD,KAAK,CAAC,iCAAY,CAAC,UAAU,CAAC,+BAA+B,CAAC,CAAC;KAC/D,OAAO,CAAC,IAAI,mCAAe,EAAS,CAAC;KACrC,OAAO,CAAC,IAAI,yCAAkB,EAAS,CAAC;KACxC,iBAAiB,EAAE;KACnB,aAAa,CACZ,CAAC,EACD,iCAAY,CAAC,UAAU,CAAC,sCAAsC,CAAC,CAChE;KACA,IAAI,CAAC,IAAI,CAAC;KACV,MAAM,EAAE,CAAC,IAAI,CAAC"}
1
+ {"version":3,"file":"nevermore.js","sourceRoot":"","sources":["../src/nevermore.ts"],"names":[],"mappings":";;AAEA;;GAEG;;;;;AAEH,kDAA0B;AAC1B,2CAAwC;AACxC,mEAA0D;AAE1D,oEAA+D;AAC/D,0EAAqE;AACrE,0DAAsD;AAEtD,IAAA,eAAK,EAAC,IAAA,iBAAO,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC;KACzB,UAAU,CAAC,WAAW,CAAC;KACvB,OAAO,EAAE;KACT,MAAM,CAAC,KAAK,EAAE;IACb,WAAW,EAAE,wDAAwD;IACrE,OAAO,EAAE,KAAK;IACd,MAAM,EAAE,IAAI;IACZ,IAAI,EAAE,SAAS;CAChB,CAAC;KACD,MAAM,CAAC,QAAQ,EAAE;IAChB,WAAW,EACT,mEAAmE;IACrE,OAAO,EAAE,KAAK;IACd,MAAM,EAAE,IAAI;IACZ,IAAI,EAAE,SAAS;CAChB,CAAC;KACD,KAAK,CAAC,iCAAY,CAAC,UAAU,CAAC,+BAA+B,CAAC,CAAC;KAC/D,OAAO,CAAC,IAAI,mCAAe,EAAS,CAAC;KACrC,OAAO,CAAC,IAAI,yCAAkB,EAAS,CAAC;KACxC,OAAO,CAAC,IAAI,0BAAW,EAAS,CAAC;KACjC,iBAAiB,EAAE;KACnB,aAAa,CACZ,CAAC,EACD,iCAAY,CAAC,UAAU,CAAC,sCAAsC,CAAC,CAChE;KACA,IAAI,CAAC,IAAI,CAAC;KACV,MAAM,EAAE,CAAC,IAAI,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { NevermoreGlobalArgs } from '../args/global-args';
2
+ import execa from 'execa';
3
+ /**
4
+ * Gets a temlate path by name
5
+ * @param name
6
+ * @returns
7
+ */
8
+ export declare function getTemplatePathByName(name: string): string;
9
+ export declare function runCommandAsync(initGameArgs: NevermoreGlobalArgs, command: string, args: string[], options?: execa.CommonOptions<string>): Promise<any>;
10
+ //# sourceMappingURL=nevermore-cli-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nevermore-cli-utils.d.ts","sourceRoot":"","sources":["../../src/utils/nevermore-cli-utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,UAEjD;AAED,wBAAsB,eAAe,CACnC,YAAY,EAAE,mBAAmB,EACjC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,GACpC,OAAO,CAAC,GAAG,CAAC,CAwBd"}
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
+ return new (P || (P = Promise))(function (resolve, reject) {
28
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32
+ });
33
+ };
34
+ var __importDefault = (this && this.__importDefault) || function (mod) {
35
+ return (mod && mod.__esModule) ? mod : { "default": mod };
36
+ };
37
+ Object.defineProperty(exports, "__esModule", { value: true });
38
+ exports.runCommandAsync = exports.getTemplatePathByName = void 0;
39
+ const path = __importStar(require("path"));
40
+ const cli_output_helpers_1 = require("@quenty/cli-output-helpers");
41
+ const execa_1 = __importDefault(require("execa"));
42
+ /**
43
+ * Gets a temlate path by name
44
+ * @param name
45
+ * @returns
46
+ */
47
+ function getTemplatePathByName(name) {
48
+ return path.join(__dirname, '..', '..', 'templates', name);
49
+ }
50
+ exports.getTemplatePathByName = getTemplatePathByName;
51
+ function runCommandAsync(initGameArgs, command, args, options) {
52
+ return __awaiter(this, void 0, void 0, function* () {
53
+ if (initGameArgs.dryrun) {
54
+ cli_output_helpers_1.OutputHelper.info(`[DRYRUN]: Would have ran \`${command} ${args.join(' ')}\``);
55
+ }
56
+ else {
57
+ cli_output_helpers_1.OutputHelper.info(`Running \`${command} ${args.join(' ')}\``);
58
+ const commandExec = (0, execa_1.default)(command, args, options);
59
+ if (commandExec.stdout) {
60
+ commandExec.stdout.pipe(process.stdout);
61
+ }
62
+ if (commandExec.stderr) {
63
+ commandExec.stderr.pipe(process.stderr);
64
+ }
65
+ const result = yield commandExec;
66
+ cli_output_helpers_1.OutputHelper.info(`Finished running '${result.command}'`);
67
+ return result;
68
+ }
69
+ });
70
+ }
71
+ exports.runCommandAsync = runCommandAsync;
72
+ //# sourceMappingURL=nevermore-cli-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nevermore-cli-utils.js","sourceRoot":"","sources":["../../src/utils/nevermore-cli-utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA6B;AAC7B,mEAA0D;AAE1D,kDAA0B;AAE1B;;;;GAIG;AACH,SAAgB,qBAAqB,CAAC,IAAY;IAChD,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;AAC7D,CAAC;AAFD,sDAEC;AAED,SAAsB,eAAe,CACnC,YAAiC,EACjC,OAAe,EACf,IAAc,EACd,OAAqC;;QAErC,IAAI,YAAY,CAAC,MAAM,EAAE;YACvB,iCAAY,CAAC,IAAI,CACf,8BAA8B,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAC5D,CAAC;SACH;aAAM;YACL,iCAAY,CAAC,IAAI,CAAC,aAAa,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAE9D,MAAM,WAAW,GAAG,IAAA,eAAK,EAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;YAElD,IAAI,WAAW,CAAC,MAAM,EAAE;gBACtB,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;aACzC;YAED,IAAI,WAAW,CAAC,MAAM,EAAE;gBACtB,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;aACzC;YAED,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC;YAEjC,iCAAY,CAAC,IAAI,CAAC,qBAAqB,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC;YAE1D,OAAO,MAAM,CAAC;SACf;IACH,CAAC;CAAA;AA7BD,0CA6BC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quenty/nevermore-cli",
3
- "version": "2.0.0-canary.367.903617a.0",
3
+ "version": "2.0.0",
4
4
  "description": "CLI interface for Nevermore",
5
5
  "keywords": [
6
6
  "Roblox",
@@ -24,8 +24,8 @@
24
24
  "Quenty"
25
25
  ],
26
26
  "dependencies": {
27
- "@quenty/cli-output-helpers": "1.2.0",
28
- "@quenty/nevermore-template-helpers": "1.2.1",
27
+ "@quenty/cli-output-helpers": "^1.2.0",
28
+ "@quenty/nevermore-template-helpers": "^1.2.1",
29
29
  "execa": "v5.1.1",
30
30
  "find-git-root": "^1.0.4",
31
31
  "inquirer": "^8.2.4",
@@ -51,5 +51,5 @@
51
51
  "engines": {
52
52
  "node": ">=16"
53
53
  },
54
- "gitHead": "903617ace784bce6cc7e0a15093ee50566bd9b54"
54
+ "gitHead": "fdeae46099587019ec5fc15317dc673aed379400"
55
55
  }
@@ -7,7 +7,10 @@ import * as path from 'path';
7
7
  import { OutputHelper } from '@quenty/cli-output-helpers';
8
8
  import { TemplateHelper } from '@quenty/nevermore-template-helpers';
9
9
  import { NevermoreGlobalArgs } from '../args/global-args';
10
- import execa = require('execa');
10
+ import {
11
+ getTemplatePathByName,
12
+ runCommandAsync,
13
+ } from '../utils/nevermore-cli-utils';
11
14
 
12
15
  export interface InitGameArgs extends NevermoreGlobalArgs {
13
16
  gameName: string;
@@ -19,7 +22,7 @@ export interface InitGameArgs extends NevermoreGlobalArgs {
19
22
  export class InitGameCommand<T> implements CommandModule<T, InitGameArgs> {
20
23
  public command = 'init [game-name]';
21
24
  public describe =
22
- 'Initializes a new game to use Nevermore with Cmdr and a few other packages.';
25
+ 'Initializes a new game template.';
23
26
 
24
27
  public builder(args: Argv<T>) {
25
28
  args.positional('game-name', {
@@ -37,13 +40,7 @@ export class InitGameCommand<T> implements CommandModule<T, InitGameArgs> {
37
40
  const gameNameProper = TemplateHelper.camelize(rawGameName);
38
41
 
39
42
  const srcRoot = process.cwd();
40
- const templatePath = path.join(
41
- __dirname,
42
- '..',
43
- '..',
44
- 'templates',
45
- 'game-template'
46
- );
43
+ const templatePath = getTemplatePathByName('game-template');
47
44
 
48
45
  OutputHelper.info(
49
46
  `Creating a new game at '${srcRoot}' with template '${templatePath}'`
@@ -67,24 +64,14 @@ export class InitGameCommand<T> implements CommandModule<T, InitGameArgs> {
67
64
  '@quenty/cmdrservice',
68
65
  ];
69
66
 
70
- await InitGameCommand._runCommandAsync(
71
- args,
72
- 'npm',
73
- ['install', ...packages],
74
- {
75
- cwd: srcRoot,
76
- }
77
- );
67
+ await runCommandAsync(args, 'npm', ['install', ...packages], {
68
+ cwd: srcRoot,
69
+ });
78
70
 
79
71
  try {
80
- await InitGameCommand._runCommandAsync(
81
- args,
82
- 'selene',
83
- ['generate-roblox-std'],
84
- {
85
- cwd: srcRoot,
86
- }
87
- );
72
+ await runCommandAsync(args, 'selene', ['generate-roblox-std'], {
73
+ cwd: srcRoot,
74
+ });
88
75
  } catch {
89
76
  OutputHelper.info(
90
77
  'Failed to run `selene generate-roblox-std`, is selene installed?'
@@ -92,37 +79,6 @@ export class InitGameCommand<T> implements CommandModule<T, InitGameArgs> {
92
79
  }
93
80
  }
94
81
 
95
- private static async _runCommandAsync(
96
- initGameArgs: InitGameArgs,
97
- command: string,
98
- args: string[],
99
- options?: execa.CommonOptions<string>
100
- ): Promise<any> {
101
- if (initGameArgs.dryrun) {
102
- OutputHelper.info(
103
- `[DRYRUN]: Would have ran \`${command} ${args.join(' ')}\``
104
- );
105
- } else {
106
- OutputHelper.info(`Running \`${command} ${args.join(' ')}\``);
107
-
108
- const commandExec = execa(command, args, options);
109
-
110
- if (commandExec.stdout) {
111
- commandExec.stdout.pipe(process.stdout);
112
- }
113
-
114
- if (commandExec.stderr) {
115
- commandExec.stderr.pipe(process.stderr);
116
- }
117
-
118
- const result = await commandExec;
119
-
120
- OutputHelper.info(`Finished running '${result.command}'`);
121
-
122
- return result;
123
- }
124
- }
125
-
126
82
  private static async _ensureGameName(args: InitGameArgs): Promise<string> {
127
83
  let { gameName } = args;
128
84