Skip to content

Conversation

@TomStrepsil
Copy link
Contributor

@TomStrepsil TomStrepsil commented Oct 21, 2025

Issue

resolves #46

Details

Provide an example, within the expressjs harness, demonstrating a filesystem convention (enabled by #54) whereby features exist as parallel filesystems that "patch" modules on the mainline.

Include variations of:

  • files containing only constants
  • css modules
  • redux slices
    • all of the above use an objectProxyTogglePoint using an Proxy to retarget access to appropriate variations at access-time
  • react components
    • uses the default toggle point from the react-pointcuts package
  • redux reducer maps
    • a basic higher-order function toggle point, reliant on a getReducerMap factory function as the control

...to demonstrate potential toggle point configuration for these. The README.md for the example explains further.

To demonstrate the use of valtio (previously only mentioned in passing in the features package docs), this is used to make a reactive features store on the browser.

Scout Rule

  • convert deprecated unstable_config_lookup_from_file to v10_config_lookup_from_file now that its stable awaiting next major version.
  • upgrade eslint to 9.38.0
  • change the "config example" to use "I am" rather than "I'm" after a weird playwright failure with the "large config" example that no longer rendered the html entity for the apostrophe properly. Not gonna fight it.
  • update @playwright/test to 1.56.0

Screenshots

image

3x button click:
image

change to "feature 1":
image

2x button click:
image

change to "feature 2":
image

click "⛓️‍💥"
image

change to "feature 3":
image

4x button click:
image

change to "feature 4":
image

reload, with "feature2" header, then change to "feature 5":
image

CheckList

  • PR starts with [ISSUE_ID].
  • Has been tested (where required) before merge to main.

TomStrepsil and others added 30 commits December 24, 2024 17:31
* rename to proper module namespace

* update docs links

* update versions

* web toggle point in readme title

* fixup changelog from revised 0.x range

* 2.0.0 -> 0.5.0 in oss version scheme

* fix broken link syntax in CHANGELOG

* consistent quoting

* more version history issues

* fixup module name in jsdoc

* add web
remove sdkInstanceProvider

* remove SDKInstanceProvider

* fixup jsdoc dedupe

* tweak

* clarity re: ssr package

* casing etc
* update workflows

* version

* typo

* update chromium linux snaps

* versions for serve update

* package.json repository field

* update root package.lock

* bugs & directories/doc fields

* fix changelog

---------

Co-authored-by: Tom Pereira <[email protected]>
move reducer replacement to a provider, rather than a toggle side-effect
@TomStrepsil TomStrepsil requested a review from a team as a code owner October 21, 2025 18:43
@TomStrepsil TomStrepsil marked this pull request as draft October 22, 2025 06:36
@TomStrepsil TomStrepsil marked this pull request as ready for review October 23, 2025 10:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

How to handle large, multi-directory changes

1 participant