-
-
Notifications
You must be signed in to change notification settings - Fork 197
/
Copy pathnode-modules-builder.ts
28 lines (24 loc) · 1.19 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
27
28
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);
if (_.isEmpty(dependencies)) {
return;
}
await platformData.platformProjectService.beforePrepareAllPlugins(projectData, dependencies);
for (const dependencyKey in dependencies) {
const dependency = dependencies[dependencyKey];
const isPlugin = !!dependency.nativescript;
if (isPlugin) {
this.$logger.debug(`Successfully prepared plugin ${dependency.name} for ${platformData.normalizedPlatformName.toLowerCase()}.`);
const pluginData = this.$pluginsService.convertToPluginData(dependency, projectData.projectDir);
await this.$pluginsService.preparePluginNativeCode({pluginData, platform: platformData.normalizedPlatformName.toLowerCase(), projectData});
}
}
}
}
$injector.register("nodeModulesBuilder", NodeModulesBuilder);