
Security News
Browserslist-rs Gets Major Refactor, Cutting Binary Size by Over 1MB
Browserslist-rs now uses static data to reduce binary size by over 1MB, improving memory use and performance for Rust-based frontend tools.
svelte-fragment-component
Advanced tools
Svelte component that renders its children with lifecycle hooks to simplify testing
A svelte component that renders its children with lifecycle hooks.
Declarative version of Svelte component inspired by reach-ui/component-component.
Because sometimes (within tests) you want a lifecycle or some state but don't want to create a new component.
This is most likely only useful for libraries like svelte-jsx or svelte-htm.
npm install svelte-fragment-component
And then import it:
// using es modules
import Fragment from 'svelte-fragment-component'
// common.js
const Fragment = require('svelte-fragment-component')
Or use script tags and globals (UNPKG | jsDelivr).
<!-- UNPKG -->
<script src="https://unpkg.com/svelte-fragment-component"></script>
<!-- jsDelivr -->
<script src="https://cdn.jsdelivr.net/npm/svelte-fragment-component"></script>
<script>
<!-- And then grab it off the global like so: -->
const Fragment = svelteFragment
</script>
Hotlinking from unpkg: (no build tool needed!)
import Fragment from 'https://unpkg.com/svelte-fragment-component?module'
The examples below are using svelte-jsx for the jsx syntax support.
import Fragment from 'svelte-fragment-component'
const Lifecycle = (
<Fragment
onCreate={() => {}}
onMount={() => {}}
beforeUpdate={() => {}}
afterUpdate={() => {}}
onDestroy={() => {}}
>
some content
</Fragment>
)
This allows to simplify testing of context API:
import Fragment from 'svelte-fragment-component'
import { setContext } from 'svelte'
const Lifecycle = (
<Fragment
onCreate={() => {
setContext('some context key', theValue)
}}
>
children can now access this context value
</Fragment>
)
// or using the context property
const Lifecycle = (
<Fragment context={{ 'some context key': theValue }}>
children can now access this context value
</Fragment>
)
The component renders only the default slot children.
All properties are optional.
context
: an key-value object where each pair is passed to setContextExcept for onCreate
these functions are passed to their corresponding svelte lifecycle method and have the same call signature ({ props }): void
where props
are the $$restProps
:
onCreate
: called during component initializationThis project is free and open-source, so if you think this project can help you or anyone else, you may star it on GitHub. Feel free to open an issue if you have any idea, question, or you've found a bug.
Thanks for being willing to contribute!
Working on your first Pull Request? You can learn how from this free series How to Contribute to an Open Source Project on GitHub
We are following the Conventional Commits convention.
npm test
: Run test suitenpm run build
: Generate bundlesnpm run lint
: Lints codesvelte-fragment-component
is open source software licensed as MIT.
FAQs
Svelte component that renders its children with lifecycle hooks to simplify testing
The npm package svelte-fragment-component receives a total of 2,626 weekly downloads. As such, svelte-fragment-component popularity was classified as popular.
We found that svelte-fragment-component demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Browserslist-rs now uses static data to reduce binary size by over 1MB, improving memory use and performance for Rust-based frontend tools.
Research
Security News
Eight new malicious Firefox extensions impersonate games, steal OAuth tokens, hijack sessions, and exploit browser permissions to spy on users.
Security News
The official Go SDK for the Model Context Protocol is in development, with a stable, production-ready release expected by August 2025.