Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: v2 release changeset files #93

Merged
merged 1 commit into from
Oct 19, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .changeset/config.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,5 @@
"access": "restricted",
"baseBranch": "main",
"updateInternalDependencies": "patch",
"ignore": ["@sample/*"]
"ignore": ["@basic/*", "@endpoints/*"]
}
6 changes: 6 additions & 0 deletions .changeset/healthy-cobras-sell.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
"@squide/webpack-module-federation": major
---

- The devserver error overlay is now disabled by default for the remote modules to prevent them from stacking on top of the host application error overlay.
- Remote modules `register` functions can now be `async`.
30 changes: 30 additions & 0 deletions .changeset/kind-papayas-walk.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
---
"@squide/msw": major
---

This is a new package to help with [Mock Service Worker](https://mswjs.io/) in a federated application.

It helps to register their request handlers:

**In module:**

```ts
const mswPlugin = getMswPlugin(runtime);
mswPlugin.registerRequestHandlers(requestHandlers);
```

**In the host app:**

```ts
import("../mocks/browser.ts").then(({ startMsw }) => {
startMsw(mswPlugin.requestHandlers);

setMswAsStarted();
});
```

And offer an utility to wait for MSW to be started before rendering the app:

```ts
const isMswStarted = useIsMswStarted(process.env.USE_MSW);
```
19 changes: 19 additions & 0 deletions .changeset/loud-ways-laugh.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
---
"@squide/core": major
---

### Addition

- Added support for plugins to Squide runtime.
- Added a `parentName` option to `registerRoute`.

### Updated

- The `layoutPath` option of `registerRoute` has been renamed to `parentPath`.
- `registerNavigationItems` has been renamed to `registerNavigationItem` and now only accepts a single item by call.
- A navigation item `label`, `additionalProps` and `priority` fields has been renamed to `$label`, `$additionalProps` and `$priority`. This is part of an effort to ensure no future release of [React Router](https://reactrouter.com/en/main) introduced new properties with names that are conflicting with Squide.
- Local modules `register` function can now be `async`. This is useful if you want for example to conditionally to a dynamic `import` to load a dependency such as [msw](https://www.npmjs.com/package/msw).

### Removed

- Removed the Service features at it was confusing and not that helpful. We recommend using React context instead to share services with the modules.
90 changes: 90 additions & 0 deletions .changeset/stale-birds-attend.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
---
"@squide/react-router": major
---

### Addition

- Added the `$visibility` field to the `Route` type. This new field indicates that the route doesn't depend on the initial global data (authenticated data) and can be rendered before that data is loaded. The accepted values are `public` and `protected`. By default, every route is `protected`.
- Added the `$name` field to the `Route` type. This new field allow a nested route to be named so other routes can be configured to be nested under this route with the `parentName` option.
- Added a `ManagedRoutes` placeholder, allowing the application to indicates where managed routes should be rendered. A managed route is a route that is neither hoisted or nested with a `parentPath` or `parentName` option.
- Added the `useRouteMatch` and `useIsRouteMatchProtected` hooks.

### Updated

- `registerRoutes` has been renamed to `registerRoute` and now only accepts a single route by call.
- Moved the `hoist` option from the route definition to an option of `registerRoute`.

Before:

```tsx
registerRoute({
hoist: true,
path: "/foo",
element: <div>Foo</div>
});
```

After:

```tsx
registerRoute({
path: "/foo",
element: <div>Foo</div>
}, {
hoist: true,
});
```

- Route indexes are now created for nested routes registered in a single block. Given the following registration block:

```tsx
runtime.registerRoutes([
{
path: "/root",
element: <div>Hello</div>,
children: [
{
path: "/root/another-level",
element: <div>You!</div>,
children: [
{
path: "/root/another-level/deeply-nested-route",
element: <div>Hello from nested!</div>
}
]
}
]
}
]);
```

Before the changes, only an index for the `"/root"` route would have been created. This means that consumers could add nested routes under `"/root"` route with the `parentPath` option but couldn't nest routes under the `"/root/another-level"` and `"/root/another-level/deeply-nested-route"` with the `parentPath` option because there was no indexes for these routes.

Now the following is possible:

```tsx
runtime.registerRoutes(
[
{
path: "/foo",
element: <div>Hello</div>
}
],
{ parentPath: "/root/another-level" }
);

runtime.registerRoutes(
[
{
path: "/foo",
element: <div>Hello</div>
}
],
{ parentPath: "/root/another-level/deeply-nested-route" }
);
```

### Removed

- The `RootRoute` has been removed, there's now only a single `Route` type.
- The `useHoistedRoutes` has been removed. Hoisting is now supported by default with the `hoist` option of the `registerRoute` function and the `ManagedRoutes` placeholder.