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

Obsidian v3 #175

Draft
wants to merge 38 commits into
base: master
Choose a base branch
from
Draft

Obsidian v3 #175

wants to merge 38 commits into from

Conversation

guyca
Copy link
Collaborator

@guyca guyca commented Sep 9, 2024

Road to v3

  • Upgrade to TypeScript 5.5
  • Upgrade to ESLint 9.9
  • Stop using legacy decorators implementation - remove experimentalDecorators ts config flag. This will probably require changing @babel/plugin-proposal-decorators to "version": "2023-11" instead of legacy.
  • Export lower case decorators to align with the naming convention
  • Export capitalized decorators as well to reduce breaking changes
  • Deprecate capitalized decorators and remove them in v4
  • Remove dependency on reflect-metadata
  • Transformer should support both capital and lower cased decorators
  • global isn't available in browsers
  • Don't use decorators in the library since node modules aren't transformed
  • Backwards compatibility with .eslintrc files

Docs

  • Update installation guide
  • Switch to lower case decorators in v3 docs
  • Migration guide

@guyca guyca marked this pull request as draft September 18, 2024 07:23
# Conflicts:
#	packages/eslint-plugin-obsidian/package.json
#	packages/react-obsidian/package.json
#	yarn.lock
By default Babel doesn't transform node modules. By using a decorator this meant we had to add Obsidian to the transform ignore list
…Inject bug

Apparently there was a bug that caused Obsidian to ignore custom names passed to @Inject and @LateInject decorators
Decorating constructor arguments isn't officially supported so for now we won't support this case.
# Conflicts:
#	packages/documentation/docs/documentation/usage/Graphs.mdx
#	packages/eslint-plugin-obsidian/package.json
#	packages/react-obsidian/.eslintrc.json
#	packages/react-obsidian/package.json
#	packages/react-obsidian/src/decorators/inject/Injectable.ts
#	packages/react-obsidian/src/graph/ObjectGraph.ts
#	packages/react-obsidian/src/graph/registry/GraphRegistry.ts
#	packages/react-obsidian/src/injectors/components/InjectComponent.ts
#	packages/react-obsidian/test/integration/classInjection.test.tsx
#	yarn.lock
# Conflicts:
#	packages/eslint-plugin-obsidian/package.json
#	packages/eslint-plugin-obsidian/src/rules/unresolvedProviderDependencies/dependencyResolver.ts
#	packages/react-obsidian/package.json
#	yarn.lock
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.

1 participant