src/resource.js
function resource(object, data) {
	if(data === undefined)
		return resourceMap.get(object) || {};

	if(!object || typeof object !== "object" && typeof object !== "function" || resourceMap.has(object))
		throw new TypeError("Could not transform given object into a resource.");

	if(!data || typeof data !== "object")
		throw new TypeError("Resource data has to be an object.");

	resourceMap.set(object, data);

	return object;
}
function resource(object, data) {
	if(data === undefined)
		return resourceMap.get(object) || {};

	if(!object || typeof object !== "object" && typeof object !== "function" || resourceMap.has(object))
		throw new TypeError("Could not transform given object into a resource.");

	if(!data || typeof data !== "object")
		throw new TypeError("Resource data has to be an object.");

	resourceMap.set(object, data);

	return object;
}
Attaches resource data to a given object. The resource data is usually used to store metadata (e. g. a content type) for an object.
@module resource
@param {!object|!function} object The object that should get the given resource data.
@param {!object} data The resource data that should be attached to `object`.
@return {!object|!function} The given object.