CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/npm-sveltejs--package

A specialized build tool for creating Svelte component libraries and packages

Pending
Overview
Eval results
Files

filesystem.mddocs/

File System Utilities

File system operations including directory creation, recursive deletion, and file copying with cross-platform path handling.

Capabilities

Make Directory Function

Creates directories recursively, similar to mkdir -p.

/**
 * Create directory recursively
 * @param dir - Directory path to create
 */
function mkdirp(dir: string): void;

Usage Examples:

import { mkdirp } from "@sveltejs/package/src/filesystem.js";

// Create nested directories
mkdirp("dist/types/components");

// Create single directory
mkdirp("temp");

Remove Directory Function

Removes files and directories recursively, similar to rm -rf.

/**
 * Remove directory or file recursively
 * @param path - Path to remove
 */
function rimraf(path: string): void;

Usage Examples:

import { rimraf } from "@sveltejs/package/src/filesystem.js";

// Remove directory and all contents
rimraf("dist");

// Remove single file
rimraf("temp/file.txt");

Posixify Function

Converts Windows-style paths to POSIX-style paths for consistent path handling.

/**
 * Convert Windows paths to POSIX format
 * @param str - Path string to convert
 * @returns POSIX-style path
 */
function posixify(str: string): string;

Usage Examples:

import { posixify } from "@sveltejs/package/src/filesystem.js";

// Convert Windows path
const windowsPath = "src\\lib\\components\\Button.svelte";
const posixPath = posixify(windowsPath);
// Result: "src/lib/components/Button.svelte"

// POSIX paths are unchanged
const alreadyPosix = "src/lib/index.js";
const stillPosix = posixify(alreadyPosix);
// Result: "src/lib/index.js"

Walk Directory Function

Recursively walks a directory and returns all file and directory paths.

/**
 * Recursively walk directory and return all paths
 * @param cwd - Directory to walk
 * @param dirs - Whether to include directories in results (default: false)
 * @returns Array of relative paths
 */
function walk(cwd: string, dirs?: boolean): string[];

Usage Examples:

import { walk } from "@sveltejs/package/src/filesystem.js";

// Get all files
const files = walk("src/lib");
// Result: ["index.js", "components/Button.svelte", "utils/helpers.js"]

// Get files and directories
const all = walk("src/lib", true);
// Result: ["index.js", "components", "components/Button.svelte", "utils", "utils/helpers.js"]

Copy Files Function

Copies files or directories from source to target with optional filtering and replacement.

/**
 * Copy files or directories
 * @param source - Source path
 * @param target - Target path
 * @param opts - Copy options
 * @returns Array of copied file paths
 */
function copy(source: string, target: string, opts?: CopyOptions): string[];

interface CopyOptions {
  filter?: (basename: string) => boolean;
  replace?: Record<string, string>;
}

Usage Examples:

import { copy } from "@sveltejs/package/src/filesystem.js";

// Copy single file
const files = copy("src/index.js", "dist/index.js");
// Result: ["index.js"]

// Copy directory
const copiedFiles = copy("src/assets", "dist/assets");
// Result: ["logo.png", "styles.css", "fonts/main.woff"]

// Copy with filter (exclude test files)
const filtered = copy("src", "dist", {
  filter: (basename) => !basename.endsWith('.test.js')
});

// Copy with string replacements
const replaced = copy("src/lib", "dist/lib", {
  replace: {
    'development': 'production',
    'localhost': 'example.com'
  }
});

File System Operations

Directory Operations

The file system utilities handle cross-platform directory operations:

  • Creation: mkdirp creates parent directories as needed
  • Removal: rimraf safely removes directories with all contents
  • Walking: walk traverses directory trees with optional directory inclusion

File Operations

  • Copying: copy handles both individual files and directory trees
  • Path Normalization: posixify ensures consistent path separators
  • Filtering: Copy operations support custom filter functions

Cross-Platform Compatibility

All utilities handle platform differences:

  • Path separators are normalized to forward slashes
  • File permissions are preserved where supported
  • Symbolic links are handled appropriately

Error Handling

The file system utilities handle common error conditions:

  • Missing Directories: mkdirp creates intermediate directories
  • Non-existent Sources: copy and rimraf handle missing source paths gracefully
  • Permission Errors: Operations respect file system permissions
  • Path Conflicts: Overwrite behavior is configurable in copy operations

Types

interface CopyOptions {
  filter?: (basename: string) => boolean;
  replace?: Record<string, string>;
}

Install with Tessl CLI

npx tessl i tessl/npm-sveltejs--package

docs

build-system.md

configuration.md

filesystem.md

index.md

typescript.md

validation.md

tile.json