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 🙏

© 2026 – Pkg Stats / Ryan Hefner

kt-dc

v1.0.2

Published

A tiny TypeScript-friendly wrapper and alias for Vue's `defineComponent` (alias `dc`) to improve typing for setup-style components.

Readme

kt-dc

A tiny TypeScript-friendly alias/wrapper around Vue's defineComponent optimized for the setup-style component pattern.

kt-dc exports a single named helper defineComponent and an alias dc. It provides a strongly-typed signature for setup-style components where the setup function receives typed props, an expose helper, and the SetupContext (including slots and emit types).

Install

Install from npm (or your preferred package manager):

npm:

	npm install kt-dc

yarn:

	yarn add kt-dc

bun:

	bun add kt-dc

What it does

kt-dc is intentionally small: it re-exports Vue's defineComponent under a typed wrapper and provides a convenient dc alias. The wrapper helps when writing fully-typed setup-style components in TypeScript by exposing a compact generic helper that matches a common pattern.

The implementation (see index.ts) roughly does:

  • Export a typed defineComponent helper that accepts a setup function with the signature (props, expose, ctx) => RenderFunction | Promise<RenderFunction>.
  • The helper accepts optional options including a props list, emits, and slots typing hints.
  • Exports dc as a short alias for defineComponent.

Usage (TypeScript)

Simple example using the dc alias:

import { dc } from 'kt-dc';
import { h } from 'vue';

export default dc(
	(props: { msg: string }, expose, ctx) => {
		// You can call ctx.emit, ctx.slots, etc. with appropriate types inferred
		expose({ /* exposed methods */ });

		return () => {
			return <>
				<div>{props.msg}</div>
			</>
		};
	},
	{
		props: ['msg'],
	}
);

For more complex typing, the helper exports several TypeScript utilities in index.ts, such as DefineSetupFnComponent, DCExpose, and UnwrapSlotsType to help with stronger typing of the component instance, exposed members, and slots.

API

  • defineComponent(setup, options?) - Typed wrapper around Vue's defineComponent. Returns a typed component constructor compatible with Vue.
  • dc - a direct alias for defineComponent.

Types exported (high-level):

  • DefineSetupFnComponent — a constructor type representing the typed component returned by the helper.
  • DCExpose<Expose> — a helper type for the expose callback used inside setup.
  • UnwrapSlotsType<S> — utility to convert a slots type description into Vue Slots shape.

Notes

  • This package is intentionally minimal and focuses on developer ergonomics when authoring TypeScript setup-style components.
  • It relies on Vue types being available in your project. Make sure you have vue and its types installed.

Contributing

Small PRs and fixes welcome. Keep changes focused and add tests/examples when adding behavior.

License

MIT