diff --git a/libraries/no-data-view/src/int16.ts b/libraries/no-data-view/src/int16.ts index 6e0c5e9c..732a9a26 100644 --- a/libraries/no-data-view/src/int16.ts +++ b/libraries/no-data-view/src/int16.ts @@ -1,3 +1,4 @@ +/* #__NO_SIDE_EFFECTS__ */ export function getInt16LittleEndian( buffer: Uint8Array, offset: number, @@ -5,10 +6,12 @@ export function getInt16LittleEndian( return ((buffer[offset]! | (buffer[offset + 1]! << 8)) << 16) >> 16; } +/* #__NO_SIDE_EFFECTS__ */ export function getInt16BigEndian(buffer: Uint8Array, offset: number): number { return (((buffer[offset]! << 8) | buffer[offset + 1]!) << 16) >> 16; } +/* #__NO_SIDE_EFFECTS__ */ export function getInt16( buffer: Uint8Array, offset: number, @@ -19,6 +22,7 @@ export function getInt16( : (((buffer[offset]! << 8) | buffer[offset + 1]!) << 16) >> 16; } +/* #__NO_SIDE_EFFECTS__ */ export function setInt16LittleEndian( buffer: Uint8Array, offset: number, diff --git a/libraries/no-data-view/src/int32.ts b/libraries/no-data-view/src/int32.ts index 1bf897ad..3157f4a1 100644 --- a/libraries/no-data-view/src/int32.ts +++ b/libraries/no-data-view/src/int32.ts @@ -1,3 +1,4 @@ +/* #__NO_SIDE_EFFECTS__ */ export function getInt32LittleEndian( buffer: Uint8Array, offset: number, @@ -10,6 +11,7 @@ export function getInt32LittleEndian( ); } +/* #__NO_SIDE_EFFECTS__ */ export function getInt32BigEndian(buffer: Uint8Array, offset: number): number { return ( (buffer[offset]! << 24) | @@ -19,6 +21,7 @@ export function getInt32BigEndian(buffer: Uint8Array, offset: number): number { ); } +/* #__NO_SIDE_EFFECTS__ */ export function getInt32( buffer: Uint8Array, offset: number, diff --git a/libraries/no-data-view/src/int64.ts b/libraries/no-data-view/src/int64.ts index 209f8843..8d630d9e 100644 --- a/libraries/no-data-view/src/int64.ts +++ b/libraries/no-data-view/src/int64.ts @@ -1,3 +1,4 @@ +/* #__NO_SIDE_EFFECTS__ */ export function getInt64LittleEndian( buffer: Uint8Array, offset: number, @@ -14,6 +15,7 @@ export function getInt64LittleEndian( ); } +/* #__NO_SIDE_EFFECTS__ */ export function getInt64BigEndian(buffer: Uint8Array, offset: number): bigint { return ( (BigInt(buffer[offset]! << 24) << 32n) | @@ -27,6 +29,7 @@ export function getInt64BigEndian(buffer: Uint8Array, offset: number): bigint { ); } +/* #__NO_SIDE_EFFECTS__ */ export function getInt64( buffer: Uint8Array, offset: number, diff --git a/libraries/no-data-view/src/int8.ts b/libraries/no-data-view/src/int8.ts index 1423240a..9f72bf4f 100644 --- a/libraries/no-data-view/src/int8.ts +++ b/libraries/no-data-view/src/int8.ts @@ -1,3 +1,4 @@ +/* #__NO_SIDE_EFFECTS__ */ export function getInt8(buffer: Uint8Array, offset: number): number { return (buffer[offset]! << 24) >> 24; } diff --git a/libraries/no-data-view/src/uint16.ts b/libraries/no-data-view/src/uint16.ts index a67e1943..6caa7342 100644 --- a/libraries/no-data-view/src/uint16.ts +++ b/libraries/no-data-view/src/uint16.ts @@ -1,3 +1,4 @@ +/* #__NO_SIDE_EFFECTS__ */ export function getUint16LittleEndian( buffer: Uint8Array, offset: number, @@ -5,10 +6,12 @@ export function getUint16LittleEndian( return buffer[offset]! | (buffer[offset + 1]! << 8); } +/* #__NO_SIDE_EFFECTS__ */ export function getUint16BigEndian(buffer: Uint8Array, offset: number): number { return (buffer[offset]! << 8) | buffer[offset + 1]!; } +/* #__NO_SIDE_EFFECTS__ */ export function getUint16( buffer: Uint8Array, offset: number, diff --git a/libraries/no-data-view/src/uint32.ts b/libraries/no-data-view/src/uint32.ts index c7250556..eb52445c 100644 --- a/libraries/no-data-view/src/uint32.ts +++ b/libraries/no-data-view/src/uint32.ts @@ -1,3 +1,4 @@ +/* #__NO_SIDE_EFFECTS__ */ export function getUint32LittleEndian( buffer: Uint8Array, offset: number, @@ -11,6 +12,7 @@ export function getUint32LittleEndian( ); } +/* #__NO_SIDE_EFFECTS__ */ export function getUint32BigEndian(buffer: Uint8Array, offset: number): number { return ( ((buffer[offset]! << 24) | @@ -21,6 +23,7 @@ export function getUint32BigEndian(buffer: Uint8Array, offset: number): number { ); } +/* #__NO_SIDE_EFFECTS__ */ export function getUint32( buffer: Uint8Array, offset: number, diff --git a/libraries/struct/src/number.ts b/libraries/struct/src/number.ts index 8514a05d..1eea6d5e 100644 --- a/libraries/struct/src/number.ts +++ b/libraries/struct/src/number.ts @@ -23,19 +23,18 @@ export interface NumberField extends Field { /* #__NO_SIDE_EFFECTS__ */ function factory( - fn: NumberField, size: number, serialize: Field["serialize"], deserialize: Field["deserialize"], ) { + const fn: NumberField = (() => fn) as never; fn.size = size; fn.serialize = serialize; fn.deserialize = deserialize; + return fn; } -export const u8: NumberField = (() => u8) as never; -factory( - u8, +export const u8: NumberField = factory( 1, (value, { buffer, index }) => { buffer[index] = value; @@ -46,9 +45,7 @@ factory( }), ); -export const s8: NumberField = (() => s8) as never; -factory( - s8, +export const s8: NumberField = factory( 1, (value, { buffer, index }) => { buffer[index] = value; @@ -59,9 +56,7 @@ factory( }), ); -export const u16: NumberField = (() => u16) as never; -factory( - u16, +export const u16: NumberField = factory( 2, (value, { buffer, index, littleEndian }) => { setUint16(buffer, index, value, littleEndian); @@ -72,9 +67,7 @@ factory( }), ); -export const s16: NumberField = (() => u16) as never; -factory( - s16, +export const s16: NumberField = factory( 2, (value, { buffer, index, littleEndian }) => { setInt16(buffer, index, value, littleEndian); @@ -85,9 +78,7 @@ factory( }), ); -export const u32: NumberField = (() => u32) as never; -factory( - u32, +export const u32: NumberField = factory( 4, (value, { buffer, index, littleEndian }) => { setUint32(buffer, index, value, littleEndian); @@ -98,9 +89,7 @@ factory( }), ); -export const s32: NumberField = (() => s32) as never; -factory( - s32, +export const s32: NumberField = factory( 4, (value, { buffer, index, littleEndian }) => { setInt32(buffer, index, value, littleEndian); @@ -111,9 +100,7 @@ factory( }), ); -export const u64: NumberField = (() => u64) as never; -factory( - u64, +export const u64: NumberField = factory( 8, (value, { buffer, index, littleEndian }) => { setUint64(buffer, index, value, littleEndian); @@ -124,9 +111,7 @@ factory( }), ); -export const s64: NumberField = (() => u64) as never; -factory( - s64, +export const s64: NumberField = factory( 8, (value, { buffer, index, littleEndian }) => { setInt64(buffer, index, value, littleEndian); diff --git a/toolchain/side-effect-test/package.json b/toolchain/side-effect-test/package.json index 1122f284..b307028c 100644 --- a/toolchain/side-effect-test/package.json +++ b/toolchain/side-effect-test/package.json @@ -5,7 +5,7 @@ "description": "", "main": "index.js", "scripts": { - "start": "rollup -c rollup.config.ts --configPlugin @rollup/plugin-typescript" + "start": "rollup -c rollup.config.ts --configPlugin @rollup/plugin-typescript --watch" }, "keywords": [], "author": "", diff --git a/toolchain/side-effect-test/rollup.config.ts b/toolchain/side-effect-test/rollup.config.ts index 429e2e29..8bd1be31 100644 --- a/toolchain/side-effect-test/rollup.config.ts +++ b/toolchain/side-effect-test/rollup.config.ts @@ -1,5 +1,4 @@ import node from "@rollup/plugin-node-resolve"; -import terser from "@rollup/plugin-terser"; import typescript from "@rollup/plugin-typescript"; import { defineConfig } from "rollup"; @@ -14,11 +13,11 @@ export default defineConfig({ plugins: [ typescript(), node(), - terser({ - module: true, - format: { - beautify: true, - }, - }), + // terser({ + // module: true, + // format: { + // beautify: true, + // }, + // }), ], });