mapillary-js
Version:
WebGL JavaScript library for displaying street level imagery from mapillary.com
45 lines (39 loc) • 1.27 kB
text/typescript
import * as falcor from "falcor";
import XmlHttpSource from "falcor-http-datasource";
type HttpDataSourceConfiguration = {
crossDomain: boolean;
withCredentials: boolean;
headers?: { [key: string]: string };
};
/**
* @class ModelCreator
*
* @classdesc Creates API models.
*/
export class ModelCreator {
/**
* Creates a Falcor model.
*
* @description Max cache size will be set to 16 MB. Authorization
* header will be added if user bearer token is supplied.
*
* @param {number} url - Json graph URL for API requests.
* @param {number} [userToken] - Optional user bearer token for API requests of
* protected resources.
* @returns {falcor.Model} Falcor model for HTTP requests.
*/
public createModel(url: string, userToken?: string): falcor.Model {
const configuration: HttpDataSourceConfiguration = {
crossDomain: true,
withCredentials: false,
};
if (userToken != null) {
configuration.headers = { "Authorization": `Bearer ${userToken}` };
}
return new falcor.Model({
maxSize: 16 * 1024 * 1024,
source: new XmlHttpSource(url, configuration),
});
}
}
export default ModelCreator;