UNPKG

sass-alias

Version:

sass-alias is a node-sass and dart-sass importer that brings aliasing to sass.

51 lines (50 loc) 2.12 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.resolve = void 0; var url_1 = require("url"); var import_metadata_1 = require("./import-metadata"); var file_system_1 = require("./utils/file-system"); var path_1 = require("./utils/path"); function resolve(args) { var metadata = (0, import_metadata_1.getImportMetadata)(args); if (/^.*\.import\.(sass|scss)/.test(metadata.file) && !args.fromImport) return null; if (!metadata.file) { var templates = ['{path}/index.sass', '{path}/index.scss']; return getFileURLFromTemplates(templates, function (template) { return template.replace('{path}', (0, path_1.removeFinalSlash)(metadata.replaced)); }); } else if (metadata.extension) { var templates = ['{directory}/{filename}.{extension}', '{directory}/_{filename}.{extension}']; return getFileURLFromTemplates(templates, function (template) { return template .replace('{directory}', (0, path_1.removeFinalSlash)(metadata.directory)) .replace('{filename}', metadata.filename) .replace('{extension}', metadata.extension); }); } else if (metadata.filename) { var templates = [ '{directory}/{filename}.sass', '{directory}/{filename}.scss', '{directory}/_{filename}.sass', '{directory}/_{filename}.scss', ]; return getFileURLFromTemplates(templates, function (template) { return template .replace('{directory}', (0, path_1.removeFinalSlash)(metadata.directory)) .replace('{filename}', metadata.filename); }); } return null; } exports.resolve = resolve; function getFileURLFromTemplates(templates, transform) { return templates.reduce(function (resolved, template) { if (resolved instanceof URL) return resolved; var filepath = transform(template); return (0, file_system_1.existsAndIsFileSync)(filepath) ? (0, url_1.pathToFileURL)(filepath) : null; }, null); }