@esgettext/tools 1.0.0 → 1.1.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 (125) hide show
  1. package/README.md +196 -21
  2. package/dist/command.d.ts +11 -0
  3. package/dist/command.js +3 -0
  4. package/dist/command.js.map +1 -0
  5. package/dist/commands/convert.d.ts +24 -0
  6. package/dist/commands/convert.js +284 -0
  7. package/dist/commands/convert.js.map +1 -0
  8. package/dist/commands/install.d.ts +22 -0
  9. package/dist/commands/install.js +249 -0
  10. package/dist/commands/install.js.map +1 -0
  11. package/dist/commands/msgfmt-all.d.ts +20 -0
  12. package/dist/commands/msgfmt-all.js +200 -0
  13. package/dist/commands/msgfmt-all.js.map +1 -0
  14. package/dist/commands/msgmerge-all.d.ts +21 -0
  15. package/dist/commands/msgmerge-all.js +212 -0
  16. package/dist/commands/msgmerge-all.js.map +1 -0
  17. package/dist/{xgettext → commands/xgettext}/file-resolver.d.ts +1 -1
  18. package/dist/commands/xgettext/file-resolver.js +21 -0
  19. package/dist/commands/xgettext/file-resolver.js.map +1 -0
  20. package/dist/commands/xgettext/file-resolver.spec.js +22 -0
  21. package/dist/commands/xgettext/file-resolver.spec.js.map +1 -0
  22. package/dist/commands/xgettext/files-collector.js +39 -0
  23. package/dist/commands/xgettext/files-collector.js.map +1 -0
  24. package/dist/{xgettext → commands/xgettext}/files-collector.spec.js +39 -21
  25. package/dist/commands/xgettext/files-collector.spec.js.map +1 -0
  26. package/dist/commands/xgettext.d.ts +29 -0
  27. package/dist/commands/xgettext.js +525 -0
  28. package/dist/commands/xgettext.js.map +1 -0
  29. package/dist/commands/xgettext.spec.js +897 -0
  30. package/dist/commands/xgettext.spec.js.map +1 -0
  31. package/dist/configuration.d.ts +36 -0
  32. package/dist/configuration.js +261 -0
  33. package/dist/configuration.js.map +1 -0
  34. package/dist/esgettext-package-json.d.ts +15 -0
  35. package/dist/esgettext-package-json.js +3 -0
  36. package/dist/esgettext-package-json.js.map +1 -0
  37. package/dist/index.d.ts +2 -0
  38. package/dist/index.js +84 -0
  39. package/dist/index.js.map +1 -0
  40. package/dist/package.d.ts +1 -0
  41. package/dist/package.js +10 -11
  42. package/dist/package.js.map +1 -1
  43. package/dist/parser/javascript.js +7 -27
  44. package/dist/parser/javascript.js.map +1 -1
  45. package/dist/parser/javascript.spec.js +271 -172
  46. package/dist/parser/javascript.spec.js.map +1 -1
  47. package/dist/parser/parser.js +159 -146
  48. package/dist/parser/parser.js.map +1 -1
  49. package/dist/parser/po.d.ts +1 -1
  50. package/dist/parser/po.js +111 -128
  51. package/dist/parser/po.js.map +1 -1
  52. package/dist/parser/po.spec.js +349 -159
  53. package/dist/parser/po.spec.js.map +1 -1
  54. package/dist/parser/typescript.js +8 -27
  55. package/dist/parser/typescript.js.map +1 -1
  56. package/dist/parser/typescript.spec.js +56 -41
  57. package/dist/parser/typescript.spec.js.map +1 -1
  58. package/dist/pot/catalog.js +98 -82
  59. package/dist/pot/catalog.js.map +1 -1
  60. package/dist/pot/catalog.spec.js +47 -43
  61. package/dist/pot/catalog.spec.js.map +1 -1
  62. package/dist/pot/entry.js +102 -114
  63. package/dist/pot/entry.js.map +1 -1
  64. package/dist/pot/entry.spec.js +255 -139
  65. package/dist/pot/entry.spec.js.map +1 -1
  66. package/dist/pot/keyword.js +57 -88
  67. package/dist/pot/keyword.js.map +1 -1
  68. package/dist/pot/keyword.spec.js +26 -26
  69. package/dist/pot/keyword.spec.js.map +1 -1
  70. package/package.json +36 -24
  71. package/bin/esgettext-install.js +0 -5
  72. package/bin/esgettext-mo2json.js +0 -5
  73. package/bin/esgettext-msgfmt-all.js +0 -5
  74. package/bin/esgettext-msgmerge-all.js +0 -5
  75. package/bin/esgettext-xgettext.js +0 -5
  76. package/dist/cli/getopt.d.ts +0 -34
  77. package/dist/cli/getopt.js +0 -150
  78. package/dist/cli/getopt.js.map +0 -1
  79. package/dist/cli/getopt.spec.d.ts +0 -1
  80. package/dist/cli/getopt.spec.js +0 -164
  81. package/dist/cli/getopt.spec.js.map +0 -1
  82. package/dist/cli/install.d.ts +0 -1
  83. package/dist/cli/install.js +0 -91
  84. package/dist/cli/install.js.map +0 -1
  85. package/dist/cli/mo2json-cli.d.ts +0 -1
  86. package/dist/cli/mo2json-cli.js +0 -48
  87. package/dist/cli/mo2json-cli.js.map +0 -1
  88. package/dist/cli/msgfmt-all.d.ts +0 -1
  89. package/dist/cli/msgfmt-all.js +0 -99
  90. package/dist/cli/msgfmt-all.js.map +0 -1
  91. package/dist/cli/msgmerge-all.d.ts +0 -1
  92. package/dist/cli/msgmerge-all.js +0 -85
  93. package/dist/cli/msgmerge-all.js.map +0 -1
  94. package/dist/cli/xgettext-cli.d.ts +0 -1
  95. package/dist/cli/xgettext-cli.js +0 -303
  96. package/dist/cli/xgettext-cli.js.map +0 -1
  97. package/dist/install/install.d.ts +0 -10
  98. package/dist/install/install.js +0 -157
  99. package/dist/install/install.js.map +0 -1
  100. package/dist/msgfmt-all/msgfmt-all.d.ts +0 -8
  101. package/dist/msgfmt-all/msgfmt-all.js +0 -142
  102. package/dist/msgfmt-all/msgfmt-all.js.map +0 -1
  103. package/dist/msgmerge-all/msgmerge-all.d.ts +0 -9
  104. package/dist/msgmerge-all/msgmerge-all.js +0 -157
  105. package/dist/msgmerge-all/msgmerge-all.js.map +0 -1
  106. package/dist/parser/__snapshots__/javascript.spec.js.snap +0 -56
  107. package/dist/parser/__snapshots__/po.spec.js.snap +0 -176
  108. package/dist/pot/__snapshots__/catalog.spec.js.snap +0 -591
  109. package/dist/xgettext/__snapshots__/xgettext.spec.js.snap +0 -462
  110. package/dist/xgettext/file-resolver.js +0 -23
  111. package/dist/xgettext/file-resolver.js.map +0 -1
  112. package/dist/xgettext/file-resolver.spec.js +0 -22
  113. package/dist/xgettext/file-resolver.spec.js.map +0 -1
  114. package/dist/xgettext/files-collector.js +0 -41
  115. package/dist/xgettext/files-collector.js.map +0 -1
  116. package/dist/xgettext/files-collector.spec.js.map +0 -1
  117. package/dist/xgettext/xgettext.d.ts +0 -16
  118. package/dist/xgettext/xgettext.js +0 -335
  119. package/dist/xgettext/xgettext.js.map +0 -1
  120. package/dist/xgettext/xgettext.spec.js +0 -743
  121. package/dist/xgettext/xgettext.spec.js.map +0 -1
  122. /package/dist/{xgettext → commands/xgettext}/file-resolver.spec.d.ts +0 -0
  123. /package/dist/{xgettext → commands/xgettext}/files-collector.d.ts +0 -0
  124. /package/dist/{xgettext → commands/xgettext}/files-collector.spec.d.ts +0 -0
  125. /package/dist/{xgettext → commands}/xgettext.spec.d.ts +0 -0
