file_resource_provider

The file_resource_provider module defines a mechanism to load static assets from the web server of the LaxarJS application efficiently. Whenever a file should be requested from the server, the file resource provider should be used in favor of manual http requests, due to two reasons: During development it reduces the amount of 404 status replies for files that may or may not exist, and when making a release build, file contents may optionally be embedded in the build bundle. This makes further http requests redundant, which is especially relevant in high-latency networks, such as cellular networks.

This module should not be used directly, but via the axFileResourceProvider service provided by LaxarJS.

Contents

Module Members

Types

Module Members

create( rootPath )

Creates and returns a new instance.

Parameters
Property Type Description
rootPath String the path to the root of the application. It is needed to prefix relative paths found in a listing with an absolute prefix
Returns
Type Description
FileResourceProvider a new instance

init( q, httpClient )

Initializes the module.

Parameters
Property Type Description
q Object a promise library like AngularJS' $q
httpClient Object a http client whose api conforms to AngularJS' $http service

Types

FileResourceProvider

FileResourceProvider#provide( url )

If available, resolves the returned promise with the requested file's contents. Otherwise the promise is rejected. It uses the file mapping prior to fetching the contents to prevent from 404 errors. In the optimal case the contents are already embedded in the listing and simply need to be returned. If no listing for the path is available, a request simply takes place and either succeeds or fails.

Parameters
Property Type Description
url String the uri to the resource to provide
Returns
Type Description
Promise resolved with the file's content or rejected when the file could not be fetched

FileResourceProvider#isAvailable( url )

Resolves the returned promise with true as argument, if the requested resource is available and false otherwise. If no listing for the path is available, a HEAD request takes place and either succeeds or fails.

Parameters
Property Type Description
url String the uri to check for availability
Returns
Type Description
Promise a promise that is always resolved with a boolean value

FileResourceProvider#setFileListingUri( directory, listingUri )

Sets the uri to a file listing file for a given path.

Parameters
Property Type Description
directory String the directory the file listing is valid for
listingUri String the uri to the listing file

FileResourceProvider#setFileListingContents( directory, listing )

Sets the contents of a file listing file to the given object. This a useful alternative to FileResourceProvider#setFileListingUri, to avoid an additional round-trip during production.

Parameters
Property Type Description
directory String the directory the file listing is valid for
listing String the actual file listing