@esgettext/tools 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 (102) hide show
  1. package/LICENSE +19 -0
  2. package/README.md +126 -0
  3. package/bin/esgettext-install.js +5 -0
  4. package/bin/esgettext-mo2json.js +5 -0
  5. package/bin/esgettext-msgfmt-all.js +5 -0
  6. package/bin/esgettext-msgmerge-all.js +5 -0
  7. package/bin/esgettext-xgettext.js +5 -0
  8. package/dist/cli/getopt.d.ts +34 -0
  9. package/dist/cli/getopt.js +150 -0
  10. package/dist/cli/getopt.js.map +1 -0
  11. package/dist/cli/getopt.spec.d.ts +1 -0
  12. package/dist/cli/getopt.spec.js +164 -0
  13. package/dist/cli/getopt.spec.js.map +1 -0
  14. package/dist/cli/install.d.ts +1 -0
  15. package/dist/cli/install.js +91 -0
  16. package/dist/cli/install.js.map +1 -0
  17. package/dist/cli/mo2json-cli.d.ts +1 -0
  18. package/dist/cli/mo2json-cli.js +48 -0
  19. package/dist/cli/mo2json-cli.js.map +1 -0
  20. package/dist/cli/msgfmt-all.d.ts +1 -0
  21. package/dist/cli/msgfmt-all.js +99 -0
  22. package/dist/cli/msgfmt-all.js.map +1 -0
  23. package/dist/cli/msgmerge-all.d.ts +1 -0
  24. package/dist/cli/msgmerge-all.js +85 -0
  25. package/dist/cli/msgmerge-all.js.map +1 -0
  26. package/dist/cli/xgettext-cli.d.ts +1 -0
  27. package/dist/cli/xgettext-cli.js +303 -0
  28. package/dist/cli/xgettext-cli.js.map +1 -0
  29. package/dist/install/install.d.ts +10 -0
  30. package/dist/install/install.js +157 -0
  31. package/dist/install/install.js.map +1 -0
  32. package/dist/msgfmt-all/msgfmt-all.d.ts +8 -0
  33. package/dist/msgfmt-all/msgfmt-all.js +142 -0
  34. package/dist/msgfmt-all/msgfmt-all.js.map +1 -0
  35. package/dist/msgmerge-all/msgmerge-all.d.ts +9 -0
  36. package/dist/msgmerge-all/msgmerge-all.js +157 -0
  37. package/dist/msgmerge-all/msgmerge-all.js.map +1 -0
  38. package/dist/package.d.ts +4 -0
  39. package/dist/package.js +17 -0
  40. package/dist/package.js.map +1 -0
  41. package/dist/parser/__snapshots__/javascript.spec.js.snap +56 -0
  42. package/dist/parser/__snapshots__/po.spec.js.snap +176 -0
  43. package/dist/parser/javascript.d.ts +4 -0
  44. package/dist/parser/javascript.js +47 -0
  45. package/dist/parser/javascript.js.map +1 -0
  46. package/dist/parser/javascript.spec.d.ts +1 -0
  47. package/dist/parser/javascript.spec.js +436 -0
  48. package/dist/parser/javascript.spec.js.map +1 -0
  49. package/dist/parser/parser.d.ts +45 -0
  50. package/dist/parser/parser.js +582 -0
  51. package/dist/parser/parser.js.map +1 -0
  52. package/dist/parser/po.d.ts +22 -0
  53. package/dist/parser/po.js +394 -0
  54. package/dist/parser/po.js.map +1 -0
  55. package/dist/parser/po.spec.d.ts +1 -0
  56. package/dist/parser/po.spec.js +296 -0
  57. package/dist/parser/po.spec.js.map +1 -0
  58. package/dist/parser/typescript.d.ts +4 -0
  59. package/dist/parser/typescript.js +47 -0
  60. package/dist/parser/typescript.js.map +1 -0
  61. package/dist/parser/typescript.spec.d.ts +1 -0
  62. package/dist/parser/typescript.spec.js +106 -0
  63. package/dist/parser/typescript.spec.js.map +1 -0
  64. package/dist/pot/__snapshots__/catalog.spec.js.snap +591 -0
  65. package/dist/pot/catalog.d.ts +26 -0
  66. package/dist/pot/catalog.js +210 -0
  67. package/dist/pot/catalog.js.map +1 -0
  68. package/dist/pot/catalog.spec.d.ts +1 -0
  69. package/dist/pot/catalog.spec.js +240 -0
  70. package/dist/pot/catalog.spec.js.map +1 -0
  71. package/dist/pot/entry.d.ts +35 -0
  72. package/dist/pot/entry.js +322 -0
  73. package/dist/pot/entry.js.map +1 -0
  74. package/dist/pot/entry.spec.d.ts +1 -0
  75. package/dist/pot/entry.spec.js +317 -0
  76. package/dist/pot/entry.spec.js.map +1 -0
  77. package/dist/pot/keyword.d.ts +17 -0
  78. package/dist/pot/keyword.js +181 -0
  79. package/dist/pot/keyword.js.map +1 -0
  80. package/dist/pot/keyword.spec.d.ts +1 -0
  81. package/dist/pot/keyword.spec.js +54 -0
  82. package/dist/pot/keyword.spec.js.map +1 -0
  83. package/dist/xgettext/__snapshots__/xgettext.spec.js.snap +462 -0
  84. package/dist/xgettext/file-resolver.d.ts +5 -0
  85. package/dist/xgettext/file-resolver.js +23 -0
  86. package/dist/xgettext/file-resolver.js.map +1 -0
  87. package/dist/xgettext/file-resolver.spec.d.ts +1 -0
  88. package/dist/xgettext/file-resolver.spec.js +22 -0
  89. package/dist/xgettext/file-resolver.spec.js.map +1 -0
  90. package/dist/xgettext/files-collector.d.ts +5 -0
  91. package/dist/xgettext/files-collector.js +41 -0
  92. package/dist/xgettext/files-collector.js.map +1 -0
  93. package/dist/xgettext/files-collector.spec.d.ts +1 -0
  94. package/dist/xgettext/files-collector.spec.js +78 -0
  95. package/dist/xgettext/files-collector.spec.js.map +1 -0
  96. package/dist/xgettext/xgettext.d.ts +16 -0
  97. package/dist/xgettext/xgettext.js +335 -0
  98. package/dist/xgettext/xgettext.js.map +1 -0
  99. package/dist/xgettext/xgettext.spec.d.ts +1 -0
  100. package/dist/xgettext/xgettext.spec.js +743 -0
  101. package/dist/xgettext/xgettext.spec.js.map +1 -0
  102. package/package.json +88 -0
