eyeglass
Version:
Sass modules for npm.
41 lines • 1.72 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const SassImplementation_1 = require("../util/SassImplementation");
const typescriptUtils_1 = require("../util/typescriptUtils");
const errorFor_1 = require("../util/errorFor");
const assetFunctions = function (eyeglass, sass) {
return {
"eyeglass-asset-uri($registered-assets, $relative-path)": function ($assets, $uri, done) {
let $assetMap;
if (!SassImplementation_1.isType(sass, $assets, "map")) {
return done(SassImplementation_1.typeError(sass, "map", $assets));
}
if (SassImplementation_1.isSassList(sass, $assets)) {
$assetMap = new sass.types.Map(0);
}
else {
$assetMap = $assets;
}
eyeglass.assets.resolveAsset($assetMap, $uri, function (error, assetUri) {
let result;
if (error || !typescriptUtils_1.isPresent(assetUri)) {
if (SassImplementation_1.isSassError(sass, error)) {
result = error;
}
else if (typescriptUtils_1.isPresent(error)) {
result = new sass.types.Error(errorFor_1.errorMessageFor(error));
}
else {
result = new sass.types.Error("[internal error] A uri was not returned");
}
}
else {
result = new sass.types.String(assetUri);
}
done(result);
});
}
};
};
exports.default = assetFunctions;
//# sourceMappingURL=asset-uri.js.map