UNPKG

1.36 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3function generateEnum(cSharpEnum) {
4 'use strict';
5 var nextIndex = 0;
6 var entryStrings = [];
7 for (var _i = 0, _a = cSharpEnum.entries; _i < _a.length; _i++) {
8 var entry = _a[_i];
9 var value = !!entry.value ? parseEnumValue(entry.value, cSharpEnum.entries) : undefined;
10 entryStrings.push(entry.name + " = " + (value !== undefined ? value : nextIndex));
11 nextIndex = isNaN(value) ? nextIndex + 1 : value + 1;
12 }
13 return "export enum " + cSharpEnum.name + " {\n " + entryStrings.join(',\n ') + "\n}";
14}
15exports.generateEnum = generateEnum;
16function parseEnumValue(value, entries) {
17 var parsedValue;
18 if (value.startsWith('~')) {
19 var valueNoTilde_1 = value.substr(1);
20 var matchingEntry = entries.find(function (e) { return e.name === valueNoTilde_1; });
21 // tslint:disable-next-line:no-bitwise
22 parsedValue = matchingEntry ? ~parseEnumValue(matchingEntry.value, entries) : ~parseAsDecimalOrHexadecimal(valueNoTilde_1);
23 }
24 else {
25 parsedValue = parseAsDecimalOrHexadecimal(value);
26 }
27 return parsedValue;
28}
29function parseAsDecimalOrHexadecimal(value) {
30 var radix = value.startsWith('0x') ? 16 : 10;
31 return parseInt(value, radix);
32}
33//# sourceMappingURL=generate-enum.js.map
\No newline at end of file