typia 7.0.0-dev.20241002 → 7.0.0-dev.20241003

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 (117) hide show
  1. package/lib/factories/JsonMetadataFactory.js +4 -1
  2. package/lib/factories/JsonMetadataFactory.js.map +1 -1
  3. package/lib/factories/MetadataCollection.js +2 -2
  4. package/lib/factories/MetadataCollection.js.map +1 -1
  5. package/lib/factories/MetadataCommentTagFactory.js +284 -205
  6. package/lib/factories/MetadataCommentTagFactory.js.map +1 -1
  7. package/lib/factories/ProtobufFactory.js +4 -1
  8. package/lib/factories/ProtobufFactory.js.map +1 -1
  9. package/lib/programmers/AssertProgrammer.js +0 -24
  10. package/lib/programmers/AssertProgrammer.js.map +1 -1
  11. package/lib/programmers/CheckerProgrammer.js +9 -6
  12. package/lib/programmers/CheckerProgrammer.js.map +1 -1
  13. package/lib/programmers/RandomProgrammer.js +4 -1
  14. package/lib/programmers/RandomProgrammer.js.map +1 -1
  15. package/lib/programmers/functional/FunctionalAssertFunctionProgrammer.js +4 -1
  16. package/lib/programmers/functional/FunctionalAssertFunctionProgrammer.js.map +1 -1
  17. package/lib/programmers/functional/FunctionalAssertParametersProgrammer.js +0 -12
  18. package/lib/programmers/functional/FunctionalAssertParametersProgrammer.js.map +1 -1
  19. package/lib/programmers/functional/FunctionalIsReturnProgrammer.js +4 -1
  20. package/lib/programmers/functional/FunctionalIsReturnProgrammer.js.map +1 -1
  21. package/lib/programmers/functional/FunctionalValidateParametersProgrammer.js +4 -1
  22. package/lib/programmers/functional/FunctionalValidateParametersProgrammer.js.map +1 -1
  23. package/lib/programmers/functional/FunctionalValidateReturnProgrammer.js +4 -1
  24. package/lib/programmers/functional/FunctionalValidateReturnProgrammer.js.map +1 -1
  25. package/lib/programmers/helpers/UnionPredicator.js +1 -1
  26. package/lib/programmers/helpers/UnionPredicator.js.map +1 -1
  27. package/lib/programmers/http/HttpFormDataProgrammer.js +4 -1
  28. package/lib/programmers/http/HttpFormDataProgrammer.js.map +1 -1
  29. package/lib/programmers/http/HttpHeadersProgrammer.js +5 -2
  30. package/lib/programmers/http/HttpHeadersProgrammer.js.map +1 -1
  31. package/lib/programmers/http/HttpParameterProgrammer.js +4 -1
  32. package/lib/programmers/http/HttpParameterProgrammer.js.map +1 -1
  33. package/lib/programmers/http/HttpQueryProgrammer.js +4 -1
  34. package/lib/programmers/http/HttpQueryProgrammer.js.map +1 -1
  35. package/lib/programmers/misc/MiscCloneProgrammer.js +4 -1
  36. package/lib/programmers/misc/MiscCloneProgrammer.js.map +1 -1
  37. package/lib/programmers/misc/MiscLiteralsProgrammer.js +4 -1
  38. package/lib/programmers/misc/MiscLiteralsProgrammer.js.map +1 -1
  39. package/lib/programmers/misc/MiscPruneProgrammer.js +4 -1
  40. package/lib/programmers/misc/MiscPruneProgrammer.js.map +1 -1
  41. package/lib/programmers/notations/NotationGeneralProgrammer.js +24 -17
  42. package/lib/programmers/notations/NotationGeneralProgrammer.js.map +1 -1
  43. package/lib/programmers/protobuf/ProtobufMessageProgrammer.js +1 -1
  44. package/lib/programmers/protobuf/ProtobufMessageProgrammer.js.map +1 -1
  45. package/lib/transformers/CallExpressionTransformer.d.ts +4 -1
  46. package/lib/transformers/CallExpressionTransformer.js +30 -32
  47. package/lib/transformers/CallExpressionTransformer.js.map +1 -1
  48. package/lib/transformers/FileTransformer.js +36 -30
  49. package/lib/transformers/FileTransformer.js.map +1 -1
  50. package/lib/transformers/NodeTransformer.d.ts +4 -1
  51. package/lib/transformers/NodeTransformer.js +7 -6
  52. package/lib/transformers/NodeTransformer.js.map +1 -1
  53. package/lib/transformers/TransformerError.d.ts +4 -1
  54. package/lib/transformers/TransformerError.js +21 -23
  55. package/lib/transformers/TransformerError.js.map +1 -1
  56. package/lib/transformers/features/json/JsonApplicationTransformer.js +4 -1
  57. package/lib/transformers/features/json/JsonApplicationTransformer.js.map +1 -1
  58. package/lib/transformers/features/llm/LlmApplicationTransformer.js +4 -1
  59. package/lib/transformers/features/llm/LlmApplicationTransformer.js.map +1 -1
  60. package/lib/transformers/features/llm/LlmSchemaTransformer.js +4 -1
  61. package/lib/transformers/features/llm/LlmSchemaTransformer.js.map +1 -1
  62. package/lib/transformers/features/reflect/ReflectMetadataTransformer.js +4 -1
  63. package/lib/transformers/features/reflect/ReflectMetadataTransformer.js.map +1 -1
  64. package/lib/transformers/features/reflect/ReflectNameTransformer.js +4 -1
  65. package/lib/transformers/features/reflect/ReflectNameTransformer.js.map +1 -1
  66. package/lib/utils/MapUtil.d.ts +1 -1
  67. package/lib/utils/MapUtil.js +7 -9
  68. package/lib/utils/MapUtil.js.map +1 -1
  69. package/lib/utils/NameEncoder.d.ts +2 -2
  70. package/lib/utils/NameEncoder.js +4 -6
  71. package/lib/utils/NameEncoder.js.map +1 -1
  72. package/lib/utils/StringUtil/StringUtil.d.ts +5 -1
  73. package/lib/utils/StringUtil/StringUtil.js +8 -4
  74. package/lib/utils/StringUtil/StringUtil.js.map +1 -1
  75. package/package.json +1 -1
  76. package/src/factories/JsonMetadataFactory.ts +4 -1
  77. package/src/factories/MetadataCollection.ts +3 -2
  78. package/src/factories/MetadataCommentTagFactory.ts +212 -133
  79. package/src/factories/ProtobufFactory.ts +4 -3
  80. package/src/programmers/AssertProgrammer.ts +0 -24
  81. package/src/programmers/CheckerProgrammer.ts +9 -8
  82. package/src/programmers/RandomProgrammer.ts +4 -3
  83. package/src/programmers/functional/FunctionalAssertFunctionProgrammer.ts +4 -3
  84. package/src/programmers/functional/FunctionalAssertParametersProgrammer.ts +0 -12
  85. package/src/programmers/functional/FunctionalIsReturnProgrammer.ts +4 -3
  86. package/src/programmers/functional/FunctionalValidateParametersProgrammer.ts +4 -3
  87. package/src/programmers/functional/FunctionalValidateReturnProgrammer.ts +4 -3
  88. package/src/programmers/helpers/UnionPredicator.ts +1 -1
  89. package/src/programmers/http/HttpFormDataProgrammer.ts +4 -3
  90. package/src/programmers/http/HttpHeadersProgrammer.ts +5 -4
  91. package/src/programmers/http/HttpParameterProgrammer.ts +4 -1
  92. package/src/programmers/http/HttpQueryProgrammer.ts +4 -3
  93. package/src/programmers/misc/MiscCloneProgrammer.ts +4 -3
  94. package/src/programmers/misc/MiscLiteralsProgrammer.ts +4 -1
  95. package/src/programmers/misc/MiscPruneProgrammer.ts +4 -3
  96. package/src/programmers/notations/NotationGeneralProgrammer.ts +28 -20
  97. package/src/programmers/protobuf/ProtobufMessageProgrammer.ts +1 -1
  98. package/src/transformers/CallExpressionTransformer.ts +36 -36
  99. package/src/transformers/FileTransformer.ts +42 -32
  100. package/src/transformers/NodeTransformer.ts +10 -6
  101. package/src/transformers/TransformerError.ts +26 -27
  102. package/src/transformers/features/json/JsonApplicationTransformer.ts +4 -1
  103. package/src/transformers/features/llm/LlmApplicationTransformer.ts +4 -1
  104. package/src/transformers/features/llm/LlmSchemaTransformer.ts +4 -1
  105. package/src/transformers/features/reflect/ReflectMetadataTransformer.ts +4 -1
  106. package/src/transformers/features/reflect/ReflectNameTransformer.ts +4 -1
  107. package/src/utils/MapUtil.ts +11 -9
  108. package/src/utils/NameEncoder.ts +4 -4
  109. package/src/utils/StringUtil/StringUtil.ts +11 -4
  110. package/lib/functional/$varint.d.ts +0 -6
  111. package/lib/functional/$varint.js +0 -99
  112. package/lib/functional/$varint.js.map +0 -1
  113. package/lib/functional/$zigzag.d.ts +0 -4
  114. package/lib/functional/$zigzag.js +0 -35
  115. package/lib/functional/$zigzag.js.map +0 -1
  116. package/src/functional/$varint.ts +0 -130
  117. package/src/functional/$zigzag.ts +0 -39
