Skip to content

Commit

Permalink
chore: v2 release (#93)
Browse files Browse the repository at this point in the history
  • Loading branch information
patricklafrance authored Oct 19, 2023
1 parent 86d0885 commit d66a196
Show file tree
Hide file tree
Showing 5 changed files with 146 additions and 1 deletion.
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.

0 comments on commit d66a196

Please sign in to comment.