FrederickEngelhardt

FrederickEngelhardt

Mobile and Web Developer specializing in React Native, React, and Node ecosystems.

Member Since 4 years ago

J.B. Hunt, Virtualize LLC, Portland, OR

Experience Points
13
follower
Lessons Completed
5
follow
Lessons Completed
96
stars
Best Reply Awards
83
repos

224 contributions in the last year

Pinned
⚡ Color picker component for IOS/Android
⚡ PNG screenshot diff library for react-native
⚡ A React Native component for drawing by touching on both iOS and Android.
⚡ MistyTalks, a localhost server that connect Misty Robotics's robot to the internet and let's it "talk"
⚡ GraphQL apollo Local state POC & wix navigation for a react-native
⚡ Drawing App that allows people to join and create cool art!
Activity
Jan
21
1 day ago
Activity icon
issue

FrederickEngelhardt issue facebook/metro

FrederickEngelhardt
FrederickEngelhardt

metro resolving package.json main for extraNodeModules appended with src path

Do you want to request a feature or report a bug? This may be a feature request or a bug depending on capabilities of metro.

What is the current behavior? Currently when resolving a local node_module, metro bundler will resolve the package.json's "main" file. This occurs even when overriding the module path with extraNodeModules.

Example package.json

{
 "name": "@external/module-2",
 "main": "dist"
}

metro-config.js

 extraNodeModules: {
    "@external/module-2": "/FULL_PATH/TO_MODULE/app/module-2/src"
  }

Appending SRC to the end of this external module does not overwrite the "main" file.

For my use case, I need module-2 to be resolved with the app/module-2/src/index.ts file in development environments VS prod environments it would be app/module-2/dist/index.ts (uses the main package.json location)

If the current behavior is a bug, please provide the steps to reproduce and a minimal repository on GitHub that we can yarn install and yarn test.

What is the expected behavior? Expecting to be able to override "main" found in package.json and point to an index.js file in a different directory.

Please provide your exact Metro configuration and mention your Metro, node, yarn/npm version and operating system. yarn 1.22.5 node 12.20.2 metro 0.58.0

Jan
17
5 days ago
Jan
11
1 week ago
Activity icon
issue

FrederickEngelhardt issue mekanism/Mekanism

FrederickEngelhardt
FrederickEngelhardt

[1.18.x] How to build the repo documentation and resolving third-party dependencies error

Issue description

Hi all,

I attempted to build 1.18.x to test but was unable to build it. Running into an error with ./gradlew not being able to resolve third party dependencies.

I have java 17 on a macos. Curious if there are steps missing and/or if documentation needs to be updated on build process.

Also, is this issue because the dependencies do not exist for 1.18.x for some of these libs (or need to be manually built locally)?

Example

Cause 2: org.gradle.internal.resolve.ModuleVersionNotFoundException: Could not find ilikewoodxbiomesoplenty:ilikewoodxbiomesoplenty-1.18.1:7.1.0.
Searched in the following locations:

Steps to reproduce

  1. brew install --cask temurin
  2. set java home to java 17 path. JAVA_HOME=/Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home
  3. Clone the mekanism repo.
  4. Run ./gradlew build
  5. Errors with dependencies not being resolved in gradle caches.

Minecraft version

1.16.5 (Latest)

Forge version

39.0.14

Mekanism version

Current Dev Branch (Manually Compiled)

Other relevant versions

No response

If a (crash)log is relevant for this issue, link it here: (It's almost always relevant)

No response

Nov
29
1 month ago
Activity icon
issue

FrederickEngelhardt issue comment wix/react-native-navigation

FrederickEngelhardt
FrederickEngelhardt

How do you add/remove components to the bottomTabs children without rerendering all children

Is there a way to efficiently update the BottomTabs component tree without causing the other tabs to rerender?

Example you click a button and add a new item to the tabs. So far the only way I'm seeing is to use setRoot. But that causes my previously mounted components to reset. Also the large the number of tabs the higher change the app crashes.

This question is related to my post here.

Is there a way to update the BottomTabs but not cause all tabs to rerender (ie using setRoot)?

FrederickEngelhardt
FrederickEngelhardt

I have, the issue is that whenever I add a new tab the previous tabs will all refresh. onSwitchToTab would solve the memory issue of having too many tabs loaded on a app refresh, but not when adding new tabs.

Example use case:

  1. User clicks addTab button
  2. Add tab regenerates all previously mounted bottomTabs with Navigation.setRoot. All components are remounted. This causes all user session progress in each tab to effectively be reset. Session progress would have to be saved across tabs.

My hope is there is a way to have a method to add,replace,remove a bottomTab without regenerating all components. Example tabs.push(ID) or tabs.remove(ID)

Nov
25
1 month ago
Activity icon
issue

FrederickEngelhardt issue wix/react-native-navigation

FrederickEngelhardt
FrederickEngelhardt

How do you add more components to bottomTabs?

Is there a way to efficiently update the BottomTabs component tree without causing the other tabs to rerender?

Example you click a button and add a new item to the tabs. So far the only way I'm seeing is to use setRoot. But that causes my previously mounted components to reset. Also the large the number of tabs the higher change the app crashes.

This question is related to my post here.

Is there a way to update the BottomTabs but not cause all tabs to rerender (ie using setRoot)?

Nov
21
2 months ago
Nov
18
2 months ago
Activity icon
issue

FrederickEngelhardt issue kevva/download

FrederickEngelhardt
FrederickEngelhardt

RangeError: Invalid string length with stream

When using a stream the response attempts to check the size. For files larger than 4GB this creates an error.

RangeError: Invalid string length
    at Array.join (<anonymous>)
    at PassThrough.stream.getBufferedValue (/root/servers/file-queue-server/node_modules/download/node_modules/get-stream/buffer-stream.)
    at /root/servers/file-queue-server/node_modules/download/node_modules/get-stream/index.js:44:23
    at runMicrotasks (<anonymous>)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at async Promise.all (index 0)

Is this a limitation of the download library? The download file still downloads but the error is always thrown at > 99% of the download. Is there a config option to disable this buffer size check?

Sample of how I'm downloading a file.

const file = createWriteStream(filePath, {})
const dl = download(url)

The file can download. Tested with files ranging from 50mb >= 100GB the error will always occur for files >4GB due to it attempting to compute a buffer larger than the maximum safe memory.

Nov
16
2 months ago
Activity icon
issue

FrederickEngelhardt issue sindresorhus/get-stream

FrederickEngelhardt
FrederickEngelhardt

range error thrown when using createWriteStream()

Hi, I'm running a file queue service that uses 'child_process'.createWriteStream().

For files much larger than the JS callstack this library consistently throws the error

RangeError [ERR_OUT_OF_RANGE]: The value of "length" is out of range. It must be >= 0 && <= 4294967296. Received 10_100_604_616

Is there a way to prevent this error from throwing?

Oct
27
2 months ago