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

feat: Disable FS backend when user provides one #930

Merged
merged 5 commits into from
Feb 21, 2021
Merged

feat: Disable FS backend when user provides one #930

merged 5 commits into from
Feb 21, 2021

Conversation

filipesmedeiros
Copy link
Contributor

One thing to note is that it seemed necessary to make the changes to the way we handle the passing of the config to the client.
Next cannot serialize stuff like functions, so we cannot return everything and assume it's serializable, especially the use array and the backend prop (with the props inside).
The way this was done now requires the user to pass the same config to appWithTranslation that they pass to serverSideTranslations. This is kind of repetitive and limiting (same client side config for the whole app). We could allow the user the to pass a function that decides what config to use based on the current page, but that seems troublesome.

Let me know what you think!

@LeonardDrs
Copy link
Contributor

Tried this modification on my app, it works really well.
Dunno if you've seen my edit to this comment but I didn't had to pass the configuration myself to serverSideTranslations and the sprintf-postProcessor worked just fine in SSG/SSR

@filipesmedeiros
Copy link
Contributor Author

Your comment, doesn't it mean you gotta have next-i18next.config.js inside src? Or was it outside?

@LeonardDrs
Copy link
Contributor

LeonardDrs commented Feb 5, 2021

Outside, next-i18next.config.js is right beside package.json and next.config.js at the root of the project

@filipesmedeiros
Copy link
Contributor Author

filipesmedeiros commented Feb 21, 2021

I will rebase this with the branch with the new changes @isaachinman just merged

@isaachinman
Copy link
Contributor

Sounds good, thanks!

@@ -8,7 +8,9 @@ export default (config: InternalConfig): CreateClientReturn => {
let initPromise: InitPromise

if (!instance.isInitialized) {
instance.use(i18nextFSBackend)
const hasCustomBackend = config?.use?.some((b) => b.type === 'backend')
if (!hasCustomBackend)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's use curly braces here, please.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure thing!

types.d.ts Outdated
@@ -23,6 +23,7 @@ export type UserConfig = {
use?: any[]
} & InitOptions


Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shouldn't be necessary.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My bad, removed

@isaachinman isaachinman merged commit 9ea7373 into i18next:next-v10 Feb 21, 2021
isaachinman added a commit that referenced this pull request Feb 24, 2021
* Core changes to support NextJs v10

* Add default config file reading functionality

* Reimplement hoistNonReactStatics

* Update dependencies

* Strip out tests and unnecessary dependencies

* Fix linting setup

* Upgrade core dependencies

* Migrate config options to mirror NextJs

* v8.0.0-beta.0

* Remove deprecated config options and types

* Update example lockfile

* Remove need for locales and defaultLocale entirely

* Update example to use hooks

* Add documentation

* v8.0.0-beta.1

* Add NodeJs v14 to CircleCI

* Create serverSideTranslations.d.ts

* v8.0.0-beta.2

* fix: TS issues for v8-beta (#922)

* fix: export appWithTranslation type

also changed AppWithTranslation type: param is a React Component, not a React Component instance

* chore: remove unused NextI18Next exports

* fix: run-example prod script by adding the build step before it

* v8.0.0-beta.3

* fix: Remove server side code from client bundle (#926)

* Remove static dir entirely

* v8.0.0-beta.4

* feat: Add an ESM entry point to allow better bundle optimizations (#937)

* Add an ESM entry point to allow better tree-shaking & module concatenation

* Include ie11

* fix: added Trans to TS definition v8-beta (#951)

* added Trans to types

* fix: removed unused typess

* refactor: Use serialize-javascript (#954)

* refactor: Use NextJs i18n config API (#955)

* test: Add tests for config and consoleMessage (#956)

* test: Add coverage for createClient (#957)

* refactor: Update eslint config (#958)

* refactor: Update eslint config

* Fix lint

* test: Add e2e coverage via Cypress (#959)

* feat: Disable FS backend when user provides one (#930)

* feat: Disable FS backend when user provides one

* fixup! feat: Disable FS backend when user provides one

* fixup! feat: Disable FS backend when user provides one

* fixup! feat: Disable FS backend when user provides one

* test: Add test coverage to appWithTranslation and serverSideTranslations (#960)

* docs: Update README (#961)

* v8.0.0-beta.5

* docs: Update README (#962)

* v8.0.0-beta.6

* chore: Update example lockfile (#964)

* chore: Update example lockfile

* Update package.json

* fix: Deep merge options.backend, closes #848 (#849)

* fix: Make create-config defaultFile use localeStructure (#966)

use @cescoallegrini modifications from
#934

* Update README.md

Co-authored-by: Léonard Drouillas <[email protected]>

* chore: Lint examples dir (#969)

* fix: Add server side loading of fallbackLng (#970)

* refactor: Remove i18next-http-backend (#971)

* refactor: Remove i18next-http-backend

* Update config.yml

* Update basic.e2e.ts

* refactor: Add react-i18next useSuspense (#973)

* docs: Update README (#975)

* refactor: Add typeof window check to createConfig (#976)

* refactor: Remove serialize-javascript and add configOverride to appWithTranslation (#972)

* refactor: Remove serialize-javascript and add configOverride to appWithTranslation

* Add serializeConfig option

* Add docs

* Update README.md

* docs: Update README (#977)

* Update peerDependencies and version

Co-authored-by: Francesco Moro <[email protected]>
Co-authored-by: Felix Mosheev <[email protected]>
Co-authored-by: Tobias Koller <[email protected]>
Co-authored-by: Filipe Medeiros <[email protected]>
Co-authored-by: Léonard Drouillas <[email protected]>
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.

3 participants