Documentation ¶
Index ¶
- Variables
- func AssetAttributesEqual(a, b []AssetAttribute) bool
- func MetadataFileToAssetDescriptions(path string) (map[string]AssetDescription, error)
- func UpdateCacheFile(path string, assetCache AssetCache) error
- type AssetAttribute
- type AssetCache
- type AssetCacheEntry
- type AssetDescription
- type AssetMetadata
- func FileToAssetMetadata(appID, path, assetPath string, info os.FileInfo, desc *AssetDescription, ...) (*AssetMetadata, error)
- func ListLocalAssetMetadata(appID, rootDirectory string, assetDescriptions map[string]AssetDescription, ...) ([]AssetMetadata, error)
- func NewAssetMetadata(appID, filePath, fileHash string, fileSize int64, attrs []AssetAttribute, ...) *AssetMetadata
- type AssetMetadataDiffs
- type AssetsMetadata
- type ModifiedAssetMetadata
Constants ¶
This section is empty.
Variables ¶
var ( AttributeContentType = "Content-Type" AttributeContentDisposition = "Content-Disposition" AttributeContentLanguage = "Content-Language" AttributeContentEncoding = "Content-Encoding" AttributeCacheControl = "Cache-Control" AttributeWebsiteRedirectLocation = "Website-Redirect-Location" )
Valid attribute types names
var ValidAttributeNames = map[string]bool{ AttributeContentType: true, AttributeContentDisposition: true, AttributeContentLanguage: true, AttributeContentEncoding: true, AttributeCacheControl: true, AttributeWebsiteRedirectLocation: true, }
ValidAttributeNames stores the attribute names that Realm static hosting supports
Functions ¶
func AssetAttributesEqual ¶
func AssetAttributesEqual(a, b []AssetAttribute) bool
AssetAttributesEqual determines whether the []AssetAttribute are the same
func MetadataFileToAssetDescriptions ¶
func MetadataFileToAssetDescriptions(path string) (map[string]AssetDescription, error)
MetadataFileToAssetDescriptions attempts to open the file at the path given and build AssetDescriptions from this file
func UpdateCacheFile ¶
func UpdateCacheFile(path string, assetCache AssetCache) error
UpdateCacheFile attempts to update the file at the path given with the AssetCache passed in
Types ¶
type AssetAttribute ¶
AssetAttribute represents an attribute of a particular static hosting asset
type AssetCache ¶
type AssetCache interface { Dirty() bool Entries() entryMap Get(appID, filePath string) (AssetCacheEntry, bool) Set(appID string, ace AssetCacheEntry) }
AssetCache represents the entires that make up the cache
func CacheFileToAssetCache ¶
func CacheFileToAssetCache(path string) (AssetCache, error)
CacheFileToAssetCache attempts to open the file at the path given and build a map of appID to a map of file path strings a AssetCache
type AssetCacheEntry ¶
type AssetCacheEntry struct { FilePath string `json:"path"` LastModified int64 `json:"last_modified,omitempty"` FileSize int64 `json:"size,omitempty"` FileHash string `json:"hash,omitempty"` }
AssetCacheEntry represents the relevant data for caching
type AssetDescription ¶
type AssetDescription struct { FilePath string `json:"path"` Attrs []AssetAttribute `json:"attrs"` }
AssetDescription is the struct that contains the metadata we store for the CLI
func AssetMetadataToAssetDescriptions ¶
func AssetMetadataToAssetDescriptions(assetMetadata []AssetMetadata) []AssetDescription
AssetMetadataToAssetDescriptions takes AssetMetadata and outputs the slice of AssetDescriptions that should be written into the metadata file
type AssetMetadata ¶
type AssetMetadata struct { AppID string `json:"appId,omitempty"` FilePath string `json:"path"` FileHash string `json:"hash,omitempty"` FileSize int64 `json:"size,omitempty"` Attrs []AssetAttribute `json:"attrs"` LastModified int64 `json:"last_modified,omitempty"` URL string `json:"url,omitempty"` }
AssetMetadata represents the metadata of a static hosted asset
func FileToAssetMetadata ¶
func FileToAssetMetadata(appID, path, assetPath string, info os.FileInfo, desc *AssetDescription, assetCache AssetCache) (*AssetMetadata, error)
FileToAssetMetadata generates a file hash for the given file and generates the assetAttributes and creates an AssetMetadata from these if the file hash has changed this will update the assetCache
func ListLocalAssetMetadata ¶
func ListLocalAssetMetadata(appID, rootDirectory string, assetDescriptions map[string]AssetDescription, assetCache AssetCache) ([]AssetMetadata, error)
ListLocalAssetMetadata walks all files from the rootDirectory and builds []AssetMetadata from those files returns the assetMetadata and possibly alters the assetCache
func NewAssetMetadata ¶
func NewAssetMetadata(appID, filePath, fileHash string, fileSize int64, attrs []AssetAttribute, lastModified int64) *AssetMetadata
NewAssetMetadata is a constructor for AssetMetadata
func (*AssetMetadata) IsDir ¶
func (amd *AssetMetadata) IsDir() bool
IsDir is true if the asset represents a directory
type AssetMetadataDiffs ¶
type AssetMetadataDiffs struct { AddedLocally []AssetMetadata DeletedLocally []AssetMetadata ModifiedLocally []ModifiedAssetMetadata }
AssetMetadataDiffs represents a set of locally deleted, locally added, and locally modified AssetMetadata
func DiffAssetMetadata ¶
func DiffAssetMetadata(local, remote []AssetMetadata, merge bool) *AssetMetadataDiffs
DiffAssetMetadata compares a local and remote []AssetMetadata and returns a AssetMetadataDiffs which contains information about the differences between the two. If the merge parameter is true, we ignore deleted assets
func NewAssetMetadataDiffs ¶
func NewAssetMetadataDiffs(added, deleted []AssetMetadata, modified []ModifiedAssetMetadata) *AssetMetadataDiffs
NewAssetMetadataDiffs is a constructor for AssetMetadataDiffs
func (*AssetMetadataDiffs) Diff ¶
func (amd *AssetMetadataDiffs) Diff() []string
Diff returns a list of strings representing the diff
type AssetsMetadata ¶
type AssetsMetadata []AssetMetadata
AssetsMetadata is a list of AssetMetadata
func (AssetsMetadata) MapByPath ¶
func (assetsMetadata AssetsMetadata) MapByPath() map[string]AssetMetadata
MapByPath returns the AssetMetadata as a map
type ModifiedAssetMetadata ¶
type ModifiedAssetMetadata struct { AssetMetadata AssetMetadata BodyModified bool AttrModified bool }
ModifiedAssetMetadata represents a description of changes to assetMetadata
func GetModifiedAssetMetadata ¶
func GetModifiedAssetMetadata(local, remote AssetMetadata) ModifiedAssetMetadata
GetModifiedAssetMetadata returns a ModifiedAssetMetadata created from the diff between local and remote