package/LICENSE ADDED
@@ -0,0 +1,19 @@
1
+ This software is Copyright (C) 2020 by Guido Flohr.
2
+
3
+ This is free software, licensed under:
4
+
5
+ DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE, Version 2, December 2004
6
+
7
+ DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
8
+ Version 2, December 2004
9
+
10
+ Copyright (C) 2004 Sam Hocevar <sam@hocevar.net>
11
+
12
+ Everyone is permitted to copy and distribute verbatim or modified
13
+ copies of this license document, and changing it is allowed as long
14
+ as the name is changed.
15
+
16
+ DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
17
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
18
+
19
+ 0. You just DO WHAT THE FUCK YOU WANT TO.
package/README.md ADDED
@@ -0,0 +1,126 @@
1
+ # @esgettext/tools <!-- omit in toc -->
2
+
3
+ Supporting tools for https://github.com/gflohr/esgettext.
4
+
5
+ ## Table of Contents <!-- omit in toc -->
6
+
7
+ - [Status](#status)
8
+ - [Prerequisites](#prerequisites)
9
+ - [Un*x/Linux](#unxlinux)
10
+ - [Mac OS X](#mac-os-x)
11
+ - [MacPorts](#macports)
12
+ - [HomeBrew](#homebrew)
13
+ - [MS-DOS (Microsoft Windows)](#ms-dos-microsoft-windows)
14
+ - [Installation](#installation)
15
+ - [The Tools](#the-tools)
16
+ - [`esgettext-gettextize`](#esgettext-gettextize)
17
+ - [`esgettext-xgettext`](#esgettext-xgettext)
18
+ - [Copyright](#copyright)
19
+
20
+ ## Status
21
+
22
+ in development.
23
+
24
+ ## Prerequisites
25
+
26
+ Most of the esgettext tools depend at least indirectly on the GNU gettext
27
+ tools. If the command `xgettext --version` outputs some kind of version
28
+ information, you are most probably set. Otherwise check the information for
29
+ your platform below.
30
+
31
+ ### Un*x/Linux
32
+
33
+ Use the package manager of your vendor to search for something like
34
+ "gettext-tools" or just "gettext" and install it. The gettext tools are
35
+ available for every Unix or Linux flavor.
36
+
37
+ ### Mac OS X
38
+
39
+ You either need [MacPorts](https://www.macports.org/)
40
+ or [HomeBrew](https://brew.sh/).
41
+
42
+ #### MacPorts
43
+
44
+ ```shell
45
+ $ sudo port install gettext
46
+ ```
47
+
48
+ #### HomeBrew
49
+
50
+ ```shell
51
+ $ brew install gettext
52
+ ```
53
+
54
+ ### MS-DOS (Microsoft Windows)
55
+
56
+ The options that I know of are
57
+
58
+ * [Cygwin](https://www.cygwin.com/)
59
+ * [MinGW](http://www.mingw.org/)
60
+
61
+ See their documentation for more information.
62
+
63
+ If you have better information, please
64
+ [file an issue](https://github.com/gflohr/esgettext/issues) or improve the
65
+ documentation with a [pull request](https://github.com/gflohr/esgettext).
66
+
67
+ ## Installation
68
+
69
+ You don't have to install the esgettext tools globally but if you are lazy,
70
+ just do it. For [npm](https://www.npmjs.com/) you go with:
71
+
72
+ ```shell
73
+ $ sudo npm install --global @esgettext/tools
74
+ ```
75
+
76
+ For [Yarn](https://yarnpkg.com/), you would do this:
77
+
78
+ ```
79
+ $ sudo yarn global add @esgettext/tools
80
+ ```
81
+
82
+ But you should rather install [npx](https://www.npmjs.com/package/npx), because
83
+ then you can (es)gettextize your project like this:
84
+
85
+ ```
86
+ $ npm install --save-dev @esgettext/tools
87
+ $ npx @esgettext/gettextize
88
+ ```
89
+
90
+ or for yarn:
91
+
92
+ ```
93
+ $ yarn add --dev @esgettext/tools
94
+ $ npx @esgettext/gettextize
95
+ ```
96
+
97
+ This will modify your `package.json` with a couple of scripts, all named
98
+ `po:.*`. You can then finetune your setup by just editing `package.json`.
99
+
100
+ ## The Tools
101
+
102
+ ### `esgettext-gettextize`
103
+
104
+ The script `esgettext-gettextize` sets up your project for being
105
+ internationalized with esgettext.
106
+
107
+ See the detailed
108
+ [esgettext-gettextize usage information](./README-esgettext-gettextize.md)
109
+ for more details.
110
+
111
+ ### `esgettext-xgettext`
112
+
113
+ The script `esgetext-xgettext` extracts translatable strings from your source
114
+ files into `.po` resp. `.pot` files.
115
+
116
+ See the detailed
117
+ [esgettext-xgettext usage information](./README-esgettext-xgettext.md)
118
+ for more details.
119
+
120
+ ## Copyright
121
+
122
+ Copyright (C) 2020 Guido Flohr <guido.flohr@cantanea.com>, all
123
+ rights reserved.
124
+
125
+ This software is available under the terms and conditions of the
126
+ [WFTPL](http://www.wtfpl.net/about).
@@ -0,0 +1,5 @@
1
+ #! /usr/bin/env node
2
+
3
+ const path = require('path');
4
+
5
+ require(path.resolve(__dirname, '../dist/cli/install'));
@@ -0,0 +1,5 @@
1
+ #! /usr/bin/env node
2
+
3
+ const path = require('path');
4
+
5
+ require(path.resolve(__dirname, '../dist/cli/mo2json-cli'));
@@ -0,0 +1,5 @@
1
+ #! /usr/bin/env node
2
+
3
+ const path = require('path');
4
+
5
+ require(path.resolve(__dirname, '../dist/cli/msgfmt-all'));
@@ -0,0 +1,5 @@
1
+ #! /usr/bin/env node
2
+
3
+ const path = require('path');
4
+
5
+ require(path.resolve(__dirname, '../dist/cli/msgmerge-all'));
@@ -0,0 +1,5 @@
1
+ #! /usr/bin/env node
2
+
3
+ const path = require('path');
4
+
5
+ require(path.resolve(__dirname, '../dist/cli/xgettext-cli'));
@@ -0,0 +1,34 @@
1
+ import yargs from 'yargs';
2
+ export interface Options {
3
+ [key: string]: any;
4
+ }
5
+ export interface OptionFlags {
6
+ multiple?: boolean;
7
+ }
8
+ export interface Option {
9
+ name: string;
10
+ flags?: OptionFlags;
11
+ yargsOptions: yargs.Options;
12
+ }
13
+ export interface OptionGroup {
14
+ description: string;
15
+ options: Array<Option>;
16
+ }
17
+ export interface GetoptOptions {
18
+ hasVerboseOption?: boolean;
19
+ }
20
+ export declare class Getopt {
21
+ readonly programName: string;
22
+ private cli;
23
+ private readonly allowedKeys;
24
+ private readonly defaultFlags;
25
+ private readonly hasVerboseOption;
26
+ constructor(usage: string, description: string, optionGroups: OptionGroup[], options?: GetoptOptions);
27
+ argv(args?: {
28
+ [x: string]: unknown;
29
+ _: string[];
30
+ $0: string;
31
+ }): Options;
32
+ private buildUsage;
33
+ private addDefaultOptions;
34
+ }
@@ -0,0 +1,150 @@
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
+ exports.Getopt = void 0;
7
+ var yargs_1 = __importDefault(require("yargs"));
8
+ var camelcase_1 = __importDefault(require("camelcase"));
9
+ var runtime_1 = require("@esgettext/runtime");
10
+ var package_1 = require("../package");
11
+ var gtx = runtime_1.Textdomain.getInstance('tools');
12
+ var Getopt = (function () {
13
+ function Getopt(usage, description, optionGroups, options) {
14
+ var _this = this;
15
+ this.cli = yargs_1.default;
16
+ this.allowedKeys = new Map();
17
+ this.defaultFlags = {};
18
+ this.programName = process.argv[1].split(/[\\/]/).pop();
19
+ this.buildUsage(usage, description);
20
+ if (!options) {
21
+ options = {};
22
+ }
23
+ this.hasVerboseOption = options.hasVerboseOption || false;
24
+ this.allowedKeys.set('help', this.defaultFlags);
25
+ this.allowedKeys.set('h', this.defaultFlags);
26
+ this.allowedKeys.set('version', this.defaultFlags);
27
+ this.allowedKeys.set('V', this.defaultFlags);
28
+ this.allowedKeys.set('_', this.defaultFlags);
29
+ this.allowedKeys.set('$0', this.defaultFlags);
30
+ if (this.hasVerboseOption) {
31
+ this.allowedKeys.set('verbose', this.defaultFlags);
32
+ this.allowedKeys.set('v', this.defaultFlags);
33
+ }
34
+ for (var i = 0; i < optionGroups.length; ++i) {
35
+ var group = optionGroups[i];
36
+ var options_1 = group.options;
37
+ var optionKeys = options_1.map(function (option) { return option.name; });
38
+ var _loop_1 = function (j) {
39
+ var option = options_1[j];
40
+ var flags = option.flags || this_1.defaultFlags;
41
+ this_1.allowedKeys.set(option.name, flags);
42
+ this_1.allowedKeys.set((0, camelcase_1.default)(option.name), flags);
43
+ var alias = typeof option.yargsOptions.alias === 'string'
44
+ ? [option.yargsOptions.alias]
45
+ : option.yargsOptions.alias;
46
+ if (alias) {
47
+ alias.map(function (a) { return _this.allowedKeys.set(a, flags); });
48
+ }
49
+ };
50
+ var this_1 = this;
51
+ for (var j = 0; j < options_1.length; ++j) {
52
+ _loop_1(j);
53
+ }
54
+ this.cli = this.cli.group(optionKeys, group.description);
55
+ for (var j = 0; j < options_1.length; ++j) {
56
+ this.cli = this.cli.option(options_1[j].name, options_1[j].yargsOptions);
57
+ }
58
+ }
59
+ this.addDefaultOptions();
60
+ }
61
+ Getopt.prototype.argv = function (args) {
62
+ if (typeof args === 'undefined') {
63
+ args = this.cli.argv;
64
+ }
65
+ var keys = Object.keys(args);
66
+ if (keys.includes('help')) {
67
+ this.cli.showHelp('log');
68
+ }
69
+ for (var i = 0; i < keys.length; ++i) {
70
+ var key = keys[i];
71
+ if (key === '_') {
72
+ continue;
73
+ }
74
+ if (!this.allowedKeys.has(key)) {
75
+ if (key.length > 1) {
76
+ throw new Error(gtx._x("'{programName}': unrecognized option '--{option}'", {
77
+ programName: this.programName,
78
+ option: key,
79
+ }));
80
+ }
81
+ else {
82
+ throw new Error(gtx._x("'{programName}': invalid option -- '{option}'", {
83
+ programName: this.programName,
84
+ option: key,
85
+ }));
86
+ }
87
+ }
88
+ var flags = this.allowedKeys.get(key);
89
+ var value = args[key];
90
+ if (Array.isArray(value)) {
91
+ if (value.length > 1 && !flags.multiple) {
92
+ throw new Error(gtx._x("The option '{option}' can be given only once.", {
93
+ option: key,
94
+ }));
95
+ }
96
+ }
97
+ else if (flags.multiple) {
98
+ args[key] = [value];
99
+ }
100
+ }
101
+ return args;
102
+ };
103
+ Getopt.prototype.buildUsage = function (usage, description) {
104
+ this.cli = this.cli.usage(gtx._x('Usage: {programName}', { programName: this.programName }) +
105
+ ' ' +
106
+ usage +
107
+ '\n' +
108
+ '\n' +
109
+ description +
110
+ '\n' +
111
+ '\n' +
112
+ gtx._('Mandatory arguments to long options are mandatory for short options too.\n') +
113
+ gtx._('Similarly for optional arguments.\n') +
114
+ '\n' +
115
+ gtx._('Arguments to options are referred to in CAPS in the description.'));
116
+ };
117
+ Getopt.prototype.addDefaultOptions = function () {
118
+ var infoOptions = this.hasVerboseOption
119
+ ? ['version', 'help', 'verbose']
120
+ : ['version', 'help'];
121
+ var version = package_1.Package.getVersion();
122
+ var packageName = package_1.Package.getName();
123
+ var versionString = "".concat(this.programName, " (").concat(packageName, ") ").concat(version, "\n") +
124
+ gtx._('LICENSE: WTFPL <http://www.wtfpl.net/about/>\n') +
125
+ gtx._('This is free software. You can do with it whatever you want.\n') +
126
+ gtx._('There is NO WARRANTY, to the extent permitted by law.\n') +
127
+ gtx._('Written by Guido Flohr.');
128
+ this.cli = this.cli.group(infoOptions, gtx._('Informative output'));
129
+ this.cli = this.cli
130
+ .option('help', {
131
+ alias: 'h',
132
+ description: gtx._('display this help and exit'),
133
+ })
134
+ .option('version', {
135
+ alias: 'v',
136
+ description: gtx._('output version information and exit'),
137
+ })
138
+ .version(versionString);
139
+ if (this.hasVerboseOption) {
140
+ this.cli = this.cli.options('verbose', {
141
+ alias: 'V',
142
+ description: gtx._('enable verbose output'),
143
+ });
144
+ }
145
+ this.cli = this.cli.epilogue(gtx._('Report bugs at https://github.com/gflohr/esgettext/issues'));
146
+ };
147
+ return Getopt;
148
+ }());
149
+ exports.Getopt = Getopt;
150
+ //# sourceMappingURL=getopt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getopt.js","sourceRoot":"","sources":["../../src/cli/getopt.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,164 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var getopt_1 = require("./getopt");
4
+ function getArgv() {
5
+ return {
6
+ _: new Array(),
7
+ $0: 'ignore',
8
+ };
9
+ }
10
+ var logSpy = jest.spyOn(global.console, 'log').mockImplementation(function () {
11
+ });
12
+ var warnSpy = jest.spyOn(global.console, 'warn').mockImplementation(function () {
13
+ });
14
+ var errorSpy = jest.spyOn(global.console, 'warn').mockImplementation(function () {
15
+ });
16
+ describe('getting command line options', function () {
17
+ var optionGroups;
18
+ var getopt;
19
+ describe('bare minimum', function () {
20
+ beforeAll(function () {
21
+ optionGroups = [];
22
+ getopt = new getopt_1.Getopt('usage', 'description', optionGroups);
23
+ });
24
+ afterEach(function () {
25
+ jest.clearAllMocks();
26
+ });
27
+ it('to accept option --help', function () {
28
+ var args = getArgv();
29
+ args['help'] = true;
30
+ expect(getopt.argv(args)).toBeDefined();
31
+ expect(logSpy).toHaveBeenCalledTimes(1);
32
+ expect(warnSpy).not.toHaveBeenCalled();
33
+ expect(errorSpy).not.toHaveBeenCalled();
34
+ });
35
+ it('to accept option --version', function () {
36
+ var args = getArgv();
37
+ args['version'] = true;
38
+ expect(getopt.argv(args)).toBeDefined();
39
+ expect(warnSpy).not.toHaveBeenCalled();
40
+ expect(errorSpy).not.toHaveBeenCalled();
41
+ });
42
+ });
43
+ describe('simple option', function () {
44
+ beforeAll(function () {
45
+ optionGroups = [
46
+ {
47
+ description: 'File locations',
48
+ options: [
49
+ {
50
+ name: 'input',
51
+ yargsOptions: {
52
+ alias: 'i',
53
+ type: 'string',
54
+ describe: 'location of the input file',
55
+ demandOption: '--input is required',
56
+ },
57
+ },
58
+ {
59
+ name: 'add-comments',
60
+ flags: { multiple: true },
61
+ yargsOptions: {
62
+ type: 'string',
63
+ describe: 'add comments',
64
+ },
65
+ },
66
+ ],
67
+ },
68
+ ];
69
+ getopt = new getopt_1.Getopt('usage', 'description', optionGroups);
70
+ });
71
+ afterEach(function () {
72
+ jest.clearAllMocks();
73
+ });
74
+ it('succeed with option --input', function () {
75
+ var args = getArgv();
76
+ args.input = 'something';
77
+ expect(getopt.argv(args)).toBeDefined();
78
+ expect(warnSpy).not.toHaveBeenCalled();
79
+ expect(errorSpy).not.toHaveBeenCalled();
80
+ });
81
+ it('succeed with option -i', function () {
82
+ var args = getArgv();
83
+ args.input = 'something';
84
+ expect(getopt.argv(args)).toBeDefined();
85
+ expect(warnSpy).not.toHaveBeenCalled();
86
+ expect(errorSpy).not.toHaveBeenCalled();
87
+ });
88
+ it('fail with multiple options --input', function () {
89
+ var args = getArgv();
90
+ args.input = ['something', 'else'];
91
+ expect(function () { return getopt.argv(args); }).toThrow();
92
+ expect(warnSpy).not.toHaveBeenCalled();
93
+ expect(errorSpy).not.toHaveBeenCalled();
94
+ });
95
+ it('succeed with option --add-comments', function () {
96
+ var args = getArgv();
97
+ args.addComments = 'something';
98
+ expect(getopt.argv(args)).toBeDefined();
99
+ expect(warnSpy).not.toHaveBeenCalled();
100
+ expect(errorSpy).not.toHaveBeenCalled();
101
+ });
102
+ it('fail with option -a', function () {
103
+ var args = getArgv();
104
+ args.a = 'something';
105
+ expect(function () { return getopt.argv(args); }).toThrow();
106
+ expect(warnSpy).not.toHaveBeenCalled();
107
+ expect(errorSpy).not.toHaveBeenCalled();
108
+ });
109
+ it('succeed with multiple options --add-commentts', function () {
110
+ var args = getArgv();
111
+ args.addComments = ['something', 'else'];
112
+ expect(getopt.argv(args)).toBeDefined();
113
+ expect(warnSpy).not.toHaveBeenCalled();
114
+ expect(errorSpy).not.toHaveBeenCalled();
115
+ });
116
+ it('to fail for unknown long options', function () {
117
+ var args = getArgv();
118
+ args['foobar'] = true;
119
+ expect(function () { return getopt.argv(args); }).toThrow();
120
+ expect(warnSpy).not.toHaveBeenCalled();
121
+ expect(errorSpy).not.toHaveBeenCalled();
122
+ });
123
+ it('to fail for unknown short options', function () {
124
+ var args = getArgv();
125
+ args['%'] = true;
126
+ expect(function () { return getopt.argv(args); }).toThrow();
127
+ expect(warnSpy).not.toHaveBeenCalled();
128
+ expect(errorSpy).not.toHaveBeenCalled();
129
+ });
130
+ });
131
+ describe('variants', function () {
132
+ afterEach(function () {
133
+ jest.clearAllMocks();
134
+ });
135
+ it('should add an option --verbose', function () {
136
+ var args = getArgv();
137
+ args['help'] = true;
138
+ var getoptLocal = new getopt_1.Getopt('local usage', 'local description', optionGroups, {
139
+ hasVerboseOption: true,
140
+ });
141
+ expect(getoptLocal.argv(args)).toBeDefined();
142
+ expect(logSpy).toHaveBeenCalledTimes(1);
143
+ var calls = logSpy.mock.calls;
144
+ expect(calls[0][0]).toMatch(new RegExp('--verbose'));
145
+ expect(warnSpy).not.toHaveBeenCalled();
146
+ expect(errorSpy).not.toHaveBeenCalled();
147
+ });
148
+ it.skip('should fall back to command-line arguments', function () {
149
+ var savedArgv = process.argv;
150
+ process.argv = ['/usr/local/bin/node', '/some/script/name', '--help'];
151
+ var getoptLocal = new getopt_1.Getopt('local usage', 'local description', optionGroups, {
152
+ hasVerboseOption: true,
153
+ });
154
+ expect(getoptLocal.argv()).toBeDefined();
155
+ process.argv = savedArgv;
156
+ expect(logSpy).toHaveBeenCalledTimes(1);
157
+ var calls = logSpy.mock.calls;
158
+ expect(calls[0][0]).toMatch(new RegExp('--verbose'));
159
+ expect(warnSpy).not.toHaveBeenCalled();
160
+ expect(errorSpy).not.toHaveBeenCalled();
161
+ });
162
+ });
163
+ });
164
+ //# sourceMappingURL=getopt.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getopt.spec.js","sourceRoot":"","sources":["../../src/cli/getopt.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var runtime_1 = require("@esgettext/runtime");
4
+ var install_1 = require("../install/install");
5
+ var getopt_1 = require("./getopt");
6
+ var gtx = runtime_1.Textdomain.getInstance('tools');
7
+ gtx.resolve().then(function () {
8
+ var optionGroups = [
9
+ {
10
+ description: gtx._('Input file options:'),
11
+ options: [
12
+ {
13
+ name: 'package-json',
14
+ yargsOptions: {
15
+ type: 'string',
16
+ describe: gtx._("read package information from PACKAGE_JSON (or 'package.json' without an argument)"),
17
+ }
18
+ },
19
+ {
20
+ name: 'locale',
21
+ flags: {
22
+ multiple: true,
23
+ },
24
+ yargsOptions: {
25
+ alias: 'l',
26
+ type: 'array',
27
+ describe: gtx._("list of locales"),
28
+ },
29
+ },
30
+ {
31
+ name: 'directory',
32
+ yargsOptions: {
33
+ alias: 'D',
34
+ type: 'string',
35
+ describe: gtx._("search '.gmo' files in DIRECTORY"),
36
+ },
37
+ },
38
+ {
39
+ name: 'input-format',
40
+ yargsOptions: {
41
+ type: 'string',
42
+ default: 'gmo',
43
+ describe: gtx._("input file type format"),
44
+ },
45
+ },
46
+ ],
47
+ },
48
+ {
49
+ description: gtx._('Output file options:'),
50
+ options: [
51
+ {
52
+ name: 'output-directory',
53
+ yargsOptions: {
54
+ type: 'string',
55
+ default: 'assets/locale',
56
+ describe: gtx._("output directory"),
57
+ },
58
+ },
59
+ {
60
+ name: 'output-format',
61
+ yargsOptions: {
62
+ type: 'string',
63
+ default: 'json',
64
+ describe: gtx._("output file type format"),
65
+ },
66
+ },
67
+ ],
68
+ },
69
+ ];
70
+ var usage = gtx._('[OPTIONS] ref.pot');
71
+ var description = gtx._("Install translation catalogs.");
72
+ var getopt = new getopt_1.Getopt(usage, description, optionGroups, {
73
+ hasVerboseOption: true,
74
+ });
75
+ var install;
76
+ try {
77
+ install = new install_1.Install(getopt.argv());
78
+ }
79
+ catch (error) {
80
+ console.warn(gtx._x('{programName}: {error}', {
81
+ error: error,
82
+ programName: getopt.programName,
83
+ }));
84
+ console.error(gtx._x('Try "{programName} --help" for more information!', {
85
+ programName: getopt.programName,
86
+ }));
87
+ process.exit(2);
88
+ }
89
+ install.run().then(function (exitCode) { return process.exit(exitCode); });
90
+ });
91
+ //# sourceMappingURL=install.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/cli/install.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};