forked from modrinth/code
-
Notifications
You must be signed in to change notification settings - Fork 9
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
Migrate from modrinth/theseus to modrinth/code #24
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
* WIP rules update * Update * Run fix * Entirely unnecessary * Address comments
* Fix Convertion for Avatar component * Use ref for img
improve dropdown transitions
Fix clicking edges of clickable elements
add snappingPoints to slider
Bump version to 0.4.41
Small button refactor, overflow and popout menus
This commit enables TypeScript support in Omorphia. It reconfigures Vite, adds two new TSConfig files as a replacement for the old JSConfig, adds TypeScript linting to ESLint configuration. Why? ==== TypeScript has became a standard in modern web development. In makes JavaScript a more type-safe language, makes code more maintaible and boosts effeciency by empowering development tools. What's included in this commit? =============================== TypeScript config files ----------------------- Old and plain JSConfig has been replaced with two TSConfigs: one designed for the code, and the other for the Vite configuration file. JavaScript support is still enabled, therefore TypeScript files can import JavaScript files as well, and vice versa. However, it is recommended that all the new files will be written in TypeScript, and old files are slowly converted over to TypeScript, so this option can be disabled in the future, making this a safe TypeScript only project. UMD output is replaced with CJS ------------------------------- UMD is an old format that tries to stay compatible with both the Node.js CJS, as well as Require.js. However, nowadays almost everyone is using a transpiler where this format won't be beneficial. To avoid it being a breaking change, it has been replaced with CJS. But in the future it's worth considering removing CJS output as well and making Omorphia an ESM module only, as it's designed only to be consumed by the Modrinth project, and all of these projects are already ESM-first. Minification is disabled ------------------------ Because this is a library, the responsibility of minifying its code lies solely on the consumer. Just like with CJS, all of the supported consumers of this library are already performing minification, so minifying this library beforehand is rather wasteful and harmful, as it negatively impacts debugging experience. More dependencies are now externalised -------------------------------------- Disabling UMD output allows more easily externalise dependencies based on the package.json file, making it way more approachable. Vue is now a peer dependency ---------------------------- Because this is a component library, Vue is not a direct dependency of this project. Instead, this library relies on consumer having a Vue as its dependency. `lib` is no longer included in package -------------------------------------- `lib` folder contains sources for the imports, but it's outside of export map and cannot be imported by the consumers. It is now excluded from the package to reduce the package size and installation time. Typings ------- Consumers of this library should also be able to benefit from the type safety. To achieve this, there's now a Vite plugin that generates type declarations that represent the project structure. To lesser the incompatibility with the consumers, some of the files were changed to import `index.js` from folders rather than folders themselves. While both will work for building, not doing this requires consumer to opt in to bundler module dependency, whereas if `index.js` is imported, the consumer can use both the normal ESM / Node16 module resolution, as well as the bundler module resolution. ESLint configuration changes ---------------------------- ESLint has been reconfigured to support TypeScript, and include rules recommended by the TypeScript ESLint package. In the future it would be good to review the rules and override rules for TypeScript files to disable rules that would conflict with ones from TypeScript ESLint. Entry file is now a TypeScript file ----------------------------------- To test the changes and begin the slow conversion, the entry point file is now a proper TypeScript file. SVG imports use `?component` parameter -------------------------------------- All components are now imported with `?component` URL parameter so that they have a proper file. By default, Vite imports all files like .svg as strings containing path to the file. Unfortunately, `vite-svg-loader` overrides this behaviour without overriding the Vite import type declaration, leading to incorrect types. However, it does expose a new parameter `?component`, which is properly typed and does the same thing you'd expect - export a Vue component, so most of the SVG imports have been converted to use this parameter.
* Setup TailwindCSS * Fully setup configuration * Refactor some tailwind variables
* Fix Tailwind not targeting the src dir * Merge tw fixes * Fix footer logo alignment in mobile layout
* fix tauri config * fix package patch * regen pnpm lock * use new workflow * New GH actions * Update lockfile * update scripts * Fix build script * Fix missing deps * Fix assets eslint * Update libraries lint * Fix all lint configs * update lockfile * add fmt + clippy fails * Separate App Tauri portion * fix app features * Fix lints * install tauri cli * update lockfile * corepack, fix lints * add store path * fix unused import * Fix tests * Issue templates + port over tauri release * fix actions * fix before build command * Add X86 target * Update build matrix * finalize actions * make debug build smaller * Use debug build to make cache smaller * dummy commit * change proj name * update file name * Use release builds for less space use * Remove rust cache * Readd for app build * add merge queue trigger
* feat: NavTabs component * fix: tw config using wrong variable * fix: actually use the config now * fix: revert testing
* fix(temp): remove box shadows from tailwind config * fix(temp): "polyfill" global during build process * refactor: use `import.meta` instead of deprecated `process` * oops: replace `process.server` as well
This fixes the issue where types for NuxtApp would be incorrect due to the incorrect Plugin return type by @vintl/nuxt.
- Switch to TypeScript - Use early return - Switch to regular for loop Co-authored-by: Geometrically <[email protected]>
…f7012a75c22880a0f62c6"
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This pull request merges with 1000+ commits from the parent repository modrinth/code (also known as modrinth/theseus).
Changes
Notice