npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

svelte-clerk-auth

v0.0.1

Published

Clerk Auth Library For SvelteKit

Downloads

3

Readme

svelte-clerk-auth

Clerk Auth Library For SvelteKit

Clerk Auth Library for Sveltekit

A Svelte kit library implementing the Clerk js Auth.

Installation

pnpm install svelte-clerk-auth
npm install svelte-clerk-auth

Usage

<script lang="ts">
    import { initializeClerk, signIn, signOut, SignedIn, SignedOut, UserButton } from "svelte-clerk-auth";
    import { onMount } from "svelte"

    const clerkOptions = {}; // Refer from Clerk documentation
    const optionalSignInProps = {}; // Refer from Clerk documentation
    const optionalSignInProps = {}; // Refer from Clerk documentation
    onMount(async () => await initializeClerk(clerkOptions))
</script>

<SignedIn>
    <span>Shows only when SignedIn.</span>

    <!--UserButton provides convinient way to show user profile-->
    <UserButton />

    <button on:click={_ => signOut(optionalSignOutOptions)}>Sign Out</button>
</SignedIn>
<SignedOut>
    <span>Shows only when SignedOut</span>
    <button on:click={_ => signIn(optionalSignInProps)}>Sign In</button>
<SignedOut>

ClerkStore Object

type ClerkStoreProps = {
    loading: boolean; // Checks if clerk has loaded
    user?: UserResource | null; // Shows UserResource only if user is logged in
    session?: SessionResource | null; // Current Session for the user
    userIsSignedIn: () => boolean; // Returns true if user is logged in
};
// For specifcs refer to Clerk Documentation
<script lang="ts">
    import { ClerkStore} from "svelte-clerk-auth";

    $: console.log($ClerkStore);
</script>

Info

Documentations of the project is ongoing.

Project is safe to use.

Raise any issues here and support this project's documentation and any other necessary improvements.

Care should be taken to only use SignedIn component where needed, since clerk-js is fully client side.

Only encapsulate code that truly needs user authentication.

For example in a Ecommerce Store, where you wish the products to be easily indexed by search engines, or better SEO for the overall website, but only authenticated users can place products in the Cart then do as follows:

In Procuct.svelte

<script lang="ts">
    import { signIn } from "svelte-clerk-auth";

    let id = "78828dh-d88u8-kdj83";
    let name = "Peanut Butter";
    let imgSrc = "https://.../img.jpeg";
    let price = 400;

    function addProductToCart() {
        // Add Product To Cart
    }

    function signInUser() {
        signIn({ /* SignInProps */ });
    }
</script>

<div class="card">
    <img src={imgSrc} />
    <span>{name}</span>
    <span>{price}</span>
    <SignedIn>
        <button on:click="{addProuctToCart}">
    </SignedIn>
    <SignedOut>
        <button on:click="{signInUser}">Login To Add Products</button>
    </SignedOut>
</div>