@@ -0,0 +1,212 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.MsgmergeAll = void 0;
27
+ const path = __importStar(require("path"));
28
+ const fs = __importStar(require("fs"));
29
+ const childProcess = __importStar(require("child_process"));
30
+ const runtime_1 = require("@esgettext/runtime");
31
+ const package_1 = require("../package");
32
+ const gtx = runtime_1.Textdomain.getInstance('com.cantanea.esgettext-tools');
33
+ class MsgmergeAll {
34
+ constructor(configuration) {
35
+ var _a, _b;
36
+ this.configuration = configuration;
37
+ if (((_a = configuration.package) === null || _a === void 0 ? void 0 : _a.textdomain) &&
38
+ typeof ((_b = configuration.po) === null || _b === void 0 ? void 0 : _b.directory) !== 'undefined') {
39
+ const filename = `${configuration.package.textdomain}.pot`;
40
+ const potfile = path.join(configuration.po.directory, filename);
41
+ if (fs.existsSync(potfile)) {
42
+ this.potfile = potfile;
43
+ }
44
+ }
45
+ }
46
+ synopsis() {
47
+ if (typeof this.potfile === 'undefined') {
48
+ return `<${gtx._('POTFILE')}>`;
49
+ }
50
+ else {
51
+ return `[${gtx._('POTFILE')}]`;
52
+ }
53
+ }
54
+ description() {
55
+ return gtx._("Invoke 'msgmerge' for multiple files.");
56
+ }
57
+ aliases() {
58
+ return [];
59
+ }
60
+ args() {
61
+ var _a, _b, _c, _d, _e, _f, _g, _h;
62
+ const options = {
63
+ locales: {
64
+ alias: 'l',
65
+ type: 'array',
66
+ describe: gtx._('List of locale identifiers'),
67
+ demandOption: true,
68
+ default: (_a = this.configuration.po) === null || _a === void 0 ? void 0 : _a.locales,
69
+ group: gtx._('Input file options:'),
70
+ },
71
+ directory: {
72
+ alias: 'D',
73
+ type: 'string',
74
+ describe: gtx._("Search '.po' files in DIRECTORY"),
75
+ default: (_c = (_b = this.configuration.po) === null || _b === void 0 ? void 0 : _b.directory) !== null && _c !== void 0 ? _c : '.',
76
+ group: gtx._('Input file options:'),
77
+ },
78
+ msgmerge: {
79
+ type: 'string',
80
+ describe: gtx._('msgmerge program if not in PATH [string]'),
81
+ default: (_f = (_e = (_d = this.configuration.programs) === null || _d === void 0 ? void 0 : _d.msgmerge) === null || _e === void 0 ? void 0 : _e.path) !== null && _f !== void 0 ? _f : 'msgmerge',
82
+ group: gtx._('Mode of operation:'),
83
+ },
84
+ options: {
85
+ type: 'string',
86
+ array: true,
87
+ describe: gtx._x("Options to pass to '{program}' program (without hyphens)", { program: 'msgmerge' }),
88
+ default: (_h = (_g = this.configuration.programs) === null || _g === void 0 ? void 0 : _g.msgfmt) === null || _h === void 0 ? void 0 : _h.options,
89
+ group: gtx._('Mode of operation:'),
90
+ },
91
+ verbose: {
92
+ alias: 'V',
93
+ type: 'boolean',
94
+ describe: gtx._('Enable verbose output'),
95
+ },
96
+ };
97
+ for (const name of ['locales', 'options']) {
98
+ if (!options[name].default) {
99
+ delete options[name].default;
100
+ }
101
+ }
102
+ return options;
103
+ }
104
+ additional(argv) {
105
+ argv.positional(gtx._('POTFILE'), {
106
+ type: 'string',
107
+ describe: gtx._('Catalog file with up-to-date message ids'),
108
+ default: this.potfile,
109
+ });
110
+ }
111
+ init(argv) {
112
+ var _a, _b;
113
+ const options = argv;
114
+ this.options = options;
115
+ const conf = this.configuration;
116
+ this.potfile = options[gtx._('POTFILE')];
117
+ if (!options.locales && ((_a = conf.po) === null || _a === void 0 ? void 0 : _a.locales)) {
118
+ options.locales = (_b = conf.po) === null || _b === void 0 ? void 0 : _b.locales;
119
+ }
120
+ if (!options.locales || !options.locales.length) {
121
+ throw new Error(gtx._('no locales given'));
122
+ }
123
+ this.locales = [];
124
+ for (let i = 0; i < options.locales.length; ++i) {
125
+ const locales = options.locales[i].split(/[ \t]*,[ \t]*/);
126
+ for (let j = 0; j < locales.length; ++j) {
127
+ this.locales.push(locales[j]);
128
+ }
129
+ }
130
+ }
131
+ run(argv) {
132
+ this.init(argv);
133
+ return new Promise(resolve => {
134
+ this.locales
135
+ .reduce((promise, locale) => promise.then(() => this.msgmergeLocale(locale)), Promise.resolve())
136
+ .then(() => resolve(0), () => resolve(1));
137
+ });
138
+ }
139
+ convertOptions(options) {
140
+ const msgmergeOptions = [];
141
+ let errors = 0;
142
+ if (options) {
143
+ options.forEach(name => {
144
+ if (name.substring(0, 1) === '-') {
145
+ console.error(gtx._x("{programName}: option '{option}': Options passed to '{program}' must not start with a hyphen", {
146
+ programName: package_1.Package.getName(),
147
+ program: 'msgfmt',
148
+ option: name,
149
+ }));
150
+ ++errors;
151
+ }
152
+ if (name.length > 1) {
153
+ msgmergeOptions.push(`--${name}`);
154
+ }
155
+ else if (name.length === 1) {
156
+ msgmergeOptions.push(`-${name}`);
157
+ }
158
+ });
159
+ }
160
+ return errors ? null : msgmergeOptions;
161
+ }
162
+ async msgmergeLocale(locale) {
163
+ return new Promise(resolve => {
164
+ const args = this.convertOptions(this.options.options);
165
+ if (!args)
166
+ return resolve(1);
167
+ const poFile = this.options.directory + '/' + locale + '.po';
168
+ const oldPoFile = this.options.directory + '/' + locale + '.old.po';
169
+ args.push(oldPoFile, this.potfile, '-o', poFile);
170
+ console.log(gtx._x("Merging '{pot}' into '{po}'.", {
171
+ pot: this.potfile,
172
+ po: poFile,
173
+ }));
174
+ try {
175
+ fs.renameSync(poFile, oldPoFile);
176
+ const msgmerge = childProcess.spawn(this.options.msgmerge, args, {
177
+ windowsHide: true,
178
+ });
179
+ msgmerge.on('error', err => {
180
+ throw new Error(gtx._x("Failed to run '{prg}': {err}", {
181
+ prg: this.options.msgmerge,
182
+ err,
183
+ }));
184
+ });
185
+ msgmerge.stdout.on('data', (data) => process.stdout.write(data.toString()));
186
+ msgmerge.stderr.on('data', (data) => process.stderr.write(data.toString()));
187
+ msgmerge.on('close', code => {
188
+ if (code) {
189
+ fs.renameSync(oldPoFile, poFile);
190
+ resolve(1);
191
+ }
192
+ else {
193
+ fs.unlinkSync(oldPoFile);
194
+ resolve(0);
195
+ }
196
+ });
197
+ }
198
+ catch (err) {
199
+ try {
200
+ fs.renameSync(oldPoFile, poFile);
201
+ }
202
+ catch (err1) {
203
+ console.error(err1);
204
+ }
205
+ console.error(err);
206
+ resolve(1);
207
+ }
208
+ });
209
+ }
210
+ }
211
+ exports.MsgmergeAll = MsgmergeAll;
212
+ //# sourceMappingURL=msgmerge-all.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"msgmerge-all.js","sourceRoot":"","sources":["../../src/commands/msgmerge-all.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  export declare class FileResolver {
2
2
  private readonly directories;
