or run

npx @tessl/cli init
Log in

Version

Files

docs

asset-management.mdautomation.mdconfiguration.mddynamic-resources.mdindex.mdlogging-diagnostics.mdoutput-system.mdprovider-development.mdresource-management.mdruntime-operations.mdstack-references.mdutilities.md
tile.json

task.mdevals/scenario-3/

Deployable Asset Builder

Utility module that packages local files, inline strings, and remote artifacts into deployable assets and archives for infrastructure deployments.

Capabilities

Wraps local file paths

  • Converting an absolute or relative file path yields a deployable file artifact that points at that path without reading its contents eagerly. @test

Inlines string content

  • Passing literal content produces a deployable asset whose data exactly matches the provided string, including empty strings. @test

References remote blobs

  • Providing an https URL returns a remote artifact that preserves the URL and defers fetching to deployment time. @test

Bundles mixed entries into an archive

  • Combining named entries built from file, inline, and remote sources yields a single deployable archive where each key keeps its supplied name and nested directory names. @test
  • Supplying a directory path adds all files under that directory into the archive, keeping subfolder structure. @test

Implementation

@generates

API

export type AssetSource =
  | { kind: "file"; path: string }
  | { kind: "inline"; data: string }
  | { kind: "remote"; uri: string };

export type PackagedAsset = unknown;
export type PackagedArchive = unknown;

/**
 * Wraps a file path as a deployable asset understood by the runtime.
 */
export function fromFile(path: string): PackagedAsset;

/**
 * Wraps inline string data as a deployable asset without touching the filesystem.
 */
export function fromInline(content: string): PackagedAsset;

/**
 * Wraps an HTTP(S) URL as a deployable remote artifact.
 */
export function fromRemote(uri: string): PackagedAsset;

/**
 * Builds an archive from named asset sources and optionally includes every file under includeDir.
 * Entries keep their provided keys as paths inside the archive.
 */
export function buildArchive(
  entries: Record<string, AssetSource>,
  includeDir?: string
): PackagedArchive;

Dependencies { .dependencies }

@pulumi/pulumi { .dependency }

Provides deployable asset and archive abstractions for packaging files, inline data, and remote blobs without manual encoding.

@satisfied-by