Skip to content

Dependency cleanup/syntax modernisation #11854

@43081j

Description

@43081j

Fairly low priority I imagine, but there are various dependency clean ups and code modernisations we can do in this repo.

I already opened a couple of PRs but want a tracking issue to add some context/discussion.

Here are my suggestions:

Dependencies

Dependency Used by Replace with Notes
chalk wrangler, create-cloudflare, cli styleText (native) or picocolors miniflare uses kleur, so could make sense to settle on that or move miniflare to also use styleText/picocolors
execa wrangler, create-cloudflare tinyexec #12369
strip-ansi wrangler, vite-plugin-cloudflare stripVTControlCharacters (native) #11853
find-up tools, workers-utils, wrangler empathic #12601
glob tools, pages-shared, create-cloudflare tinyglobby vite-plugin-cloudflare already uses tinyglobby
rimraf workflows-shared, miniflare, wrangler, pages-shared, workers-shared premove #11913
@typescript-eslint/eslint-plugin various Remove #11906

These replacements are what the e18e community recommend (see here). The modules being replaced are generally much larger, slower, and/or outdated.

I can explain each one if needed, just let me know 👍

Syntax (modernisation/perf)

FYI I used the e18e ESLint plugin to find a bunch of these (in case you want a way to reproduce the findings etc).

Old syntax New syntax Notes
arr[arr.length - 1] arr.at(-1)
[...arr].map(mapper) Array.from(arr, mapper) Avoids an intermediate array being allocated
str.match(regex) regex.test(str) In conditional logic, to avoid an unused match array

For these, we could run eslint --fix with the e18e plugin enabled to auto-fix them. There's various occurrences but not a huge amount so it'd be easily reviewable.


Let me know if there's any interest in any of these. I and others would be happy to contribute the changes if you give the go-ahead.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    Status

    Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions