Add "{To,From} EBCDIC" operations
This adds operations + "To EBCDIC" + "From EBCDIC" This makes use of the npm codepage package but it is not installed as a dependency. Instead I used the `make.sh` script to export pages 37 and 500. To my knowledge there is no way currently to only import individual code pages from the npm package (hence the included script). If we were to import the package directly it increases the build size by 2.7MB.
This commit is contained in:
1 parent
31e5d785fe
commit
3c15bd9e29
5 files changed
+662
No files matched your search
@@ -1,3 +1,4 @@
|
||||
import cptable from "../lib/codepage.js";
|
||||
import Utils from "../Utils.js";
|
||||
import CryptoJS from "crypto-js";
|
||||
|
||||
@@ -45,6 +46,52 @@ const CharEnc = {
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
*
|
||||
* @author tlwr [toby@toby.codes]
|
||||
*
|
||||
* @constant
|
||||
* @default
|
||||
*/
|
||||
EBCDIC_CODEPAGES_MAPPING: {
|
||||
"IBM EBCDIC International": 500,
|
||||
"IBM EBCDIC US-Canada": 37,
|
||||
},
|
||||
|
||||
/**
|
||||
* To EBCDIC operation.
|
||||
*
|
||||
* @author tlwr [toby@toby.codes]
|
||||
*
|
||||
* @param {string} input
|
||||
* @param {Object[]} args
|
||||
* @returns {byteArray}
|
||||
*/
|
||||
runToEBCDIC: function(input, args) {
|
||||
let pageNum = CharEnc.EBCDIC_CODEPAGES_MAPPING[args[0]];
|
||||
|
||||
let output = cptable.utils.encode(pageNum, input);
|
||||
|
||||
return Array.from(output);
|
||||
},
|
||||
|
||||
/**
|
||||
* From EBCDIC operation.
|
||||
*
|
||||
* @author tlwr [toby@toby.codes]
|
||||
*
|
||||
* @param {byteArray} input
|
||||
* @param {Object[]} args
|
||||
* @returns {string}
|
||||
*/
|
||||
runFromEBCDIC: function(input, args) {
|
||||
let pageNum = CharEnc.EBCDIC_CODEPAGES_MAPPING[args[0]];
|
||||
|
||||
let output = cptable.utils.decode(pageNum, input);
|
||||
|
||||
return output;
|
||||
},
|
||||
|
||||
};
|
||||
|
||||
export default CharEnc;
|
||||
Reference in new issue
Block a user