-
-
Notifications
You must be signed in to change notification settings - Fork 197
/
Copy pathnode-modules-builder.ts
26 lines (21 loc) · 1.13 KB
/
node-modules-builder.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
export class NodeModulesBuilder implements INodeModulesBuilder {
constructor(
private $logger: ILogger,
private $nodeModulesDependenciesBuilder: INodeModulesDependenciesBuilder,
private $pluginsService: IPluginsService
) { }
public async prepareNodeModules({platformData , projectData}: IPrepareNodeModulesData): Promise<void> {
const dependencies = this.$nodeModulesDependenciesBuilder.getProductionDependencies(projectData.projectDir);
await platformData.platformProjectService.beforePrepareAllPlugins(projectData, dependencies);
const pluginsData = this.$pluginsService.getAllProductionPlugins(projectData, platformData.platformNameLowerCase, dependencies);
if (_.isEmpty(pluginsData)) {
return;
}
for (let i = 0; i < pluginsData.length; i++) {
const pluginData = pluginsData[i];
await this.$pluginsService.preparePluginNativeCode({pluginData, platform: platformData.normalizedPlatformName.toLowerCase(), projectData});
this.$logger.debug(`Successfully prepared plugin ${pluginData.name} for ${platformData.normalizedPlatformName.toLowerCase()}.`);
}
}
}
$injector.register("nodeModulesBuilder", NodeModulesBuilder);