feat(lib): add asset pipeline foundation types and hash utilities - #371
feat(lib): add asset pipeline foundation types and hash utilities#371eduardomourar wants to merge 1 commit into
Conversation
Introduce the foundational layer for the asset pipeline: - Asset interfaces and enums: IAsset, AssetOptions, AssetHashType, FileAssetSource, DockerImageAssetSource, FileAssetPackaging, FileAssetLocation, DockerImageAssetLocation, DockerCacheOption - Hash utility enhancements in private/fs.ts: ExcludePredicate type, CopySyncOptions with shouldExclude support, excludeMatcher() for building predicates from pattern lists, shouldExclude threading through hashPath/copySync for both legacy and canonical schemes - Export assets module from package index - Unit tests for type contracts and test fixtures for hashing This is the foundation PR (1 of N) for the asset staging pipeline. Later PRs will add AssetStaging, TerraformAsset integration, and Docker bundling on top of these primitives. chore: fix
b33ffc7 to
9374683
Compare
|
@sakul-learning — picking up your review threads from #339 (comment) here, since the shapes have moved into this slice. On temporarily removing
|
|
Agreed. No release boundary between these slices, so keeping extraHash / bundling / assetHashType in place makes sense. To back that up with real implementation, I'll fold in AssetStaging Core with no bundling: the AssetStaging class doing SOURCE/OUTPUT/CUSTOM hash resolution through the shared fingerprinting path (gated on canonicalAssetHashes, per the unification in To keep that from bloating the PR, I'll move the Docker-specific bits — the docker* fields on DockerImageAssetSource and DockerCacheOption — into the Docker Bundling PR, since they've got no caller until bundling lands anyway. So this PR ends up as: foundation types (minus Docker interfaces) + a working AssetStaging core (SOURCE/OUTPUT/CUSTOM, no bundling). Docker bundling PR gets the Docker interfaces plus the actual DockerImage/bind-mount/volume-copy execution. @so0k and @jsteinich, could you both confirm if that is the approach we want to take? I know that is not the small API surface we had in mind, but, at least, we can release those slices separately if needed be. |
Related issue
Spin-off from #339
Description
Introduce the foundational layer for the asset pipeline:
This is the foundation PR (1 of 3) for the asset staging pipeline. Later PRs will add AssetStaging, TerraformAsset integration, and Docker bundling on top of these primitives.
Checklist