@@ -52,7 +52,10 @@ export namespace ReflectMetadataTransformer {
52
52
  type,
53
53
  });
54
54
  if (result.success === false)
55
- throw TransformerError.from("typia.reflect.metadata")(result.errors);
55
+ throw TransformerError.from({
56
+ code: "typia.reflect.metadata",
57
+ errors: result.errors,
58
+ });
56
59
  return result.data;
57
60
  });
58
61
 
@@ -74,6 +74,9 @@ const getMetadata = (props: {
74
74
  type,
75
75
  });
76
76
  if (result.success === false)
77
- throw TransformerError.from("typia.reflect.name")(result.errors);
77
+ throw TransformerError.from({
78
+ code: "typia.reflect.name",
79
+ errors: result.errors,
80
+ });
78
81
  return result.data;
79
82
  };
@@ -1,12 +1,14 @@
1
1
  export namespace MapUtil {
2
- export const take =
3
- <Key, T>(dict: Map<Key, T>) =>
4
- (key: Key, generator: () => T): T => {
5
- const oldbie: T | undefined = dict.get(key);
6
- if (oldbie) return oldbie;
2
+ export const take = <Key, T>(
3
+ dict: Map<Key, T>,
4
+ key: Key,
5
+ generator: () => T,
6
+ ): T => {
7
+ const oldbie: T | undefined = dict.get(key);
8
+ if (oldbie) return oldbie;
7
9
 
8
- const value: T = generator();
9
- dict.set(key, value);
10
- return value;
11
- };
10
+ const value: T = generator();
11
+ dict.set(key, value);
12
+ return value;
13
+ };
12
14
  }
