gulp/components.js   A
last analyzed

Complexity

Total Complexity 6
Complexity/F 2

Size

Lines of Code 62
Function Count 3

Duplication

Duplicated Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
wmc 6
eloc 48
mnd 3
bc 3
fnc 3
dl 0
loc 62
rs 10
bpm 1
cpm 2
noi 0
c 0
b 0
f 0
1
const gulpUtils = require("./gulp-utils.js");
2
const utils = require("./utils.js");
3
const mainDir = "./extensions/components";
4
const prefix = "com_";
5
const mainBaseTask = "components";
6
7
const componentDirs = utils.getFilesByType(mainDir, "directory");
8
const componentTasks = gulpUtils.generateDirTasks(mainDir, mainBaseTask);
9
10
componentDirs.forEach(function (component) {
11
    const componentDir = mainDir + "/" + component;
12
    const componentBaseTask = mainBaseTask + ":" + component;
13
    const componentExtensionName =
14
        component.substr(0, 4) === prefix ? component.substr(4) : component;
15
16
    // Release tasks
17
    gulpUtils.generateContentTasks(
18
        componentDir,
19
        [],
20
        componentExtensionName,
21
        componentBaseTask,
22
        "",
23
        mainBaseTask,
24
        prefix + component
25
    );
26
27
    const componentStandaloneFiles = [];
28
    utils.getFilesByType(componentDir, "file").forEach(function (file) {
29
        componentStandaloneFiles.push(componentDir + "/" + file);
30
    });
31
32
    // Copy tasks (inherits to admin/site directories).  Reserved directory names: "admin" for backend, and any other for the frontend
33
    const componentDirTasks = gulpUtils.generateDirTasks(
34
        componentDir,
35
        componentBaseTask
36
    );
37
    componentDirTasks.directories.forEach(function (componentSite) {
38
        const componentSiteDir =
39
            mainDir + "/" + component + "/" + componentSite.directory;
40
        const componentSiteBaseTask =
41
            mainBaseTask + ":" + component + ":" + componentSite.directory;
42
        const componentSiteWebDir =
43
            componentSite.directory === "admin"
44
                ? "administrator/components/" + prefix + component
45
                : "components/" + prefix + component;
46
        gulpUtils.generateContentTasks(
47
            componentSiteDir,
48
            componentSite.directory === "admin" ? componentStandaloneFiles : [],
49
            componentExtensionName,
50
            componentSiteBaseTask,
51
            componentSiteWebDir,
52
            "",
53
            ""
54
        );
55
    });
56
    gulpUtils.createGulpTasks(
57
        componentBaseTask,
58
        componentDirTasks.tasks,
59
        gulpUtils.getBaseWebTasks()
60
    );
61
});
62
gulpUtils.createGulpTasks(mainBaseTask, componentTasks.tasks, false);
63