Expand description
§use-js
Feature-gated facade crate for the focused RustUse JavaScript ecosystem primitives.
§Experimental
use-js is experimental while the workspace remains below 0.3.0. Expect small API adjustments during the first release wave.
§Example
use use_js::{AstroRenderingMode, EcmaScriptTarget, JsIdentifier, NextJsRouteSegment, PackageName, ReactComponentName};
let target: EcmaScriptTarget = "es2024".parse()?;
let identifier = JsIdentifier::new("createApp")?;
let package = PackageName::new("@rustuse/example")?;
let component = ReactComponentName::new("AppShell")?;
let route_segment = NextJsRouteSegment::new("blog")?;
assert_eq!(target.to_string(), "ES2024");
assert_eq!(identifier.as_str(), "createApp");
assert!(package.is_scoped());
assert_eq!(component.as_str(), "AppShell");
assert_eq!(AstroRenderingMode::Hybrid.as_str(), "hybrid");
assert_eq!(route_segment.as_str(), "blog");§Scope
- Thin re-exports over the focused crates in this workspace.
- Feature flags that map directly to child crates.
- One dependency when consumer ergonomics matter more than the narrowest possible dependency graph.
§Non-goals
- JavaScript or TypeScript runtime behavior.
- Full source parsing, bundling, transpilation, scaffolding, or package-manager execution.
- A second abstraction layer over the focused crates.
§License
Licensed under either Apache-2.0 or MIT.
Modules§
- angular
- astro
- bun
- deno
- ecmascript
- export
- identifier
- import
- jquery
- keyword
- lit
- module
- next
- node_js
- npm
- nuxt
- package_
json - pnpm
- preact
- prelude
- Curated facade prelude for common JavaScript ecosystem primitives.
- qwik
- react
- remix
- solid
- storybook
- svelte
- ts
- tsconfig
- value
- vite
- vue
- yarn
Structs§
- Angular
Directive Name - Validated Angular directive class name metadata.
- Angular
Module Name - Validated Angular module name metadata.
- Angular
Selector - Validated Angular selector metadata.
- Astro
Content Collection Name - Validated Astro content collection name metadata.
- Astro
Integration Name - Validated Astro integration name metadata.
- BunVersion
- Bun version metadata.
- Compiler
Options - Partial compiler options metadata.
- Deno
Version - Deno version metadata.
- Ecma
Script Year - Calendar year for annual ECMAScript editions.
- Jquery
Effect Name - Validated jQuery effect name metadata.
- Jquery
Event Name - Validated jQuery event name metadata.
- Jquery
Plugin Name - Validated jQuery plugin name metadata.
- Jquery
Selector - Validated non-empty jQuery selector text.
- JsExport
Specifier - Exported binding metadata.
- JsExport
Statement Parts - Lightweight export statement metadata.
- JsIdentifier
- Validated ASCII-safe JavaScript identifier.
- JsImport
Specifier - Imported binding metadata.
- JsImport
Statement Parts - Lightweight import statement metadata.
- JsModule
Format - Simple module format metadata.
- JsModule
Specifier - Validated JavaScript module specifier.
- LitDecorator
Name - Validated Lit decorator name metadata.
- LitElement
Name - Validated Lit custom element name metadata.
- LitProperty
Name - Validated Lit property name metadata.
- Next
JsDynamic Segment - Validated
Next.jsdynamic segment metadata. - Next
JsIntercepting Route Pattern - Validated
Next.jsintercepting route pattern metadata. - Next
JsParallel Route Name - Validated
Next.jsparallel route name metadata. - Next
JsRoute Segment - Validated
Next.jsroute segment metadata. - Node
Major Version - Node.js major version metadata.
- Node
Runtime - Node.js runtime metadata.
- Node
Version - Node.js version metadata.
- NpmPackage
Spec - NpmRegistry
Url - npm registry URL metadata.
- NpmScript
Command - Package
Json - Partial practical
package.jsonmetadata. - Package
Name - Validated package name metadata.
- Package
Script - Package
Script Name - Package
Version - Pnpm
Filter - Pnpm
Workspace - Preact
Component Name - Validated Preact component name metadata.
- Preact
Hook Name - Validated Preact hook name metadata.
- Qwik
Component Name - Validated Qwik component name metadata.
- React
Component Name - Validated React component name metadata.
- React
Hook Name - Validated React hook name metadata.
- Remix
Resource Route Name - Validated Remix resource route name metadata.
- Remix
Route File Name - Validated Remix route file name metadata.
- Remix
Route Path - Validated Remix route path metadata.
- Solid
Component Name - Validated
SolidJScomponent name metadata. - Solid
Signal Name - Validated
SolidJSsignal name metadata. - Storybook
ArgName - Validated Storybook arg name metadata.
- Storybook
Component Title - Validated Storybook component title metadata.
- Storybook
Story Name - Validated Storybook story name metadata.
- Svelte
Component Name - Validated Svelte component name metadata.
- Svelte
Directive Name - Validated Svelte directive name metadata.
- TsConfig
- Partial
tsconfig.jsonmetadata. - TsConfig
Exclude - TsConfig
Extends - TsConfig
Include - Type
Script Version - TypeScript semantic version metadata.
- Vite
Mode - Vite
Plugin Name - VueComponent
Name - Validated Vue component name metadata.
- VueDirective
Name - Validated Vue directive name metadata without the leading
v-. - Yarn
Workspace
Enums§
- Angular
Artifact Kind - Angular artifact-kind labels.
- Angular
Config File - Common Angular config file labels.
- Angular
File Kind - Angular file-kind labels.
- Angular
Name Error - Error returned when Angular metadata is invalid.
- Angular
Standalone Mode - Angular standalone mode labels.
- Angular
Version Family - Angular version-family labels.
- Astro
Config File - Common Astro config file labels.
- Astro
Directory Kind - Astro directory labels.
- Astro
File Kind - Astro file-kind labels.
- Astro
Rendering Mode - Astro rendering mode labels.
- Astro
Text Error - Error returned when Astro metadata text is invalid.
- Astro
Version Family - Astro version-family labels.
- BunCommand
- Common Bun command labels.
- BunLockfile
- Common Bun lockfile labels.
- Deno
Config File - Common Deno config file labels.
- Deno
Permission - Deno permission labels.
- Dependency
Kind package.jsondependency section kind.- Ecma
Script Edition - ECMAScript edition numbers for commonly named targets.
- Ecma
Script Parse Error - Error returned while parsing ECMAScript labels.
- Ecma
Script Target - Common ECMAScript language target labels.
- Jquery
Ajax Method - Common jQuery AJAX method labels.
- Jquery
Text Error - Error returned when jQuery metadata text is invalid.
- Jquery
Version Family - jQuery version-family labels.
- JsExport
Kind - JavaScript export metadata kind.
- JsIdentifier
Error - Error returned when an ASCII JavaScript identifier is invalid.
- JsImport
Kind - JavaScript import metadata kind.
- JsKeyword
- Common JavaScript keywords.
- JsKeyword
Parse Error - Error returned when parsing JavaScript vocabulary fails.
- JsModule
Kind - JavaScript module-system kind.
- JsModule
Kind Parse Error - Error returned when a module kind is not recognized.
- JsModule
Specifier Error - Error returned when a module specifier is invalid.
- JsPrimitive
Value - Primitive JavaScript-like values for metadata and validation helpers.
- JsReserved
Word - JavaScript reserved words, including keywords and common future reserved words.
- LitFile
Kind - Lit file-kind labels.
- LitName
Error - Error returned when Lit metadata is invalid.
- LitTemplate
Kind - Lit template-kind labels.
- Next
JsConfig File - Common
Next.jsconfig file labels. - Next
JsDirectory Kind Next.jsdirectory labels.- Next
JsFile Kind Next.jsfile-kind labels.- Next
JsMetadata Kind Next.jsmetadata-kind labels.- Next
JsRendering Mode Next.jsrendering mode labels.- Next
JsRoute Error - Error returned when
Next.jsroute metadata is invalid. - Next
JsRoute Kind Next.jsroute-kind labels.- Next
JsRouter Kind Next.jsrouter-kind labels.- Next
JsRuntime Kind Next.jsruntime-kind labels.- Next
JsVersion Family Next.jsversion-family labels.- Node
Package Manager Preference - Preferred package manager for a Node-oriented project.
- Node
Version Parse Error - Error returned while parsing a Node.js version.
- NpmCommand
- Common npm command labels.
- NpmCommand
Parse Error - Error returned while parsing npm commands.
- NpmText
Error - Error returned when npm text metadata is invalid.
- Nuxt
Config File - Common Nuxt config file labels.
- Nuxt
Directory Kind - Common Nuxt directory labels.
- Nuxt
Rendering Mode - Nuxt rendering mode labels.
- Nuxt
Version Family - Nuxt version-family labels.
- Package
Json Text Error - Error returned when package metadata text is invalid.
- Package
Type package.jsonpackage type metadata.- Pnpm
Command - Common pnpm command labels.
- Pnpm
Lockfile - Common pnpm lockfile labels.
- Pnpm
Text Error - Error returned when pnpm text metadata is invalid.
- Preact
Compat Mode - Preact compatibility mode labels.
- Preact
File Kind - Preact file-kind labels.
- Preact
JsxRuntime - Preact JSX runtime labels.
- Preact
Name Error - Error returned when Preact metadata is invalid.
- Qwik
City Route Kind - Qwik City route-kind labels.
- Qwik
Config File - Common Qwik config file labels.
- Qwik
Directory Kind - Qwik directory labels.
- Qwik
File Kind - Qwik file-kind labels.
- Qwik
Name Error - Error returned when Qwik metadata is invalid.
- Qwik
Optimizer Mode - Qwik optimizer mode labels.
- React
File Kind - React file-kind metadata.
- React
JsxRuntime - React JSX runtime labels.
- React
Name Error - Error returned when React name metadata is invalid.
- Remix
Config File - Common Remix config file labels.
- Remix
Data Function Kind - Remix data function labels.
- Remix
Directory Kind - Remix directory labels.
- Remix
File Kind - Remix file-kind labels.
- Remix
Name Error - Error returned when Remix metadata is invalid.
- Remix
Rendering Mode - Remix rendering-mode labels.
- Remix
Route Kind - Remix route-kind labels.
- Remix
Version Family - Remix version-family labels.
- Solid
File Kind SolidJSfile-kind labels.- Solid
JsxRuntime SolidJSJSX runtime labels.- Solid
Name Error - Error returned when
SolidJSmetadata is invalid. - Solid
Primitive Kind SolidJSprimitive-kind labels.- Storybook
Addon Kind - Storybook addon labels.
- Storybook
Config File - Common Storybook config file labels.
- Storybook
Control Kind - Storybook control-kind labels.
- Storybook
File Kind - Storybook file-kind labels.
- Storybook
Framework Kind - Storybook framework labels.
- Storybook
Name Error - Error returned when Storybook metadata is invalid.
- Storybook
Parameter Kind - Storybook parameter-kind labels.
- Storybook
Story Kind - Storybook story-kind labels.
- Storybook
Version Family - Storybook version-family labels.
- Svelte
Config File - Common Svelte config file labels.
- Svelte
File Kind - Svelte file-kind labels.
- Svelte
KitDirectory Kind SvelteKitdirectory labels.- Svelte
KitRendering Mode SvelteKitrendering mode labels.- Svelte
Name Error - Error returned when Svelte metadata is invalid.
- TsConfig
Text Error - Error returned when tsconfig text metadata is empty.
- TsModule
Resolution - TypeScript module resolution labels.
- TsOption
Parse Error - Error returned while parsing TypeScript option labels.
- TsStrictness
- TypeScript strictness metadata.
- TsTarget
- TypeScript target metadata.
- TsTarget
Parse Error - Error returned while parsing TypeScript targets.
- Type
Script Version Parse Error - Error returned while parsing a TypeScript version.
- Vite
Config File - Common Vite config file labels.
- Vite
Framework Preset - Vite framework preset labels.
- Vite
Text Error - Error returned when Vite text metadata is empty.
- VueApi
Style - Vue API style labels.
- VueFile
Kind - Vue file-kind metadata.
- VueName
Error - Error returned when Vue name metadata is invalid.
- Yarn
Command - Common Yarn command labels.
- Yarn
Lockfile - Common Yarn lockfile label.
- Yarn
Text Error - Error returned when Yarn text metadata is invalid.
- Yarn
Version Family - Yarn release-line family.
Constants§
Functions§
- is_
ascii_ js_ identifier_ continue - Returns whether
characteris accepted after the first identifier character. - is_
ascii_ js_ identifier_ start - Returns whether
characteris accepted as an ASCII JavaScript identifier start. - is_
js_ keyword - Returns whether
inputis one of the common JavaScript keywords. - is_
js_ reserved_ word - Returns whether
inputis a keyword or common reserved word. - is_
valid_ ascii_ js_ identifier - Returns whether
inputis an ASCII-safe JavaScript identifier.
Type Aliases§
- Dependency
Map - Dependency map keyed by package name.