• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

adobe / reactor-turbine / 26974271630

04 Jun 2026 07:23PM UTC coverage: 18.928% (-77.0%) from 95.912%
26974271630

Pull #201

github

web-flow
Merge 99f374fa8 into 4a42733a4
Pull Request #201: Platir 64071 update vulnerability chain

36 of 379 branches covered (9.5%)

Branch coverage included in aggregate %.

4 of 6 new or added lines in 1 file covered. (66.67%)

640 existing lines in 47 files now uncovered.

197 of 852 relevant lines covered (23.12%)

1.21 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

17.5
/src/hydrateModuleProvider.js
1
/***************************************************************************************
2
 * (c) 2017 Adobe. All rights reserved.
3
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
4
 * you may not use this file except in compliance with the License. You may obtain a copy
5
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
6
 *
7
 * Unless required by applicable law or agreed to in writing, software distributed under
8
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
9
 * OF ANY KIND, either express or implied. See the License for the specific language
10
 * governing permissions and limitations under the License.
11
 ****************************************************************************************/
12

13
var validateInjectedParams = require('./helpers/validate-injected-params');
3✔
14

15
function injectHydrateModuleProvider({
16
  createGetSharedModuleExports,
17
  createGetExtensionSettings,
18
  createGetHostedLibFileUrl,
19
  resolveRelativePath,
20
  createPublicRequire,
21
  logger
22
}) {
23
  return function hydrateModuleProvider(
6✔
24
    container,
25
    moduleProvider,
26
    debugController,
27
    replaceTokens,
28
    getDataElementValue,
29
    settingsFileTransformer,
30
    decorateWithDynamicHost
31
  ) {
UNCOV
32
    var extensions = container.extensions;
×
UNCOV
33
    var buildInfo = container.buildInfo;
×
UNCOV
34
    var environment = container.environment;
×
UNCOV
35
    var propertySettings = container.property.settings;
×
36

UNCOV
37
    if (extensions) {
×
UNCOV
38
      var getSharedModuleExports = createGetSharedModuleExports(
×
39
        extensions,
40
        moduleProvider
41
      );
42

UNCOV
43
      Object.keys(extensions).forEach(function (extensionName) {
×
UNCOV
44
        var extension = extensions[extensionName];
×
UNCOV
45
        var extensionSettings = extension.settings;
×
UNCOV
46
        if (Array.isArray(extension.filePaths)) {
×
UNCOV
47
          extensionSettings = settingsFileTransformer(
×
48
            extensionSettings,
49
            extension.filePaths
50
          );
51
        }
UNCOV
52
        var getExtensionSettings = createGetExtensionSettings(
×
53
          replaceTokens,
54
          extensionSettings
55
        );
56

UNCOV
57
        if (extension.modules) {
×
UNCOV
58
          var prefixedLogger = logger.createPrefixedLogger(
×
59
            extension.displayName
60
          );
UNCOV
61
          var getHostedLibFileUrl = createGetHostedLibFileUrl(
×
62
            decorateWithDynamicHost,
63
            extension.hostedLibFilesBaseUrl,
64
            buildInfo.minified
65
          );
UNCOV
66
          var turbine = {
×
67
            buildInfo: buildInfo,
68
            environment: environment,
69
            property: {
70
              name: container.property.name,
71
              id: container.property.id
72
            },
73
            getDataElementValue: getDataElementValue,
74
            getExtensionSettings: getExtensionSettings,
75
            getHostedLibFileUrl: getHostedLibFileUrl,
76
            getSharedModule: getSharedModuleExports,
77
            logger: prefixedLogger,
78
            propertySettings: propertySettings,
79
            replaceTokens: replaceTokens,
80
            onDebugChanged: debugController.onDebugChanged,
81
            get debugEnabled() {
UNCOV
82
              return debugController.getDebugEnabled();
×
83
            }
84
          };
85

UNCOV
86
          Object.keys(extension.modules).forEach(function (referencePath) {
×
UNCOV
87
            var module = extension.modules[referencePath];
×
UNCOV
88
            var getModuleExportsByRelativePath = function (relativePath) {
×
UNCOV
89
              var resolvedReferencePath = resolveRelativePath(
×
90
                referencePath,
91
                relativePath
92
              );
UNCOV
93
              return moduleProvider.getModuleExports(resolvedReferencePath);
×
94
            };
UNCOV
95
            var publicRequire = createPublicRequire(
×
96
              getModuleExportsByRelativePath
97
            );
98

UNCOV
99
            moduleProvider.registerModule(
×
100
              referencePath,
101
              module,
102
              extensionName,
103
              publicRequire,
104
              turbine
105
            );
106
          });
107
        }
108
      });
109

110
      // We want to extract the module exports immediately to allow the modules
111
      // to run some logic immediately.
112
      // We need to do the extraction here in order for the moduleProvider to
113
      // have all the modules previously registered. (eg. when moduleA needs moduleB, both modules
114
      // must exist inside moduleProvider).
UNCOV
115
      moduleProvider.hydrateCache();
×
116
    }
UNCOV
117
    return moduleProvider;
×
118
  };
119
}
120

121
const validateInjection = validateInjectedParams(injectHydrateModuleProvider);
3✔
122

123
module.exports = validateInjection({
3✔
124
  createGetSharedModuleExports: require('./createGetSharedModuleExports'),
125
  createGetExtensionSettings: require('./createGetExtensionSettings'),
126
  createGetHostedLibFileUrl: require('./createGetHostedLibFileUrl'),
127
  resolveRelativePath: require('./resolveRelativePath'),
128
  createPublicRequire: require('./createPublicRequire'),
129
  logger: require('./logger')
130
});
131

132
if (REACTOR_KARMA_CI_UNIT_TEST_MODE) {
3!
133
  /* START.TESTS_ONLY */
134
  module.exports.injectHydrateModuleProvider = validateInjection;
3✔
135
  /* END.TESTS_ONLY */
136
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc