41 lines
1.6 KiB
JavaScript
Executable File
41 lines
1.6 KiB
JavaScript
Executable File
"use strict";
|
|
/**
|
|
* @license
|
|
* Copyright Google LLC All Rights Reserved.
|
|
*
|
|
* Use of this source code is governed by an MIT-style license that can be
|
|
* found in the LICENSE file at https://angular.dev/license
|
|
*/
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.findStylesheetFiles = findStylesheetFiles;
|
|
const core_1 = require("@angular-devkit/core");
|
|
/** Regular expression that matches stylesheet paths */
|
|
const STYLESHEET_REGEX = /.*\.(css|scss)$/;
|
|
/**
|
|
* Finds stylesheets in the given directory from within the specified tree.
|
|
* @param tree Devkit tree where stylesheet files can be found in.
|
|
* @param startDirectory Optional start directory where stylesheets should be searched in.
|
|
* This can be useful if only stylesheets within a given folder are relevant (to avoid
|
|
* unnecessary iterations).
|
|
*/
|
|
function findStylesheetFiles(tree, startDirectory = '/') {
|
|
const result = [];
|
|
const visitDir = (dirPath) => {
|
|
const { subfiles, subdirs } = tree.getDir(dirPath);
|
|
subfiles.forEach(fileName => {
|
|
if (STYLESHEET_REGEX.test(fileName)) {
|
|
result.push((0, core_1.join)(dirPath, fileName));
|
|
}
|
|
});
|
|
// Visit directories within the current directory to find other stylesheets.
|
|
subdirs.forEach(fragment => {
|
|
// Do not visit directories or files inside node modules or `dist/` folders.
|
|
if (fragment !== 'node_modules' && fragment !== 'dist') {
|
|
visitDir((0, core_1.join)(dirPath, fragment));
|
|
}
|
|
});
|
|
};
|
|
visitDir(startDirectory);
|
|
return result;
|
|
}
|
|
//# sourceMappingURL=find-stylesheets.js.map
|