Removed treatAsUTF8 option

This commit is contained in:
n1474335 2023-01-13 14:38:50 +00:00
parent 4e512a9a7b
commit e9d7a8363c
9 changed files with 24 additions and 42 deletions

View File

@ -41,8 +41,7 @@ class Chef {
log.debug("Chef baking"); log.debug("Chef baking");
const startTime = Date.now(), const startTime = Date.now(),
recipe = new Recipe(recipeConfig), recipe = new Recipe(recipeConfig),
containsFc = recipe.containsFlowControl(), containsFc = recipe.containsFlowControl();
notUTF8 = options && "treatAsUtf8" in options && !options.treatAsUtf8;
let error = false, let error = false,
progress = 0; progress = 0;
@ -75,7 +74,7 @@ class Chef {
return { return {
dish: rawDish, dish: rawDish,
result: await this.dish.get(returnType, notUTF8), result: await this.dish.get(returnType),
type: Dish.enumLookup(this.dish.type), type: Dish.enumLookup(this.dish.type),
progress: progress, progress: progress,
duration: Date.now() - startTime, duration: Date.now() - startTime,

View File

@ -128,10 +128,9 @@ class Dish {
* If running in a browser, get is asynchronous. * If running in a browser, get is asynchronous.
* *
* @param {number} type - The data type of value, see Dish enums. * @param {number} type - The data type of value, see Dish enums.
* @param {boolean} [notUTF8=false] - Do not treat strings as UTF8.
* @returns {* | Promise} - (Browser) A promise | (Node) value of dish in given type * @returns {* | Promise} - (Browser) A promise | (Node) value of dish in given type
*/ */
get(type, notUTF8=false) { get(type) {
if (typeof type === "string") { if (typeof type === "string") {
type = Dish.typeEnum(type); type = Dish.typeEnum(type);
} }
@ -140,13 +139,13 @@ class Dish {
// Node environment => _translate is sync // Node environment => _translate is sync
if (isNodeEnvironment()) { if (isNodeEnvironment()) {
this._translate(type, notUTF8); this._translate(type);
return this.value; return this.value;
// Browser environment => _translate is async // Browser environment => _translate is async
} else { } else {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
this._translate(type, notUTF8) this._translate(type)
.then(() => { .then(() => {
resolve(this.value); resolve(this.value);
}) })
@ -190,12 +189,11 @@ class Dish {
* @Node * @Node
* *
* @param {number} type - The data type of value, see Dish enums. * @param {number} type - The data type of value, see Dish enums.
* @param {boolean} [notUTF8=false] - Do not treat strings as UTF8.
* @returns {Dish | Promise} - (Browser) A promise | (Node) value of dish in given type * @returns {Dish | Promise} - (Browser) A promise | (Node) value of dish in given type
*/ */
presentAs(type, notUTF8=false) { presentAs(type) {
const clone = this.clone(); const clone = this.clone();
return clone.get(type, notUTF8); return clone.get(type);
} }
@ -414,17 +412,16 @@ class Dish {
* If running in the browser, _translate is asynchronous. * If running in the browser, _translate is asynchronous.
* *
* @param {number} toType - The data type of value, see Dish enums. * @param {number} toType - The data type of value, see Dish enums.
* @param {boolean} [notUTF8=false] - Do not treat strings as UTF8.
* @returns {Promise || undefined} * @returns {Promise || undefined}
*/ */
_translate(toType, notUTF8=false) { _translate(toType) {
log.debug(`Translating Dish from ${Dish.enumLookup(this.type)} to ${Dish.enumLookup(toType)}`); log.debug(`Translating Dish from ${Dish.enumLookup(this.type)} to ${Dish.enumLookup(toType)}`);
// Node environment => translate is sync // Node environment => translate is sync
if (isNodeEnvironment()) { if (isNodeEnvironment()) {
this._toArrayBuffer(); this._toArrayBuffer();
this.type = Dish.ARRAY_BUFFER; this.type = Dish.ARRAY_BUFFER;
this._fromArrayBuffer(toType, notUTF8); this._fromArrayBuffer(toType);
// Browser environment => translate is async // Browser environment => translate is async
} else { } else {
@ -486,18 +483,17 @@ class Dish {
* Convert this.value to the given type from ArrayBuffer * Convert this.value to the given type from ArrayBuffer
* *
* @param {number} toType - the Dish enum to convert to * @param {number} toType - the Dish enum to convert to
* @param {boolean} [notUTF8=false] - Do not treat strings as UTF8.
*/ */
_fromArrayBuffer(toType, notUTF8) { _fromArrayBuffer(toType) {
// Using 'bind' here to allow this.value to be mutated within translation functions // Using 'bind' here to allow this.value to be mutated within translation functions
const toTypeFunctions = { const toTypeFunctions = {
[Dish.STRING]: () => DishString.fromArrayBuffer.bind(this)(notUTF8), [Dish.STRING]: () => DishString.fromArrayBuffer.bind(this)(),
[Dish.NUMBER]: () => DishNumber.fromArrayBuffer.bind(this)(notUTF8), [Dish.NUMBER]: () => DishNumber.fromArrayBuffer.bind(this)(),
[Dish.HTML]: () => DishHTML.fromArrayBuffer.bind(this)(notUTF8), [Dish.HTML]: () => DishHTML.fromArrayBuffer.bind(this)(),
[Dish.ARRAY_BUFFER]: () => {}, [Dish.ARRAY_BUFFER]: () => {},
[Dish.BIG_NUMBER]: () => DishBigNumber.fromArrayBuffer.bind(this)(notUTF8), [Dish.BIG_NUMBER]: () => DishBigNumber.fromArrayBuffer.bind(this)(),
[Dish.JSON]: () => DishJSON.fromArrayBuffer.bind(this)(notUTF8), [Dish.JSON]: () => DishJSON.fromArrayBuffer.bind(this)(),
[Dish.FILE]: () => DishFile.fromArrayBuffer.bind(this)(), [Dish.FILE]: () => DishFile.fromArrayBuffer.bind(this)(),
[Dish.LIST_FILE]: () => DishListFile.fromArrayBuffer.bind(this)(), [Dish.LIST_FILE]: () => DishListFile.fromArrayBuffer.bind(this)(),
[Dish.BYTE_ARRAY]: () => DishByteArray.fromArrayBuffer.bind(this)(), [Dish.BYTE_ARRAY]: () => DishByteArray.fromArrayBuffer.bind(this)(),

View File

@ -24,12 +24,11 @@ class DishBigNumber extends DishType {
/** /**
* convert the given value from a ArrayBuffer * convert the given value from a ArrayBuffer
* @param {boolean} notUTF8
*/ */
static fromArrayBuffer(notUTF8) { static fromArrayBuffer() {
DishBigNumber.checkForValue(this.value); DishBigNumber.checkForValue(this.value);
try { try {
this.value = new BigNumber(Utils.arrayBufferToStr(this.value, !notUTF8)); this.value = new BigNumber(Utils.arrayBufferToStr(this.value));
} catch (err) { } catch (err) {
this.value = new BigNumber(NaN); this.value = new BigNumber(NaN);
} }

View File

@ -22,11 +22,10 @@ class DishJSON extends DishType {
/** /**
* convert the given value from a ArrayBuffer * convert the given value from a ArrayBuffer
* @param {boolean} notUTF8
*/ */
static fromArrayBuffer(notUTF8) { static fromArrayBuffer() {
DishJSON.checkForValue(this.value); DishJSON.checkForValue(this.value);
this.value = JSON.parse(Utils.arrayBufferToStr(this.value, !notUTF8)); this.value = JSON.parse(Utils.arrayBufferToStr(this.value));
} }
} }

View File

@ -23,11 +23,10 @@ class DishNumber extends DishType {
/** /**
* convert the given value from a ArrayBuffer * convert the given value from a ArrayBuffer
* @param {boolean} notUTF8
*/ */
static fromArrayBuffer(notUTF8) { static fromArrayBuffer() {
DishNumber.checkForValue(this.value); DishNumber.checkForValue(this.value);
this.value = this.value ? parseFloat(Utils.arrayBufferToStr(this.value, !notUTF8)) : 0; this.value = this.value ? parseFloat(Utils.arrayBufferToStr(this.value)) : 0;
} }
} }

View File

@ -23,11 +23,10 @@ class DishString extends DishType {
/** /**
* convert the given value from a ArrayBuffer * convert the given value from a ArrayBuffer
* @param {boolean} notUTF8
*/ */
static fromArrayBuffer(notUTF8) { static fromArrayBuffer() {
DishString.checkForValue(this.value); DishString.checkForValue(this.value);
this.value = this.value ? Utils.arrayBufferToStr(this.value, !notUTF8) : ""; this.value = this.value ? Utils.arrayBufferToStr(this.value) : "";
} }
} }

View File

@ -29,9 +29,8 @@ class DishType {
/** /**
* convert the given value from a ArrayBuffer * convert the given value from a ArrayBuffer
* @param {boolean} notUTF8
*/ */
static fromArrayBuffer(notUTF8=undefined) { static fromArrayBuffer() {
throw new Error("fromArrayBuffer has not been implemented"); throw new Error("fromArrayBuffer has not been implemented");
} }
} }

View File

@ -483,13 +483,6 @@
</label> </label>
</div> </div>
<div class="checkbox option-item">
<label for="treatAsUtf8">
<input type="checkbox" option="treatAsUtf8" id="treatAsUtf8" checked>
Treat output as UTF-8 if possible
</label>
</div>
<div class="checkbox option-item"> <div class="checkbox option-item">
<label for="wordWrap"> <label for="wordWrap">
<input type="checkbox" option="wordWrap" id="wordWrap" checked> <input type="checkbox" option="wordWrap" id="wordWrap" checked>

View File

@ -42,7 +42,6 @@ function main() {
const defaultOptions = { const defaultOptions = {
updateUrl: true, updateUrl: true,
showHighlighter: true, showHighlighter: true,
treatAsUtf8: true,
wordWrap: true, wordWrap: true,
showErrors: true, showErrors: true,
errorTimeout: 4000, errorTimeout: 4000,