@ezez/utils 4.3.0 → 4.5.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.
- package/CHANGELOG.md +14 -0
- package/dist/deserialize.d.ts +1 -1
- package/dist/deserialize.d.ts.map +1 -1
- package/dist/deserialize.js +2 -1
- package/dist/deserialize.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/race.d.ts.map +1 -1
- package/dist/race.js.map +1 -1
- package/dist/serialize.d.ts.map +1 -1
- package/dist/serialize.js.map +1 -1
- package/dist/serializeToBuffer/const.d.ts +10 -0
- package/dist/serializeToBuffer/const.d.ts.map +1 -0
- package/dist/serializeToBuffer/const.js +16 -0
- package/dist/serializeToBuffer/const.js.map +1 -0
- package/dist/serializeToBuffer/serializeToBuffer.d.ts +5 -0
- package/dist/serializeToBuffer/serializeToBuffer.d.ts.map +1 -0
- package/dist/serializeToBuffer/serializeToBuffer.js +39 -0
- package/dist/serializeToBuffer/serializeToBuffer.js.map +1 -0
- package/dist/serializeToBuffer/unserializeFromBuffer.d.ts +5 -0
- package/dist/serializeToBuffer/unserializeFromBuffer.d.ts.map +1 -0
- package/dist/serializeToBuffer/unserializeFromBuffer.js +52 -0
- package/dist/serializeToBuffer/unserializeFromBuffer.js.map +1 -0
- package/dist/sortBy.d.ts +1 -1
- package/dist/sortBy.d.ts.map +1 -1
- package/dist/sortBy.js +2 -7
- package/dist/sortBy.js.map +1 -1
- package/dist/sortByMultiple.d.ts +3 -0
- package/dist/sortByMultiple.d.ts.map +1 -0
- package/dist/sortByMultiple.js +18 -0
- package/dist/sortByMultiple.js.map +1 -0
- package/docs/assets/navigation.js +1 -1
- package/docs/assets/search.js +1 -1
- package/docs/documents/CHANGELOG.html +81 -67
- package/docs/functions/index.cap.html +2 -2
- package/docs/functions/index.capitalize.html +2 -2
- package/docs/functions/index.coalesce.html +2 -2
- package/docs/functions/index.compareArrays.html +2 -2
- package/docs/functions/index.compareProps.html +2 -2
- package/docs/functions/index.deserialize.html +2 -2
- package/docs/functions/index.ensureArray.html +2 -2
- package/docs/functions/index.ensureDate.html +2 -2
- package/docs/functions/index.ensureError.html +2 -2
- package/docs/functions/index.ensurePrefix.html +2 -2
- package/docs/functions/index.ensureSuffix.html +2 -2
- package/docs/functions/index.ensureTimestamp.html +2 -2
- package/docs/functions/index.escapeRegExp.html +2 -2
- package/docs/functions/index.formatDate.html +2 -2
- package/docs/functions/index.get.html +2 -2
- package/docs/functions/index.getMultiple.html +2 -2
- package/docs/functions/index.insertSeparator.html +2 -2
- package/docs/functions/index.isEmpty.html +2 -2
- package/docs/functions/index.isNumericString.html +2 -2
- package/docs/functions/index.isPlainObject.html +2 -2
- package/docs/functions/index.last.html +2 -2
- package/docs/functions/index.later-1.html +2 -2
- package/docs/functions/index.mapAsync.html +2 -2
- package/docs/functions/index.mapValues.html +2 -2
- package/docs/functions/index.match.html +2 -2
- package/docs/functions/index.memoize.html +2 -2
- package/docs/functions/index.merge.html +2 -2
- package/docs/functions/index.mostFrequent.html +2 -2
- package/docs/functions/index.noop.html +2 -2
- package/docs/functions/index.occurrences.html +2 -2
- package/docs/functions/index.omit.html +2 -2
- package/docs/functions/index.pick.html +2 -2
- package/docs/functions/index.pull.html +2 -2
- package/docs/functions/index.race.html +6 -3
- package/docs/functions/index.remove.html +2 -2
- package/docs/functions/index.removeCommonProperties.html +2 -2
- package/docs/functions/index.replace.html +2 -2
- package/docs/functions/index.replaceDeep.html +2 -2
- package/docs/functions/index.rethrow.html +2 -2
- package/docs/functions/index.retry.html +2 -2
- package/docs/functions/index.round.html +2 -2
- package/docs/functions/index.safe.html +2 -2
- package/docs/functions/index.sample.html +2 -2
- package/docs/functions/index.samples.html +2 -2
- package/docs/functions/index.scale.html +2 -2
- package/docs/functions/index.seq.html +2 -2
- package/docs/functions/index.seqEarlyBreak.html +2 -2
- package/docs/functions/index.serialize.html +3 -4
- package/docs/functions/index.serializeToBuffer.html +19 -0
- package/docs/functions/index.set.html +2 -2
- package/docs/functions/index.setImmutable.html +2 -2
- package/docs/functions/index.shuffle.html +2 -2
- package/docs/functions/index.sortBy.html +4 -4
- package/docs/functions/index.sortByMultiple.html +10 -0
- package/docs/functions/index.sortProps.html +2 -2
- package/docs/functions/index.stripPrefix.html +2 -2
- package/docs/functions/index.stripSuffix.html +2 -2
- package/docs/functions/index.throttle.html +2 -2
- package/docs/functions/index.toggle.html +2 -2
- package/docs/functions/index.trim.html +2 -2
- package/docs/functions/index.trimEnd.html +2 -2
- package/docs/functions/index.trimStart.html +2 -2
- package/docs/functions/index.truthy.html +2 -2
- package/docs/functions/index.unique.html +2 -2
- package/docs/functions/index.unserializeFromBuffer.html +8 -0
- package/docs/functions/index.wait.html +2 -2
- package/docs/functions/index.waitFor.html +2 -2
- package/docs/functions/index.waitSync.html +2 -2
- package/docs/index.html +2 -2
- package/docs/interfaces/index.ComparePropsOptions.html +3 -3
- package/docs/interfaces/index.GetMultipleSource.html +2 -2
- package/docs/interfaces/index.GetSource.html +2 -2
- package/docs/interfaces/index.IsNumericStringOptions.html +2 -2
- package/docs/interfaces/index.OccurencesOptions.html +2 -2
- package/docs/interfaces/index.SetImmutableSource.html +2 -2
- package/docs/interfaces/index.SetSource.html +2 -2
- package/docs/interfaces/index.ThrottleOptions.html +3 -3
- package/docs/interfaces/index.ThrottledFunctionExtras.html +3 -3
- package/docs/modules/index.html +7 -2
- package/docs/modules.html +2 -2
- package/docs/types/index.CustomDeserializers.html +1 -1
- package/docs/types/index.CustomSerializers.html +1 -1
- package/docs/types/index.Later.html +2 -2
- package/docs/types/index.MapValuesFn.html +2 -2
- package/docs/types/index.MatchCallback.html +1 -1
- package/docs/types/index.MergeTwo.html +2 -2
- package/docs/types/index.SeqEarlyBreaker.html +2 -2
- package/docs/types/index.SeqFn.html +2 -2
- package/docs/types/index.SeqFunctions.html +2 -2
- package/docs/types/index.SetImmutablePath.html +2 -2
- package/docs/types/index.ThrottledFunction.html +1 -1
- package/docs/variables/index.mapValuesUNSET.html +2 -2
- package/docs/variables/index.mergeUNSET.html +2 -2
- package/esm/deserialize.d.ts +1 -1
- package/esm/deserialize.d.ts.map +1 -1
- package/esm/deserialize.js +1 -1
- package/esm/deserialize.js.map +1 -1
- package/esm/index.d.ts +3 -0
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +3 -0
- package/esm/index.js.map +1 -1
- package/esm/race.d.ts.map +1 -1
- package/esm/race.js.map +1 -1
- package/esm/serialize.d.ts.map +1 -1
- package/esm/serialize.js.map +1 -1
- package/esm/serializeToBuffer/const.d.ts +10 -0
- package/esm/serializeToBuffer/const.d.ts.map +1 -0
- package/esm/serializeToBuffer/const.js +10 -0
- package/esm/serializeToBuffer/const.js.map +1 -0
- package/esm/serializeToBuffer/serializeToBuffer.d.ts +5 -0
- package/esm/serializeToBuffer/serializeToBuffer.d.ts.map +1 -0
- package/esm/serializeToBuffer/serializeToBuffer.js +36 -0
- package/esm/serializeToBuffer/serializeToBuffer.js.map +1 -0
- package/esm/serializeToBuffer/unserializeFromBuffer.d.ts +5 -0
- package/esm/serializeToBuffer/unserializeFromBuffer.d.ts.map +1 -0
- package/esm/serializeToBuffer/unserializeFromBuffer.js +48 -0
- package/esm/serializeToBuffer/unserializeFromBuffer.js.map +1 -0
- package/esm/sortBy.d.ts +1 -1
- package/esm/sortBy.d.ts.map +1 -1
- package/esm/sortBy.js +2 -7
- package/esm/sortBy.js.map +1 -1
- package/esm/sortByMultiple.d.ts +3 -0
- package/esm/sortByMultiple.d.ts.map +1 -0
- package/esm/sortByMultiple.js +15 -0
- package/esm/sortByMultiple.js.map +1 -0
- package/package.json +1 -1
- package/src/deserialize.ts +1 -1
- package/src/index.ts +3 -0
- package/src/race.ts +1 -0
- package/src/serialize.ts +1 -2
- package/src/serializeToBuffer/const.ts +16 -0
- package/src/serializeToBuffer/serialization.spec.ts +61 -0
- package/src/serializeToBuffer/serializeToBuffer.spec.ts +43 -0
- package/src/serializeToBuffer/serializeToBuffer.ts +90 -0
- package/src/serializeToBuffer/unserializeFromBuffer.spec.ts +63 -0
- package/src/serializeToBuffer/unserializeFromBuffer.ts +75 -0
- package/src/sortBy.spec.ts +13 -0
- package/src/sortBy.ts +11 -15
- package/src/sortByMultiple.spec.ts +87 -0
- package/src/sortByMultiple.ts +57 -0
package/esm/deserialize.js
CHANGED
|
@@ -35,5 +35,5 @@ const deserialize = (serializedString, customDeserializers) => {
|
|
|
35
35
|
const parsed = JSON.parse(serializedString, replacer);
|
|
36
36
|
return hasUndefined ? replaceDeep(parsed, UNDEFINED, undefined) : parsed;
|
|
37
37
|
};
|
|
38
|
-
export { deserialize };
|
|
38
|
+
export { deserialize, deserialize as unserialize };
|
|
39
39
|
//# sourceMappingURL=deserialize.js.map
|
package/esm/deserialize.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deserialize.js","sourceRoot":"","sources":["../src/deserialize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAI/C,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;AAsBtC,MAAM,WAAW,GAAG,CAAI,gBAAwB,EAAE,mBAAyC,EAAK,EAAE;IAC9F,IAAI,YAAY,GAAG,KAAK,CAAC;IACzB,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,KAAc,EAAE,EAAE;QAC9C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC5B,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBAEzB,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC1B,CAAC;YACD,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBAEzB,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAClC,CAAC;YACD,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBAEzB,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAClC,CAAC;YACD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACjB,YAAY,GAAG,IAAI,CAAC;gBACpB,OAAO,SAAS,CAAC;YACrB,CAAC;YACD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACjB,OAAO,IAAI,CAAC;YAChB,CAAC;YACD,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBAEzB,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;YAClC,CAAC;YAED,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC1C,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;YAC5C,IAAI,mBAAmB,IAAI,IAAI,IAAI,mBAAmB,EAAE,CAAC;gBACrD,OAAO,mBAAmB,CAAC,IAAI,CAAE,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC;YACvE,CAAC;YAED,MAAM,IAAI,KAAK,CAAC,0BAA0B,IAAI,EAAE,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,QAAQ,CAAM,CAAC;IAG3D,OAAO,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AAC7E,CAAC,CAAC;AAEF,OAAO,EAAE,WAAW,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"deserialize.js","sourceRoot":"","sources":["../src/deserialize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAI/C,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;AAsBtC,MAAM,WAAW,GAAG,CAAI,gBAAwB,EAAE,mBAAyC,EAAK,EAAE;IAC9F,IAAI,YAAY,GAAG,KAAK,CAAC;IACzB,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,KAAc,EAAE,EAAE;QAC9C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC5B,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBAEzB,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC1B,CAAC;YACD,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBAEzB,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAClC,CAAC;YACD,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBAEzB,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAClC,CAAC;YACD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACjB,YAAY,GAAG,IAAI,CAAC;gBACpB,OAAO,SAAS,CAAC;YACrB,CAAC;YACD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACjB,OAAO,IAAI,CAAC;YAChB,CAAC;YACD,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBAEzB,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;YAClC,CAAC;YAED,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC1C,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;YAC5C,IAAI,mBAAmB,IAAI,IAAI,IAAI,mBAAmB,EAAE,CAAC;gBACrD,OAAO,mBAAmB,CAAC,IAAI,CAAE,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC;YACvE,CAAC;YAED,MAAM,IAAI,KAAK,CAAC,0BAA0B,IAAI,EAAE,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,QAAQ,CAAM,CAAC;IAG3D,OAAO,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AAC7E,CAAC,CAAC;AAEF,OAAO,EAAE,WAAW,EAAE,WAAW,IAAI,WAAW,EAAE,CAAC"}
|
package/esm/index.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
export * from "./serializeToBuffer/serializeToBuffer.js";
|
|
2
|
+
export * from "./serializeToBuffer/unserializeFromBuffer.js";
|
|
1
3
|
export * from "./ensurePrefix.js";
|
|
2
4
|
export * from "./ensureSuffix.js";
|
|
3
5
|
export * from "./cap.js";
|
|
@@ -49,6 +51,7 @@ export * from "./set.js";
|
|
|
49
51
|
export * from "./setImmutable.js";
|
|
50
52
|
export * from "./shuffle.js";
|
|
51
53
|
export * from "./sortBy.js";
|
|
54
|
+
export * from "./sortByMultiple.js";
|
|
52
55
|
export * from "./sortProps.js";
|
|
53
56
|
export * from "./stripPrefix.js";
|
|
54
57
|
export * from "./stripSuffix.js";
|
package/esm/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,0CAA0C,CAAC;AACzD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC"}
|
package/esm/index.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
export * from "./serializeToBuffer/serializeToBuffer.js";
|
|
2
|
+
export * from "./serializeToBuffer/unserializeFromBuffer.js";
|
|
1
3
|
export * from "./ensurePrefix.js";
|
|
2
4
|
export * from "./ensureSuffix.js";
|
|
3
5
|
export * from "./cap.js";
|
|
@@ -49,6 +51,7 @@ export * from "./set.js";
|
|
|
49
51
|
export * from "./setImmutable.js";
|
|
50
52
|
export * from "./shuffle.js";
|
|
51
53
|
export * from "./sortBy.js";
|
|
54
|
+
export * from "./sortByMultiple.js";
|
|
52
55
|
export * from "./sortProps.js";
|
|
53
56
|
export * from "./stripPrefix.js";
|
|
54
57
|
export * from "./stripSuffix.js";
|
package/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,0CAA0C,CAAC;AACzD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC"}
|
package/esm/race.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"race.d.ts","sourceRoot":"","sources":["../src/race.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"race.d.ts","sourceRoot":"","sources":["../src/race.ts"],"names":[],"mappings":"AAeA,QAAA,MAAM,IAAI,GAAI,CAAC,EAAE,SAAS,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS,MAAM,EAAE,gBAAyB,KAAG,OAAO,CAAC,CAAC,CAQ3F,CAAC;AAEF,OAAO,EACH,IAAI,GACP,CAAC"}
|
package/esm/race.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"race.js","sourceRoot":"","sources":["../src/race.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"race.js","sourceRoot":"","sources":["../src/race.ts"],"names":[],"mappings":"AAeA,MAAM,IAAI,GAAG,CAAI,OAAmB,EAAE,OAAe,EAAE,OAAO,GAAG,eAAe,EAAc,EAAE;IAC5F,OAAO,OAAO,CAAC,IAAI,CAAC;QAChB,OAAO,EAAE,IAAI,OAAO,CAAI,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;YAClC,UAAU,CAAC,GAAG,EAAE;gBACZ,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;YAC/B,CAAC,EAAE,OAAO,CAAC,CAAC;QAChB,CAAC,CAAC;KACL,CAAC,CAAC;AACP,CAAC,CAAC;AAEF,OAAO,EACH,IAAI,GACP,CAAC"}
|
package/esm/serialize.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serialize.d.ts","sourceRoot":"","sources":["../src/serialize.ts"],"names":[],"mappings":"AAKA,KAAK,iBAAiB,GAAG;IACrB,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,IAAI,EAAE,OAAO,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAClD,CAAC,CAAC,EAAE,KAAK,CAAC;IACV,CAAC,CAAC,EAAE,KAAK,CAAC;IACV,CAAC,CAAC,EAAE,KAAK,CAAC;IACV,CAAC,CAAC,EAAE,KAAK,CAAC;IACV,CAAC,CAAC,EAAE,KAAK,CAAC;IACV,CAAC,CAAC,EAAE,KAAK,CAAC;CACb,CAAC;AAEF,KAAK,OAAO,GAAG;IACX,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;
|
|
1
|
+
{"version":3,"file":"serialize.d.ts","sourceRoot":"","sources":["../src/serialize.ts"],"names":[],"mappings":"AAKA,KAAK,iBAAiB,GAAG;IACrB,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,IAAI,EAAE,OAAO,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAClD,CAAC,CAAC,EAAE,KAAK,CAAC;IACV,CAAC,CAAC,EAAE,KAAK,CAAC;IACV,CAAC,CAAC,EAAE,KAAK,CAAC;IACV,CAAC,CAAC,EAAE,KAAK,CAAC;IACV,CAAC,CAAC,EAAE,KAAK,CAAC;IACV,CAAC,CAAC,EAAE,KAAK,CAAC;CACb,CAAC;AAEF,KAAK,OAAO,GAAG;IACX,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAmBF,QAAA,MAAM,SAAS,GAAI,MAAM,OAAO,EAAE,oBAAoB,iBAAiB,EAAE,UAAU,OAAO,WA4GzF,CAAC;AAEF,YAAY,EAAE,iBAAiB,EAAE,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,CAAC"}
|
package/esm/serialize.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serialize.js","sourceRoot":"","sources":["../src/serialize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"serialize.js","sourceRoot":"","sources":["../src/serialize.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
declare const BINARY_MARK_BIN = "t";
|
|
2
|
+
declare const BINARY_MARK_STRING = "f";
|
|
3
|
+
declare const BINARY_MARK_JSON = "j";
|
|
4
|
+
declare const BINARY_MARK_MAP: {
|
|
5
|
+
t: string;
|
|
6
|
+
f: string;
|
|
7
|
+
j: string;
|
|
8
|
+
};
|
|
9
|
+
export { BINARY_MARK_BIN, BINARY_MARK_STRING, BINARY_MARK_JSON, BINARY_MARK_MAP, };
|
|
10
|
+
//# sourceMappingURL=const.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"const.d.ts","sourceRoot":"","sources":["../../src/serializeToBuffer/const.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,eAAe,MAAM,CAAC;AAC5B,QAAA,MAAM,kBAAkB,MAAM,CAAC;AAC/B,QAAA,MAAM,gBAAgB,MAAM,CAAC;AAE7B,QAAA,MAAM,eAAe;;;;CAIpB,CAAC;AAEF,OAAO,EACH,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,GAClB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
const BINARY_MARK_BIN = "t";
|
|
2
|
+
const BINARY_MARK_STRING = "f";
|
|
3
|
+
const BINARY_MARK_JSON = "j";
|
|
4
|
+
const BINARY_MARK_MAP = {
|
|
5
|
+
[BINARY_MARK_BIN]: "binary",
|
|
6
|
+
[BINARY_MARK_STRING]: "string",
|
|
7
|
+
[BINARY_MARK_JSON]: "json",
|
|
8
|
+
};
|
|
9
|
+
export { BINARY_MARK_BIN, BINARY_MARK_STRING, BINARY_MARK_JSON, BINARY_MARK_MAP, };
|
|
10
|
+
//# sourceMappingURL=const.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"const.js","sourceRoot":"","sources":["../../src/serializeToBuffer/const.ts"],"names":[],"mappings":"AAAA,MAAM,eAAe,GAAG,GAAG,CAAC;AAC5B,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAC/B,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAE7B,MAAM,eAAe,GAAG;IACpB,CAAC,eAAe,CAAC,EAAE,QAAQ;IAC3B,CAAC,kBAAkB,CAAC,EAAE,QAAQ;IAC9B,CAAC,gBAAgB,CAAC,EAAE,MAAM;CAC7B,CAAC;AAEF,OAAO,EACH,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,GAClB,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { serialize } from "../serialize.js";
|
|
2
|
+
type SerializeArgs = Parameters<typeof serialize> extends [any, ...infer Rest] ? Rest : never;
|
|
3
|
+
declare const serializeToBuffer: (BufferImplementation: typeof Buffer, serializeArgs: SerializeArgs, ...args: unknown[]) => Buffer;
|
|
4
|
+
export { serializeToBuffer, };
|
|
5
|
+
//# sourceMappingURL=serializeToBuffer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serializeToBuffer.d.ts","sourceRoot":"","sources":["../../src/serializeToBuffer/serializeToBuffer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAI5C,KAAK,aAAa,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC;AAiC9F,QAAA,MAAM,iBAAiB,GACnB,sBAAsB,OAAO,MAAM,EAAE,eAAe,aAAa,EAAE,GAAG,MAAM,OAAO,EAAE,KACtF,MA8CF,CAAC;AAEF,OAAO,EACH,iBAAiB,GACpB,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { serialize } from "../serialize.js";
|
|
2
|
+
import { BINARY_MARK_BIN, BINARY_MARK_JSON, BINARY_MARK_STRING } from "./const.js";
|
|
3
|
+
const serializeToBuffer = (BufferImplementation, serializeArgs, ...args) => {
|
|
4
|
+
const separator = BufferImplementation.from([0x0]);
|
|
5
|
+
const convertedArgs = args.map((arg) => {
|
|
6
|
+
if (arg instanceof BufferImplementation) {
|
|
7
|
+
return {
|
|
8
|
+
mark: BINARY_MARK_BIN,
|
|
9
|
+
data: arg,
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
if (typeof arg === "string") {
|
|
13
|
+
return {
|
|
14
|
+
mark: BINARY_MARK_STRING,
|
|
15
|
+
data: arg,
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
return {
|
|
19
|
+
mark: BINARY_MARK_JSON,
|
|
20
|
+
data: serialize(arg, ...serializeArgs),
|
|
21
|
+
};
|
|
22
|
+
});
|
|
23
|
+
const dataToSend = [];
|
|
24
|
+
let totalLength = 0;
|
|
25
|
+
convertedArgs.forEach((arg) => {
|
|
26
|
+
const len = String(arg.data.length) + arg.mark;
|
|
27
|
+
dataToSend.push(BufferImplementation.from(len, "utf-8"));
|
|
28
|
+
dataToSend.push(separator);
|
|
29
|
+
dataToSend.push(arg.mark === BINARY_MARK_BIN ? arg.data : BufferImplementation.from(arg.data, "utf-8"));
|
|
30
|
+
dataToSend.push(separator);
|
|
31
|
+
totalLength += len.length + separator.length + arg.data.length + separator.length;
|
|
32
|
+
});
|
|
33
|
+
return BufferImplementation.concat(dataToSend, totalLength);
|
|
34
|
+
};
|
|
35
|
+
export { serializeToBuffer, };
|
|
36
|
+
//# sourceMappingURL=serializeToBuffer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serializeToBuffer.js","sourceRoot":"","sources":["../../src/serializeToBuffer/serializeToBuffer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAmCnF,MAAM,iBAAiB,GAAG,CACtB,oBAAmC,EAAE,aAA4B,EAAE,GAAG,IAAe,EAC/E,EAAE;IACR,MAAM,SAAS,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAYnD,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACnC,IAAI,GAAG,YAAY,oBAAoB,EAAE,CAAC;YACtC,OAAO;gBACH,IAAI,EAAE,eAAe;gBACrB,IAAI,EAAE,GAAG;aACO,CAAC;QACzB,CAAC;QACD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC1B,OAAO;gBACH,IAAI,EAAE,kBAAkB;gBACxB,IAAI,EAAE,GAAG;aACO,CAAC;QACzB,CAAC;QACD,OAAO;YACH,IAAI,EAAE,gBAAgB;YACtB,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,GAAG,aAAa,CAAC;SACtB,CAAC;IACzB,CAAC,CAAC,CAAC;IACH,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,aAAa,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QAC1B,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC;QAE/C,UAAU,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;QACzD,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAE3B,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;QACxG,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAE3B,WAAW,IAAI,GAAG,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;IACtF,CAAC,CAAC,CAAC;IAEH,OAAO,oBAAoB,CAAC,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;AAChE,CAAC,CAAC;AAEF,OAAO,EACH,iBAAiB,GACpB,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { deserialize } from "../deserialize.js";
|
|
2
|
+
type DeserializeArgs = Parameters<typeof deserialize> extends [any, ...infer Rest] ? Rest : never;
|
|
3
|
+
declare const unserializeFromBuffer: <RT extends any[] = unknown[]>(BufferImplementation: typeof Buffer, deserializeArgs: DeserializeArgs, rawData: Buffer | Uint8Array) => RT;
|
|
4
|
+
export { unserializeFromBuffer, unserializeFromBuffer as deserializeFromBuffer };
|
|
5
|
+
//# sourceMappingURL=unserializeFromBuffer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unserializeFromBuffer.d.ts","sourceRoot":"","sources":["../../src/serializeToBuffer/unserializeFromBuffer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAShD,KAAK,eAAe,GAAG,UAAU,CAAC,OAAO,WAAW,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC;AAWlG,QAAA,MAAM,qBAAqB,GAAI,EAAE,SAAS,GAAG,EAAE,GAAG,OAAO,EAAE,EACvD,sBAAsB,OAAO,MAAM,EAAE,iBAAiB,eAAe,EAAE,SAAS,MAAM,GAAG,UAAU,KACpG,EAkDF,CAAC;AAEF,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,IAAI,qBAAqB,EAAE,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { deserialize } from "../deserialize.js";
|
|
2
|
+
import { BINARY_MARK_BIN, BINARY_MARK_MAP, BINARY_MARK_STRING } from "./const.js";
|
|
3
|
+
const MAX_DATA_PARTS = 4;
|
|
4
|
+
const NOT_FOUND = -1;
|
|
5
|
+
const LAST_CHAR = -1;
|
|
6
|
+
const unserializeFromBuffer = (BufferImplementation, deserializeArgs, rawData) => {
|
|
7
|
+
const intData = rawData instanceof Uint8Array ? rawData : new Uint8Array(rawData);
|
|
8
|
+
if (intData.length === 0) {
|
|
9
|
+
throw new Error("No data to unserialize");
|
|
10
|
+
}
|
|
11
|
+
let startPoint = 0;
|
|
12
|
+
const result = [];
|
|
13
|
+
let i = 0;
|
|
14
|
+
while (i++ < MAX_DATA_PARTS) {
|
|
15
|
+
const dataSplitPoint = intData.indexOf(0, startPoint);
|
|
16
|
+
if (dataSplitPoint === NOT_FOUND) {
|
|
17
|
+
break;
|
|
18
|
+
}
|
|
19
|
+
const lengthBytes = BufferImplementation.from(intData.slice(startPoint, dataSplitPoint)).toString("utf8");
|
|
20
|
+
const binaryMark = lengthBytes.slice(LAST_CHAR);
|
|
21
|
+
if (!Object.keys(BINARY_MARK_MAP).includes(binaryMark)) {
|
|
22
|
+
throw new Error(`Invalid binary mark: ${binaryMark}`);
|
|
23
|
+
}
|
|
24
|
+
const len = Number(lengthBytes.slice(0, lengthBytes.length - 1));
|
|
25
|
+
const dataStringFrom = dataSplitPoint + 1;
|
|
26
|
+
const dataStringTo = dataStringFrom + len;
|
|
27
|
+
const dataBytes = intData.slice(dataStringFrom, dataStringTo);
|
|
28
|
+
if (binaryMark === BINARY_MARK_BIN) {
|
|
29
|
+
result.push(dataBytes);
|
|
30
|
+
}
|
|
31
|
+
else if (binaryMark === BINARY_MARK_STRING) {
|
|
32
|
+
const stringData = BufferImplementation.from(dataBytes).toString("utf8");
|
|
33
|
+
result.push(stringData);
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
const stringData = BufferImplementation.from(dataBytes).toString("utf8");
|
|
37
|
+
const jsonData = deserialize(stringData, ...deserializeArgs);
|
|
38
|
+
result.push(jsonData);
|
|
39
|
+
}
|
|
40
|
+
startPoint = dataStringTo + 1;
|
|
41
|
+
}
|
|
42
|
+
if (result.length === 0) {
|
|
43
|
+
throw new Error("No data found (no split points)");
|
|
44
|
+
}
|
|
45
|
+
return result;
|
|
46
|
+
};
|
|
47
|
+
export { unserializeFromBuffer, unserializeFromBuffer as deserializeFromBuffer };
|
|
48
|
+
//# sourceMappingURL=unserializeFromBuffer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unserializeFromBuffer.js","sourceRoot":"","sources":["../../src/serializeToBuffer/unserializeFromBuffer.ts"],"names":[],"mappings":"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"}
|
package/esm/sortBy.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
declare const sortBy: <T
|
|
1
|
+
declare const sortBy: <T extends Record<string | number | symbol, any>>(propertyName: keyof T, asc?: boolean, defaultValue?: unknown) => (a: T, b: T) => number;
|
|
2
2
|
export { sortBy, };
|
|
3
3
|
//# sourceMappingURL=sortBy.d.ts.map
|
package/esm/sortBy.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sortBy.d.ts","sourceRoot":"","sources":["../src/sortBy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sortBy.d.ts","sourceRoot":"","sources":["../src/sortBy.ts"],"names":[],"mappings":"AAUA,QAAA,MAAM,MAAM,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,EAC3D,cAAc,MAAM,CAAC,EAAE,aAAU,EAAE,eAAc,OAAc,MAC7D,GAAG,CAAC,EAAE,GAAG,CAAC,WAGf,CAAC;AAEF,OAAO,EACH,MAAM,GACT,CAAC"}
|
package/esm/sortBy.js
CHANGED
|
@@ -1,11 +1,6 @@
|
|
|
1
|
+
import { sortByMultiple } from "./sortByMultiple.js";
|
|
1
2
|
const sortBy = (propertyName, asc = true, defaultValue = null) => (a, b) => {
|
|
2
|
-
|
|
3
|
-
return 0;
|
|
4
|
-
}
|
|
5
|
-
if ((a[propertyName] ?? defaultValue) > (b[propertyName] ?? defaultValue)) {
|
|
6
|
-
return asc ? 1 : -1;
|
|
7
|
-
}
|
|
8
|
-
return asc ? -1 : 1;
|
|
3
|
+
return sortByMultiple([propertyName], asc, { [propertyName]: defaultValue })(a, b);
|
|
9
4
|
};
|
|
10
5
|
export { sortBy, };
|
|
11
6
|
//# sourceMappingURL=sortBy.js.map
|
package/esm/sortBy.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sortBy.js","sourceRoot":"","sources":["../src/sortBy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sortBy.js","sourceRoot":"","sources":["../src/sortBy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAUrD,MAAM,MAAM,GAAG,CACX,YAAqB,EAAE,GAAG,GAAG,IAAI,EAAE,eAAwB,IAAI,EACjE,EAAE,CAAC,CAAC,CAAI,EAAE,CAAI,EAAE,EAAE;IAEhB,OAAO,cAAc,CAAC,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,YAAY,CAAC,EAAE,YAAY,EAAmC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACxH,CAAC,CAAC;AAEF,OAAO,EACH,MAAM,GACT,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
declare const sortByMultiple: <T extends Record<string | number | symbol, any>, K extends (keyof T)[]>(propertyNames: K, ascending?: boolean | Record<K[number], boolean>, defaultValues?: Partial<Record<K[number], any>>) => ((a: T, b: T) => number);
|
|
2
|
+
export { sortByMultiple, };
|
|
3
|
+
//# sourceMappingURL=sortByMultiple.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sortByMultiple.d.ts","sourceRoot":"","sources":["../src/sortByMultiple.ts"],"names":[],"mappings":"AA2BA,QAAA,MAAM,cAAc,GAEhB,CAAC,SAAS,MAAM,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,EAC/C,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,EAErB,eAAe,CAAC,EAChB,YAAW,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,CAAQ,EAEtD,gBAAgB,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,KAChD,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,MAAM,CAgBzB,CAAC;AAEF,OAAO,EACH,cAAc,GACjB,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
const sortByMultiple = (propertyNames, ascending = true, defaultValues) => (a, b) => {
|
|
2
|
+
for (const propertyName of propertyNames) {
|
|
3
|
+
const asc = typeof ascending === "boolean" ? ascending : (ascending[propertyName] ?? true);
|
|
4
|
+
const aBiggerValue = asc ? 1 : -1;
|
|
5
|
+
const bBiggerValue = asc ? -1 : 1;
|
|
6
|
+
const aValue = a[propertyName] ?? defaultValues?.[propertyName];
|
|
7
|
+
const bValue = b[propertyName] ?? defaultValues?.[propertyName];
|
|
8
|
+
if (aValue !== bValue) {
|
|
9
|
+
return (aValue > bValue ? aBiggerValue : bBiggerValue);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
return 0;
|
|
13
|
+
};
|
|
14
|
+
export { sortByMultiple, };
|
|
15
|
+
//# sourceMappingURL=sortByMultiple.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sortByMultiple.js","sourceRoot":"","sources":["../src/sortByMultiple.ts"],"names":[],"mappings":"AA2BA,MAAM,cAAc,GAAG,CAKnB,aAAgB,EAChB,YAAkD,IAAI,EAEtD,aAA+C,EACvB,EAAE,CAAC,CAAC,CAAI,EAAE,CAAI,EAAE,EAAE;IAC1C,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;QAEvC,MAAM,GAAG,GAAG,OAAO,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,CAAC;QAC3F,MAAM,YAAY,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,YAAY,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAElC,MAAM,MAAM,GAAG,CAAC,CAAC,YAAY,CAAC,IAAI,aAAa,EAAE,CAAC,YAAY,CAAC,CAAC;QAChE,MAAM,MAAM,GAAG,CAAC,CAAC,YAAY,CAAC,IAAI,aAAa,EAAE,CAAC,YAAY,CAAC,CAAC;QAEhE,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YAEpB,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;QAC3D,CAAC;IACL,CAAC;IACD,OAAO,CAAC,CAAC;AACb,CAAC,CAAC;AAEF,OAAO,EACH,cAAc,GACjB,CAAC"}
|
package/package.json
CHANGED
package/src/deserialize.ts
CHANGED
|
@@ -69,6 +69,6 @@ const deserialize = <T>(serializedString: string, customDeserializers?: CustomDe
|
|
|
69
69
|
return hasUndefined ? replaceDeep(parsed, UNDEFINED, undefined) : parsed;
|
|
70
70
|
};
|
|
71
71
|
|
|
72
|
-
export { deserialize };
|
|
72
|
+
export { deserialize, deserialize as unserialize };
|
|
73
73
|
|
|
74
74
|
export type { CustomDeserializers };
|
package/src/index.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
/* eslint-disable import/max-dependencies */
|
|
2
|
+
export * from "./serializeToBuffer/serializeToBuffer.js";
|
|
3
|
+
export * from "./serializeToBuffer/unserializeFromBuffer.js";
|
|
2
4
|
export * from "./ensurePrefix.js";
|
|
3
5
|
export * from "./ensureSuffix.js";
|
|
4
6
|
export * from "./cap.js";
|
|
@@ -50,6 +52,7 @@ export * from "./set.js";
|
|
|
50
52
|
export * from "./setImmutable.js";
|
|
51
53
|
export * from "./shuffle.js";
|
|
52
54
|
export * from "./sortBy.js";
|
|
55
|
+
export * from "./sortByMultiple.js";
|
|
53
56
|
export * from "./sortProps.js";
|
|
54
57
|
export * from "./stripPrefix.js";
|
|
55
58
|
export * from "./stripSuffix.js";
|
package/src/race.ts
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
* type Data = { a: number };
|
|
8
8
|
* const myPromise = new Promise<Data>((resolve) => setTimeout(() => resolve({ a: 1 }), 2000));
|
|
9
9
|
* const { a } = await race(myPromise, 1000); // You're allowed to destructure the result with TS
|
|
10
|
+
* ```
|
|
10
11
|
*
|
|
11
12
|
* @param promise - Your promise
|
|
12
13
|
* @param timeout - Time in milliseconds to wait for the promise to resolve
|
package/src/serialize.ts
CHANGED
|
@@ -23,8 +23,7 @@ type Options = {
|
|
|
23
23
|
*
|
|
24
24
|
* It also supports custom serializers, which can be used to serialize custom data types. Each value has a prefix which
|
|
25
25
|
* specifies the type of the value, custom serializers is a map of these prefixes to functions which can serialize the
|
|
26
|
-
* value into a string.
|
|
27
|
-
* `toJSON` it won't trigger custom serializer but will be serialized as string. `Date` class defines `toJSON` method!
|
|
26
|
+
* value into a string.
|
|
28
27
|
*
|
|
29
28
|
* The extra aim of this function is to produce the same output for "the same" data, regardless of the order of the keys
|
|
30
29
|
* (which is not guaranteed by JS spec, but in practice it is guaranteed by current implementations of all JS engines),
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
const BINARY_MARK_BIN = "t";
|
|
2
|
+
const BINARY_MARK_STRING = "f";
|
|
3
|
+
const BINARY_MARK_JSON = "j";
|
|
4
|
+
|
|
5
|
+
const BINARY_MARK_MAP = {
|
|
6
|
+
[BINARY_MARK_BIN]: "binary",
|
|
7
|
+
[BINARY_MARK_STRING]: "string",
|
|
8
|
+
[BINARY_MARK_JSON]: "json",
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
export {
|
|
12
|
+
BINARY_MARK_BIN,
|
|
13
|
+
BINARY_MARK_STRING,
|
|
14
|
+
BINARY_MARK_JSON,
|
|
15
|
+
BINARY_MARK_MAP,
|
|
16
|
+
};
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import must from "must"; // eslint-disable-line @typescript-eslint/no-shadow
|
|
2
|
+
|
|
3
|
+
import { unserializeFromBuffer } from "./unserializeFromBuffer";
|
|
4
|
+
import { serializeToBuffer } from "./serializeToBuffer";
|
|
5
|
+
|
|
6
|
+
const serialize = serializeToBuffer.bind(null, Buffer, []);
|
|
7
|
+
const unserialize = unserializeFromBuffer.bind(null, Buffer, []);
|
|
8
|
+
|
|
9
|
+
describe("serialization", () => {
|
|
10
|
+
it("serializes basic string", async () => {
|
|
11
|
+
const data = ["TEST"];
|
|
12
|
+
must(unserialize(serialize(...data))).eql(data);
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
it("serializes json", async () => {
|
|
16
|
+
const data = [
|
|
17
|
+
{ a: 1, b: 2 },
|
|
18
|
+
];
|
|
19
|
+
must(unserialize(serialize(...data))).eql(data);
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
it("serializes multiple data", async () => {
|
|
23
|
+
const data = [
|
|
24
|
+
"hey",
|
|
25
|
+
3,
|
|
26
|
+
{ a: 1 },
|
|
27
|
+
Buffer.from("test"),
|
|
28
|
+
];
|
|
29
|
+
const result = unserialize(serialize(...data));
|
|
30
|
+
const buffer = result.pop() as Buffer;
|
|
31
|
+
must(result).eql(data.slice(0, 3));
|
|
32
|
+
must(buffer).be.instanceof(Buffer);
|
|
33
|
+
must(buffer.toString()).equal("test");
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
it("serializes undefined", async () => {
|
|
37
|
+
const data = [undefined];
|
|
38
|
+
const result = unserialize(serialize(...data));
|
|
39
|
+
must(result).have.length(1);
|
|
40
|
+
must(result[0]).be.undefined();
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
it("serializes JSON-looking string", async () => {
|
|
44
|
+
const data = [`"TEST"`];
|
|
45
|
+
must(unserialize(serialize(...data))).eql(data);
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
it("serializes huge object", async () => {
|
|
49
|
+
const data = [{
|
|
50
|
+
a: 1,
|
|
51
|
+
b: false,
|
|
52
|
+
c: true,
|
|
53
|
+
d: "test",
|
|
54
|
+
e: null,
|
|
55
|
+
f: undefined,
|
|
56
|
+
g: [1, 2, 3],
|
|
57
|
+
h: { a: 1, b: [2] },
|
|
58
|
+
}];
|
|
59
|
+
must(unserialize(serialize(...data))).eql(data);
|
|
60
|
+
});
|
|
61
|
+
});
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import must from "must"; // eslint-disable-line @typescript-eslint/no-shadow
|
|
2
|
+
|
|
3
|
+
import { serializeToBuffer } from "./serializeToBuffer";
|
|
4
|
+
|
|
5
|
+
const serialize = serializeToBuffer.bind(null, Buffer, []);
|
|
6
|
+
|
|
7
|
+
describe("serialize", () => {
|
|
8
|
+
it("serializes basic string", async () => {
|
|
9
|
+
// len 4, type string, data "test", separator
|
|
10
|
+
must(serialize("test").toString("hex")).equal("3466007465737400");
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
it("serializes multiple strings", async () => {
|
|
14
|
+
// len 4, type string, data "test", separator
|
|
15
|
+
must(serialize("test", "test").toString("hex")).equal("34660074657374003466007465737400");
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
it("serializes basic buffer", async () => {
|
|
19
|
+
// len 4, type bin, data "test", separator
|
|
20
|
+
must(serialize(Buffer.from("test")).toString("hex")).equal("3474007465737400");
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
it("serializes both buffer and string", async () => {
|
|
24
|
+
// len 4, type bin, data "test", separator, len 4, bin false, data "test", separator
|
|
25
|
+
must(serialize(Buffer.from("test"), "test").toString("hex")).equal("34740074657374003466007465737400");
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
it("serializes JSON-looking string", async () => {
|
|
29
|
+
// len 6, type string, data "test", separator
|
|
30
|
+
must(serialize(`"test"`).toString("hex")).equal("36660022746573742200");
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
it("serializes JSON-serialized string", async () => {
|
|
34
|
+
// len 8, type string, data "test", separator
|
|
35
|
+
must(serialize(`"s:test"`).toString("hex")).equal("38660022733a746573742200");
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
it("serializes number", async () => {
|
|
39
|
+
// len 5, type json, data "n:1", separator
|
|
40
|
+
must(serialize(1).toString("hex")).equal("356a00226e3a312200");
|
|
41
|
+
});
|
|
42
|
+
// TODO more tests
|
|
43
|
+
});
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { serialize } from "../serialize.js";
|
|
2
|
+
|
|
3
|
+
import { BINARY_MARK_BIN, BINARY_MARK_JSON, BINARY_MARK_STRING } from "./const.js";
|
|
4
|
+
|
|
5
|
+
type SerializeArgs = Parameters<typeof serialize> extends [any, ...infer Rest] ? Rest : never; // eslint-disable-line @typescript-eslint/no-explicit-any
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Serialize any data to a Buffer, useful when working with web sockets or other binary protocols.
|
|
9
|
+
* Make sure to understand how {@link serialize} works before using this function.
|
|
10
|
+
*
|
|
11
|
+
* To make this function work in browsers it accepts a BufferImplementation parameter.
|
|
12
|
+
* To make the serialization customizable it accepts a serializeArgs parameter.
|
|
13
|
+
* It's therefore recommended to first prepare the function with bind, like:
|
|
14
|
+
* @example
|
|
15
|
+
* ```ts
|
|
16
|
+
* import { serializeToBuffer as serializeRaw } from "@ezez/utils";
|
|
17
|
+
* import { Buffer } from "buffer/"; // skip import in Node.js
|
|
18
|
+
*
|
|
19
|
+
* // prepare the function:
|
|
20
|
+
* const serializeToBuffer = serializeRaw.bind(null, Buffer, []); // array is customization params for serialize
|
|
21
|
+
*
|
|
22
|
+
* const serialized = serializeToBuffer("test", 1, { test: "test" });
|
|
23
|
+
* ```
|
|
24
|
+
*
|
|
25
|
+
* Otherwise pass the params each time:
|
|
26
|
+
* ```typescript
|
|
27
|
+
* import { serializeToBuffer as serializeRaw } from "@ezez/utils";
|
|
28
|
+
* const serialized = serializeToBuffer(Buffer, [], "test", 1, { test: "test" });
|
|
29
|
+
* const otherSerialized = serializeToBuffer(Buffer, [], any, other, data);
|
|
30
|
+
* ```
|
|
31
|
+
* @param BufferImplementation - Buffer implementation, in browsers use `buffer` npm package
|
|
32
|
+
* and import it from `buffer/`, in Node.js simply pass `Buffer`.
|
|
33
|
+
* @param serializeArgs - [customSerializers, options] - optional arguments if you need to serialize custom data types,
|
|
34
|
+
* see: {@link serialize}
|
|
35
|
+
* @param args - any data to serialize, can be a Buffer, string or any other data type
|
|
36
|
+
* @returns Buffer - serialized data
|
|
37
|
+
*/
|
|
38
|
+
const serializeToBuffer = (
|
|
39
|
+
BufferImplementation: typeof Buffer, serializeArgs: SerializeArgs, ...args: unknown[]
|
|
40
|
+
): Buffer => {
|
|
41
|
+
const separator = BufferImplementation.from([0x0]);
|
|
42
|
+
type DataType = {
|
|
43
|
+
mark: typeof BINARY_MARK_BIN;
|
|
44
|
+
data: Buffer;
|
|
45
|
+
} | {
|
|
46
|
+
mark: typeof BINARY_MARK_STRING;
|
|
47
|
+
data: string;
|
|
48
|
+
} | {
|
|
49
|
+
mark: typeof BINARY_MARK_JSON;
|
|
50
|
+
data: unknown;
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
const convertedArgs = args.map((arg) => {
|
|
54
|
+
if (arg instanceof BufferImplementation) {
|
|
55
|
+
return {
|
|
56
|
+
mark: BINARY_MARK_BIN,
|
|
57
|
+
data: arg,
|
|
58
|
+
} satisfies DataType;
|
|
59
|
+
}
|
|
60
|
+
if (typeof arg === "string") {
|
|
61
|
+
return {
|
|
62
|
+
mark: BINARY_MARK_STRING,
|
|
63
|
+
data: arg,
|
|
64
|
+
} satisfies DataType;
|
|
65
|
+
}
|
|
66
|
+
return {
|
|
67
|
+
mark: BINARY_MARK_JSON,
|
|
68
|
+
data: serialize(arg, ...serializeArgs),
|
|
69
|
+
} satisfies DataType;
|
|
70
|
+
});
|
|
71
|
+
const dataToSend: Buffer[] = [];
|
|
72
|
+
let totalLength = 0;
|
|
73
|
+
convertedArgs.forEach((arg) => {
|
|
74
|
+
const len = String(arg.data.length) + arg.mark;
|
|
75
|
+
|
|
76
|
+
dataToSend.push(BufferImplementation.from(len, "utf-8"));
|
|
77
|
+
dataToSend.push(separator);
|
|
78
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
|
79
|
+
dataToSend.push(arg.mark === BINARY_MARK_BIN ? arg.data : BufferImplementation.from(arg.data, "utf-8"));
|
|
80
|
+
dataToSend.push(separator);
|
|
81
|
+
|
|
82
|
+
totalLength += len.length + separator.length + arg.data.length + separator.length;
|
|
83
|
+
});
|
|
84
|
+
|
|
85
|
+
return BufferImplementation.concat(dataToSend, totalLength);
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
export {
|
|
89
|
+
serializeToBuffer,
|
|
90
|
+
};
|