[6a3a178] | 1 | "use strict";
|
---|
| 2 | Object.defineProperty(exports, "__esModule", { value: true });
|
---|
| 3 | var tslib_1 = require("tslib");
|
---|
| 4 | var dimension_1 = tslib_1.__importDefault(require("../less/tree/dimension"));
|
---|
| 5 | var expression_1 = tslib_1.__importDefault(require("../less/tree/expression"));
|
---|
| 6 | var function_registry_1 = tslib_1.__importDefault(require("./../less/functions/function-registry"));
|
---|
| 7 | exports.default = (function (environment) {
|
---|
| 8 | function imageSize(functionContext, filePathNode) {
|
---|
| 9 | var filePath = filePathNode.value;
|
---|
| 10 | var currentFileInfo = functionContext.currentFileInfo;
|
---|
| 11 | var currentDirectory = currentFileInfo.rewriteUrls ?
|
---|
| 12 | currentFileInfo.currentDirectory : currentFileInfo.entryPath;
|
---|
| 13 | var fragmentStart = filePath.indexOf('#');
|
---|
| 14 | var fragment = '';
|
---|
| 15 | if (fragmentStart !== -1) {
|
---|
| 16 | fragment = filePath.slice(fragmentStart);
|
---|
| 17 | filePath = filePath.slice(0, fragmentStart);
|
---|
| 18 | }
|
---|
| 19 | var fileManager = environment.getFileManager(filePath, currentDirectory, functionContext.context, environment, true);
|
---|
| 20 | if (!fileManager) {
|
---|
| 21 | throw {
|
---|
| 22 | type: 'File',
|
---|
| 23 | message: "Can not set up FileManager for " + filePathNode
|
---|
| 24 | };
|
---|
| 25 | }
|
---|
| 26 | var fileSync = fileManager.loadFileSync(filePath, currentDirectory, functionContext.context, environment);
|
---|
| 27 | if (fileSync.error) {
|
---|
| 28 | throw fileSync.error;
|
---|
| 29 | }
|
---|
| 30 | var sizeOf = require('image-size');
|
---|
| 31 | return sizeOf(fileSync.filename);
|
---|
| 32 | }
|
---|
| 33 | var imageFunctions = {
|
---|
| 34 | 'image-size': function (filePathNode) {
|
---|
| 35 | var size = imageSize(this, filePathNode);
|
---|
| 36 | return new expression_1.default([
|
---|
| 37 | new dimension_1.default(size.width, 'px'),
|
---|
| 38 | new dimension_1.default(size.height, 'px')
|
---|
| 39 | ]);
|
---|
| 40 | },
|
---|
| 41 | 'image-width': function (filePathNode) {
|
---|
| 42 | var size = imageSize(this, filePathNode);
|
---|
| 43 | return new dimension_1.default(size.width, 'px');
|
---|
| 44 | },
|
---|
| 45 | 'image-height': function (filePathNode) {
|
---|
| 46 | var size = imageSize(this, filePathNode);
|
---|
| 47 | return new dimension_1.default(size.height, 'px');
|
---|
| 48 | }
|
---|
| 49 | };
|
---|
| 50 | function_registry_1.default.addMultiple(imageFunctions);
|
---|
| 51 | });
|
---|
| 52 | //# sourceMappingURL=image-size.js.map |
---|