@@ -1,15 +1,15 @@
1
1
  export namespace NameEncoder {
2
- export function encode(str: string): string {
2
+ export const encode = (str: string): string => {
3
3
  for (const [before, after] of REPLACERS)
4
4
  str = str.split(before).join(after);
5
5
  return str;
6
- }
6
+ };
7
7
 
8
- export function decode(str: string): string {
8
+ export const decode = (str: string): string => {
9
9
  for (const [before, after] of REPLACERS)
10
10
  if (after !== "") str = str.split(after).join(before);
11
11
  return str;
12
- }
12
+ };
13
13
  }
14
14
 
15
15
  const REPLACERS: [string, string][] = [
@@ -1,7 +1,14 @@
1
1
  export const capitalize = (str: string) =>
2
2
  str.length ? str[0]!.toUpperCase() + str.slice(1).toLowerCase() : str;
3
3
 
4
- export const escapeDuplicate =
5
- (keep: string[]) =>
6
- (change: string): string =>
7
- keep.includes(change) ? escapeDuplicate(keep)(`_${change}`) : change;
4
+ export const escapeDuplicate = (props: {
5
+ keep: string[];
6
+ input: string;
7
+ escape?: (str: string) => string;
8
+ }): string =>
9
+ props.keep.includes(props.input)
10
+ ? escapeDuplicate({
11
+ keep: props.keep,
12
+ input: (props.escape ?? ((str) => `_${str}`))(props.input),
13
+ })
14
+ : props.input;
@@ -1,6 +0,0 @@
1
- export declare function $varint_decode_i32(buf: Uint8Array, offset: number): [value: number, offset: number];
2
- export declare function $varint_decode_u32(buf: Uint8Array, offset: number): [value: number, offset: number];
3
- export declare function $varint_decode_i64(buf: Uint8Array, offset: number): [value: bigint, offset: number];
4
- export declare function $varint_decode_u64(buf: Uint8Array, offset: number): [value: bigint, offset: number];
5
- export declare function $varint_encode(dst: Uint8Array, offset: number, value: number): number;
6
- export declare function $varint_encode(dst: Uint8Array, offset: number, value: bigint): number;
@@ -1,99 +0,0 @@
1
- "use strict";
2
- var __read = (this && this.__read) || function (o, n) {
3
- var m = typeof Symbol === "function" && o[Symbol.iterator];
4
- if (!m) return o;
5
- var i = m.call(o), r, ar = [], e;
6
- try {
7
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
8
- }
9
- catch (error) { e = { error: error }; }
10
- finally {
11
- try {
12
- if (r && !r.done && (m = i["return"])) m.call(i);
13
- }
14
- finally { if (e) throw e.error; }
15
- }
16
- return ar;
17
- };
18
- Object.defineProperty(exports, "__esModule", { value: true });
19
- exports.$varint_decode_i32 = $varint_decode_i32;
20
- exports.$varint_decode_u32 = $varint_decode_u32;
21
- exports.$varint_decode_i64 = $varint_decode_i64;
22
- exports.$varint_decode_u64 = $varint_decode_u64;
23
- exports.$varint_encode = $varint_encode;
24
- function EncodeVarNumber(dst, offset, value) {
25
- value = (value | 0) >>> 0; // 32-bit integer
26
- while (value > 127) {
27
- dst[offset++] = (value & 127) | 128;
28
- value >>>= 7;
29
- }
30
- dst[offset++] = value;
31
- return offset;
32
- }
33
- function DecodeVarNumber(buf, offset) {
34
- var value = 0;
35
- var shift = 0;
36
- while (true) {
37
- var byte = buf[offset++];
38
- value |= (byte & 127) << shift;
39
- if (byte < 128) {
40
- break;
41
- }
42
- shift += 7;
43
- }
44
- return [value | 0, offset];
45
- }
46
- function DecodeVarBigInt(buf, offset) {
47
- var value = BigInt(0);
48
- var shift = BigInt(0);
49
- while (true) {
50
- var byte = buf[offset++];
51
- value |= BigInt(byte & 127) << shift;
52
- if (byte < 128) {
53
- break;
54
- }
55
- shift += BigInt(7);
56
- }
57
- return [BigInt.asIntN(64, value), offset];
58
- }
59
- function $varint_decode_i32(buf, offset) {
60
- var _a = __read(DecodeVarNumber(buf, offset), 2), v = _a[0], o = _a[1];
61
- return [v, o];
62
- }
63
- function $varint_decode_u32(buf, offset) {
64
- var _a = __read(DecodeVarNumber(buf, offset), 2), v = _a[0], o = _a[1];
65
- return [v >>> 0, o];
66
- }
67
- function $varint_decode_i64(buf, offset) {
68
- var _a = __read(DecodeVarBigInt(buf, offset), 2), v = _a[0], o = _a[1];
69
- return [v, o];
70
- }
71
- function $varint_decode_u64(buf, offset) {
72
- var _a = __read(DecodeVarBigInt(buf, offset), 2), v = _a[0], o = _a[1];
73
- return [BigInt.asUintN(64, v), o];
74
- }
75
- function EncodeVarBigInt(dst, offset, value) {
76
- value = BigInt.asUintN(64, value);
77
- while (value > BigInt(127)) {
78
- dst[offset++] = Number(value & BigInt(127)) | 128;
79
- value >>= BigInt(7);
80
- }
81
- dst[offset++] = Number(value);
82
- return offset;
83
- }
84
- function $varint_encode(dst, offset, value) {
85
- if (typeof value === "bigint") {
86
- offset = EncodeVarBigInt(dst, offset, value);
87
- }
88
- else {
89
- if (value < 0) {
90
- // NOTE: Protocol Buffers signed varint encoding uses two's complement of 64-bit unsigned integers.
91
- offset = EncodeVarBigInt(dst, offset, BigInt(value));
92
- }
93
- else {
94
- offset = EncodeVarNumber(dst, offset, value);
95
- }
96
- }
97
- return offset;
98
- }
99
- //# sourceMappingURL=$varint.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"$varint.js","sourceRoot":"","sources":["../../src/functional/$varint.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- export declare function $zigzag_encode(value: number): number;
2
- export declare function $zigzag_encode(value: bigint): bigint;
3
- export declare function $zigzag_decode(value: number): number;
4
- export declare function $zigzag_decode(value: bigint): bigint;
@@ -1,35 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.$zigzag_encode = $zigzag_encode;
4
- exports.$zigzag_decode = $zigzag_decode;
5
- function $zigzag_encode(value) {
6
- // TODO: optimize (branchless solution exists)
7
- if (typeof value === "bigint") {
8
- if (value < BigInt(0)) {
9
- value = -value;
10
- return value * BigInt(2) - BigInt(1);
11
- }
12
- return value * BigInt(2);
13
- }
14
- if (value < 0) {
15
- value = -value;
16
- return value * 2 - 1;
17
- }
18
- return value * 2;
19
- }
20
- function $zigzag_decode(value) {
21
- // TODO: optimize (branchless solution exists)
22
- if (typeof value === "bigint") {
23
- value = BigInt.asUintN(64, value);
24
- if (value & BigInt(1)) {
25
- return -(value + BigInt(1)) / BigInt(2);
26
- }
27
- return value / BigInt(2);
28
- }
29
- value = value >>> 0;
30
- if (value & 1) {
31
- return -(value + 1) / 2;
32
- }
33
- return value / 2;
34
- }
35
- //# sourceMappingURL=$zigzag.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"$zigzag.js","sourceRoot":"","sources":["../../src/functional/$zigzag.ts"],"names":[],"mappings":";;AAEA,wCAgBC;AAID,wCAgBC;AApCD,SAAgB,cAAc,CAAC,KAAsB;IACnD,8CAA8C;IAE9C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YACtB,KAAK,GAAG,CAAC,KAAK,CAAC;YACf,OAAO,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACvC,CAAC;QACD,OAAO,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IAED,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACd,KAAK,GAAG,CAAC,KAAK,CAAC;QACf,OAAO,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;IACvB,CAAC;IACD,OAAO,KAAK,GAAG,CAAC,CAAC;AACnB,CAAC;AAID,SAAgB,cAAc,CAAC,KAAsB;IACnD,8CAA8C;IAE9C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAClC,IAAI,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YACtB,OAAO,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAC1C,CAAC;QACD,OAAO,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAC3B,CAAC;IAED,KAAK,GAAG,KAAK,KAAK,CAAC,CAAC;IACpB,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACd,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IACD,OAAO,KAAK,GAAG,CAAC,CAAC;AACnB,CAAC"}
@@ -1,130 +0,0 @@
1
- function EncodeVarNumber(
2
- dst: Uint8Array,
3
- offset: number,
4
- value: number,
5
- ): number {
6
- value = (value | 0) >>> 0; // 32-bit integer
7
-
8
- while (value > 127) {
9
- dst[offset++] = (value & 0b01111111) | 0b10000000;
10
- value >>>= 7;
11
- }
12
- dst[offset++] = value;
13
-
14
- return offset;
15
- }
16
-
17
- function DecodeVarNumber(
18
- buf: Uint8Array,
19
- offset: number,
20
- ): [value: number, offset: number] {
21
- let value = 0;
22
- let shift = 0;
23
-
24
- while (true) {
25
- const byte = buf[offset++]!;
26
- value |= (byte & 0b01111111) << shift;
27
- if (byte < 128) {
28
- break;
29
- }
30
- shift += 7;
31
- }
32
-
33
- return [value | 0, offset];
34
- }
35
-
36
- function DecodeVarBigInt(
37
- buf: Uint8Array,
38
- offset: number,
39
- ): [value: bigint, offset: number] {
40
- let value = BigInt(0);
41
- let shift = BigInt(0);
42
-
43
- while (true) {
44
- const byte = buf[offset++]!;
45
- value |= BigInt(byte & 0b01111111) << shift;
46
- if (byte < 128) {
47
- break;
48
- }
49
- shift += BigInt(7);
50
- }
51
-
52
- return [BigInt.asIntN(64, value), offset];
53
- }
54
-
55
- export function $varint_decode_i32(
56
- buf: Uint8Array,
57
- offset: number,
58
- ): [value: number, offset: number] {
59
- const [v, o] = DecodeVarNumber(buf, offset);
60
- return [v, o];
61
- }
62
-
63
- export function $varint_decode_u32(
64
- buf: Uint8Array,
65
- offset: number,
66
- ): [value: number, offset: number] {
67
- const [v, o] = DecodeVarNumber(buf, offset);
68
- return [v >>> 0, o];
69
- }
70
-
71
- export function $varint_decode_i64(
72
- buf: Uint8Array,
73
- offset: number,
74
- ): [value: bigint, offset: number] {
75
- const [v, o] = DecodeVarBigInt(buf, offset);
76
- return [v, o];
77
- }
78
-
79
- export function $varint_decode_u64(
80
- buf: Uint8Array,
81
- offset: number,
82
- ): [value: bigint, offset: number] {
83
- const [v, o] = DecodeVarBigInt(buf, offset);
84
- return [BigInt.asUintN(64, v), o];
85
- }
86
-
87
- function EncodeVarBigInt(
88
- dst: Uint8Array,
89
- offset: number,
90
- value: bigint,
91
- ): number {
92
- value = BigInt.asUintN(64, value);
93
-
94
- while (value > BigInt(127)) {
95
- dst[offset++] = Number(value & BigInt(0b01111111)) | 0b10000000;
96
- value >>= BigInt(7);
97
- }
98
- dst[offset++] = Number(value);
99
-
100
- return offset;
101
- }
102
-
103
- export function $varint_encode(
104
- dst: Uint8Array,
105
- offset: number,
106
- value: number,
107
- ): number;
108
- export function $varint_encode(
109
- dst: Uint8Array,
110
- offset: number,
111
- value: bigint,
112
- ): number;
113
-
114
- export function $varint_encode(
115
- dst: Uint8Array,
116
- offset: number,
117
- value: number | bigint,
118
- ): number {
119
- if (typeof value === "bigint") {
120
- offset = EncodeVarBigInt(dst, offset, value);
121
- } else {
122
- if (value < 0) {
123
- // NOTE: Protocol Buffers signed varint encoding uses two's complement of 64-bit unsigned integers.
124
- offset = EncodeVarBigInt(dst, offset, BigInt(value));
125
- } else {
126
- offset = EncodeVarNumber(dst, offset, value);
127
- }
128
- }
129
- return offset;
130
- }
@@ -1,39 +0,0 @@
1
- export function $zigzag_encode(value: number): number;
2
- export function $zigzag_encode(value: bigint): bigint;
3
- export function $zigzag_encode(value: number | bigint): any {
4
- // TODO: optimize (branchless solution exists)
5
-
6
- if (typeof value === "bigint") {
7
- if (value < BigInt(0)) {
8
- value = -value;
9
- return value * BigInt(2) - BigInt(1);
10
- }
11
- return value * BigInt(2);
12
- }
13
-
14
- if (value < 0) {
15
- value = -value;
16
- return value * 2 - 1;
17
- }
18
- return value * 2;
19
- }
20
-
21
- export function $zigzag_decode(value: number): number;
22
- export function $zigzag_decode(value: bigint): bigint;
23
- export function $zigzag_decode(value: number | bigint): any {
24
- // TODO: optimize (branchless solution exists)
25
-
26
- if (typeof value === "bigint") {
27
- value = BigInt.asUintN(64, value);
28
- if (value & BigInt(1)) {
29
- return -(value + BigInt(1)) / BigInt(2);
30
- }
31
- return value / BigInt(2);
32
- }
33
-
34
- value = value >>> 0;
35
- if (value & 1) {
36
- return -(value + 1) / 2;
37
- }
38
- return value / 2;
39
- }