3
3
  constructor(directories?: Array<string>);
4
- resolve(filename: string): string;
4
+ resolve(filename: string): string | null;
5
5
  }
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FileResolver = void 0;
4
+ const path_1 = require("path");
5
+ const fs_1 = require("fs");
6
+ class FileResolver {
7
+ constructor(directories = ['']) {
8
+ this.directories = directories;
9
+ }
10
+ resolve(filename) {
11
+ for (let i = 0; i < this.directories.length; ++i) {
12
+ const resolved = (0, path_1.join)(this.directories[i], filename);
13
+ if ((0, fs_1.existsSync)(resolved)) {
14
+ return resolved;
15
+ }
16
+ }
17
+ return null;
18
+ }
19
+ }
20
+ exports.FileResolver = FileResolver;
21
+ //# sourceMappingURL=file-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-resolver.js","sourceRoot":"","sources":["../../../src/commands/xgettext/file-resolver.ts"],"names":[],"mappings":";;;AAAA,+BAA4B;AAC5B,2BAAgC;AAEhC,MAAa,YAAY;IACxB,YAA6B,cAA6B,CAAC,EAAE,CAAC;QAAjC,gBAAW,GAAX,WAAW,CAAsB;IAAG,CAAC;IAElE,OAAO,CAAC,QAAgB;QACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;YAClD,MAAM,QAAQ,GAAG,IAAA,WAAI,EAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;YACrD,IAAI,IAAA,eAAU,EAAC,QAAQ,CAAC,EAAE,CAAC;gBAC1B,OAAO,QAAQ,CAAC;YACjB,CAAC;QACF,CAAC;QAED,OAAO,IAAI,CAAC;IACb,CAAC;CACD;AAbD,oCAaC"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const path_1 = require("path");
4
+ const file_resolver_1 = require("./file-resolver");
5
+ describe('file resolving', () => {
6
+ it('should default to the current directory', () => {
7
+ const resolver = new file_resolver_1.FileResolver();
8
+ const filename = 'package.json';
9
+ expect(resolver.resolve('package.json')).toEqual((0, path_1.join)('', filename));
10
+ });
11
+ it('should search one directory and fail', () => {
12
+ const filename = (0, path_1.basename)(__filename);
13
+ const resolver = new file_resolver_1.FileResolver([__filename]);
14
+ expect(resolver.resolve(filename)).toBeNull();
15
+ });
16
+ it('should search two directories and succeed', () => {
17
+ const filename = (0, path_1.basename)(__filename);
18
+ const resolver = new file_resolver_1.FileResolver([__filename, __dirname]);
19
+ expect(resolver.resolve(filename)).toEqual((0, path_1.join)(__dirname, filename));
20
+ });
21
+ });
22
+ //# sourceMappingURL=file-resolver.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-resolver.spec.js","sourceRoot":"","sources":["../../../src/commands/xgettext/file-resolver.spec.ts"],"names":[],"mappings":";;AAAA,+BAAsC;AACtC,mDAA+C;AAE/C,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAI/B,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QAClD,MAAM,QAAQ,GAAG,IAAI,4BAAY,EAAE,CAAC;QACpC,MAAM,QAAQ,GAAG,cAAc,CAAC;QAEhC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,IAAA,WAAI,EAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC/C,MAAM,QAAQ,GAAG,IAAA,eAAQ,EAAC,UAAU,CAAC,CAAC;QACtC,MAAM,QAAQ,GAAG,IAAI,4BAAY,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;QAEhD,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACpD,MAAM,QAAQ,GAAG,IAAA,eAAQ,EAAC,UAAU,CAAC,CAAC;QACtC,MAAM,QAAQ,GAAG,IAAI,4BAAY,CAAC,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;QAE3D,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAA,WAAI,EAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FilesCollector = void 0;
4
+ const fs_1 = require("fs");
5
+ const runtime_1 = require("@esgettext/runtime");
6
+ const gtx = runtime_1.Textdomain.getInstance('tools');
7
+ class FilesCollector {
8
+ constructor(filesFrom, args) {
9
+ if (typeof filesFrom === 'undefined' && args.length === 0) {
10
+ throw new Error(gtx._('no input file given'));
11
+ }
12
+ const filenames = new Array();
13
+ if (typeof filesFrom !== 'undefined') {
14
+ filesFrom.forEach(fromFile => {
15
+ this.getFilesFromFile(fromFile).forEach(filename => {
16
+ filenames.push(filename);
17
+ });
18
+ });
19
+ }
20
+ args.forEach(filename => filenames.push(filename));
21
+ this.filenames = Array.from(new Set(filenames));
22
+ }
23
+ getFilesFromFile(filename) {
24
+ let content;
25
+ if ('-' === filename) {
26
+ content = process.stdin.read();
27
+ }
28
+ else {
29
+ content = (0, fs_1.readFileSync)(filename);
30
+ }
31
+ return content
32
+ .toString()
33
+ .split('\n')
34
+ .map(line => line.replace(/#.*/, '').trim())
35
+ .filter(line => line.length);
36
+ }
37
+ }
38
+ exports.FilesCollector = FilesCollector;
39
+ //# sourceMappingURL=files-collector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"files-collector.js","sourceRoot":"","sources":["../../../src/commands/xgettext/files-collector.ts"],"names":[],"mappings":";;;AAAA,2BAAkC;AAClC,gDAAgD;AAEhD,MAAM,GAAG,GAAG,oBAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAE5C,MAAa,cAAc;IAG1B,YAAY,SAAwB,EAAE,IAAmB;QACxD,IAAI,OAAO,SAAS,KAAK,WAAW,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3D,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC;QAC/C,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,KAAK,EAAU,CAAC;QACtC,IAAI,OAAO,SAAS,KAAK,WAAW,EAAE,CAAC;YACtC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAC5B,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;oBAClD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC1B,CAAC,CAAC,CAAC;YACJ,CAAC,CAAC,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QAGnD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;IACjD,CAAC;IAEO,gBAAgB,CAAC,QAAgB;QACxC,IAAI,OAAe,CAAC;QACpB,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;YACtB,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,EAAY,CAAC;QAC1C,CAAC;aAAM,CAAC;YACP,OAAO,GAAG,IAAA,iBAAY,EAAC,QAAQ,CAAC,CAAC;QAClC,CAAC;QACD,OAAO,OAAO;aACZ,QAAQ,EAAE;aACV,KAAK,CAAC,IAAI,CAAC;aACX,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;aAC3C,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;CACD;AApCD,wCAoCC"}
@@ -23,20 +23,30 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- var fs = __importStar(require("fs"));
27
- var files_collector_1 = require("./files-collector");
26
+ const fs = __importStar(require("fs"));
27
+ const files_collector_1 = require("./files-collector");
28
28
  jest.mock('fs');
29
- var reader = fs.readFileSync;
30
- describe('File collector', function () {
31
- describe('files-from', function () {
32
- afterEach(function () {
29
+ const reader = fs.readFileSync;
30
+ describe('File collector', () => {
31
+ describe('files-from', () => {
32
+ afterEach(() => {
33
33
  reader.mockClear();
34
34
  });
35
- it('should read files from a file and ignore comments and empty lines', function () {
36
- var file1 = "foo\nbar\nbaz\n";
37
- var file2 = "\n# Ignore comment.\nHuey # The first.\n\nDewey # The second.\n\nLouie # The third.\n";
35
+ it('should read files from a file and ignore comments and empty lines', () => {
36
+ const file1 = `foo
37
+ bar
38
+ baz
39
+ `;
40
+ const file2 = `
41
+ # Ignore comment.
42
+ Huey # The first.
43
+
44
+ Dewey # The second.
45
+
46
+ Louie # The third.
47
+ `;
38
48
  reader.mockReturnValueOnce(file1).mockReturnValueOnce(file2);
39
- var collector = new files_collector_1.FilesCollector(['file1', 'file2'], []);
49
+ const collector = new files_collector_1.FilesCollector(['file1', 'file2'], []);
40
50
  expect(collector.filenames).toEqual([
41
51
  'foo',
42
52
  'bar',
@@ -46,14 +56,18 @@ describe('File collector', function () {
46
56
  'Louie',
47
57
  ]);
48
58
  });
49
- it('should take files from command-line arguments', function () {
50
- var collector = new files_collector_1.FilesCollector([], ['file1', 'file2']);
59
+ it('should take files from command-line arguments', () => {
60
+ const collector = new files_collector_1.FilesCollector([], ['file1', 'file2']);
51
61
  expect(collector.filenames).toEqual(['file1', 'file2']);
52
62
  });
53
- it('should mix files in the right order', function () {
54
- var potfiles = "\nfoo\nbar\nbaz\n";
63
+ it('should mix files in the right order', () => {
64
+ const potfiles = `
65
+ foo
66
+ bar
67
+ baz
68
+ `;
55
69
  reader.mockReturnValueOnce(potfiles);
56
- var collector = new files_collector_1.FilesCollector(['POTFILES'], ['hubba', 'bubba']);
70
+ const collector = new files_collector_1.FilesCollector(['POTFILES'], ['hubba', 'bubba']);
57
71
  expect(collector.filenames).toEqual([
58
72
  'foo',
59
73
  'bar',
@@ -62,16 +76,20 @@ describe('File collector', function () {
62
76
  'bubba',
63
77
  ]);
64
78
  });
65
- it('should make input files unique', function () {
66
- var potfiles = "\nfoo\nbar\nbaz\n";
79
+ it('should make input files unique', () => {
80
+ const potfiles = `
81
+ foo
82
+ bar
83
+ baz
84
+ `;
67
85
  reader.mockReturnValueOnce(potfiles);
68
- var collector = new files_collector_1.FilesCollector(['POTFILES'], ['foo', 'bar', 'bazoo']);
86
+ const collector = new files_collector_1.FilesCollector(['POTFILES'], ['foo', 'bar', 'bazoo']);
69
87
  expect(collector.filenames).toEqual(['foo', 'bar', 'baz', 'bazoo']);
70
88
  });
71
89
  });
72
- describe('errors', function () {
73
- it('should throw an exception if no input files given', function () {
74
- expect(function () { return new files_collector_1.FilesCollector(undefined, []); }).toThrow(new Error('no input file given'));
90
+ describe('errors', () => {
91
+ it('should throw an exception if no input files given', () => {
92
+ expect(() => new files_collector_1.FilesCollector(undefined, [])).toThrow(new Error('no input file given'));
75
93
  });
76
94
  });
77
95
  });
@@ -0,0 +1 @@
1
+ {"version":3,"file":"files-collector.spec.js","sourceRoot":"","sources":["../../../src/commands/xgettext/files-collector.spec.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAyB;AACzB,uDAAmD;AAEnD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEhB,MAAM,MAAM,GAAG,EAAE,CAAC,YAAyB,CAAC;AAE5C,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC/B,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;QAC3B,SAAS,CAAC,GAAG,EAAE;YACd,MAAM,CAAC,SAAS,EAAE,CAAC;QACpB,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mEAAmE,EAAE,GAAG,EAAE;YAC5E,MAAM,KAAK,GAAG;;;CAGhB,CAAC;YACC,MAAM,KAAK,GAAG;;;;;;;CAOhB,CAAC;YAEC,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;YAC7D,MAAM,SAAS,GAAG,IAAI,gCAAc,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;YAC7D,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC;gBACnC,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,MAAM;gBACN,OAAO;gBACP,OAAO;aACP,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;YACxD,MAAM,SAAS,GAAG,IAAI,gCAAc,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;YAC7D,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;YAC9C,MAAM,QAAQ,GAAG;;;;CAInB,CAAC;YACC,MAAM,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;YACrC,MAAM,SAAS,GAAG,IAAI,gCAAc,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;YACvE,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC;gBACnC,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,OAAO;gBACP,OAAO;aACP,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;YACzC,MAAM,QAAQ,GAAG;;;;CAInB,CAAC;YACC,MAAM,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;YACrC,MAAM,SAAS,GAAG,IAAI,gCAAc,CACnC,CAAC,UAAU,CAAC,EACZ,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CACvB,CAAC;YACF,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;QACrE,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;QACvB,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;YAC5D,MAAM,CACL,GAAG,EAAE,CAAC,IAAI,gCAAc,CAAC,SAAgC,EAAE,EAAE,CAAC,CAC9D,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -0,0 +1,29 @@
1
+ import yargs from 'yargs';
2
+ import { Command } from '../command';
3
+ import { Configuration } from '../configuration';
4
+ export declare class XGettext implements Command {
5
+ private catalog;
6
+ private date;
7
+ private exclude;
8
+ private options;
9
+ private readonly configuration;
10
+ constructor(configuration: Configuration, date?: string);
11
+ synopsis(): string;
12
+ description(): string;
13
+ aliases(): Array<string>;
14
+ args(): {
15
+ [key: string]: yargs.Options;
16
+ };
17
+ additional(_: yargs.Argv): void;
18
+ private init;
19
+ doRun(): number;
20
+ run(argv: yargs.Arguments): Promise<number>;
21
+ private parse;
22
+ private readFile;
23
+ private getParserByFilename;
24
+ private getParserByLanguage;
25
+ private warn;
26
+ private output;
27
+ private fillExclusionCatalog;
28
+ private getParserOptions;
29
+ }