Skip to content

Commit ab37e73

Browse files
committed
support for node 0.12
update cli to exclude special logic for older versions of node
1 parent 62cb622 commit ab37e73

File tree

1 file changed

+30
-43
lines changed

1 file changed

+30
-43
lines changed

lib/services/android-project-service.ts

+30-43
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,10 @@ export class AndroidProjectService extends projectServiceBaseLib.PlatformProject
1414
private static VALUES_VERSION_DIRNAME_PREFIX = AndroidProjectService.VALUES_DIRNAME + "-v";
1515
private static ANDROID_PLATFORM_NAME = "android";
1616
private static MIN_RUNTIME_VERSION_WITH_GRADLE = "1.3.0";
17-
private static MIN_REQUIRED_NODEJS_VERSION_FOR_STATIC_BINDINGS = "4.2.1";
1817
private static REQUIRED_DEV_DEPENDENCIES = [
1918
{ name: "babel-traverse", version: "^6.4.5" },
2019
{ name: "babel-types", version: "^6.4.5" },
2120
{ name: "babylon", version: "^6.4.5" },
22-
{ name: "filewalker", version: "^0.1.2" },
2321
{ name: "lazy", version: "^1.0.11" }
2422
];
2523

@@ -133,45 +131,38 @@ export class AndroidProjectService extends projectServiceBaseLib.PlatformProject
133131
}
134132

135133
this.cleanResValues(targetSdkVersion, frameworkVersion).wait();
136-
if (this.canUseStaticBindingGenerator()) {
137-
let npmConfig = {
138-
"save": true,
139-
"save-dev": true,
140-
"save-exact": true,
141-
"silent": true
142-
};
143-
144-
let projectPackageJson: any = this.$fs.readJson(this.$projectData.projectFilePath).wait();
145-
146-
_.each(AndroidProjectService.REQUIRED_DEV_DEPENDENCIES, (dependency: any) => {
147-
let dependencyVersionInProject = (projectPackageJson.dependencies && projectPackageJson.dependencies[dependency.name]) ||
148-
(projectPackageJson.devDependencies && projectPackageJson.devDependencies[dependency.name]);
149-
150-
if (!dependencyVersionInProject) {
151-
this.$npm.install(`${dependency.name}@${dependency.version}`, this.$projectData.projectDir, npmConfig).wait();
152-
} else {
153-
let cleanedVerson = semver.clean(dependencyVersionInProject);
154-
155-
// The plugin version is not valid. Check node_modules for the valid version.
156-
if (!cleanedVerson) {
157-
let pathToPluginPackageJson = path.join(this.$projectData.projectDir, constants.NODE_MODULES_FOLDER_NAME, dependency.name, constants.PACKAGE_JSON_FILE_NAME);
158-
dependencyVersionInProject = this.$fs.exists(pathToPluginPackageJson).wait() && this.$fs.readJson(pathToPluginPackageJson).wait().version;
159-
}
160-
161-
if (!semver.satisfies(dependencyVersionInProject || cleanedVerson, dependency.version)) {
162-
this.$errors.failWithoutHelp(`Your project have installed ${dependency.name} version ${cleanedVerson} but Android platform requires version ${dependency.version}.`);
163-
}
134+
135+
let npmConfig = {
136+
"save": true,
137+
"save-dev": true,
138+
"save-exact": true,
139+
"silent": true
140+
};
141+
142+
let projectPackageJson: any = this.$fs.readJson(this.$projectData.projectFilePath).wait();
143+
144+
_.each(AndroidProjectService.REQUIRED_DEV_DEPENDENCIES, (dependency: any) => {
145+
let dependencyVersionInProject = (projectPackageJson.dependencies && projectPackageJson.dependencies[dependency.name]) ||
146+
(projectPackageJson.devDependencies && projectPackageJson.devDependencies[dependency.name]);
147+
148+
if (!dependencyVersionInProject) {
149+
this.$npm.install(`${dependency.name}@${dependency.version}`, this.$projectData.projectDir, npmConfig).wait();
150+
} else {
151+
let cleanedVerson = semver.clean(dependencyVersionInProject);
152+
153+
// The plugin version is not valid. Check node_modules for the valid version.
154+
if (!cleanedVerson) {
155+
let pathToPluginPackageJson = path.join(this.$projectData.projectDir, constants.NODE_MODULES_FOLDER_NAME, dependency.name, constants.PACKAGE_JSON_FILE_NAME);
156+
dependencyVersionInProject = this.$fs.exists(pathToPluginPackageJson).wait() && this.$fs.readJson(pathToPluginPackageJson).wait().version;
164157
}
165-
});
166-
} else {
167-
this.$logger.printMarkdown(` As you are using Node.js \`${process.version}\` Static Binding Generator will be turned off.` +
168-
`Upgrade your Node.js to ${AndroidProjectService.MIN_REQUIRED_NODEJS_VERSION_FOR_STATIC_BINDINGS} or later, so you can use this feature.`);
169-
}
170-
}).future<any>()();
171-
}
172158

173-
private canUseStaticBindingGenerator(): boolean {
174-
return semver.gte(process.version, AndroidProjectService.MIN_REQUIRED_NODEJS_VERSION_FOR_STATIC_BINDINGS);
159+
if (!semver.satisfies(dependencyVersionInProject || cleanedVerson, dependency.version)) {
160+
this.$errors.failWithoutHelp(`Your project have installed ${dependency.name} version ${cleanedVerson} but Android platform requires version ${dependency.version}.`);
161+
}
162+
}
163+
});
164+
165+
}).future<any>()();
175166
}
176167

177168
private useGradleWrapper(frameworkDir: string): boolean {
@@ -296,10 +287,6 @@ export class AndroidProjectService extends projectServiceBaseLib.PlatformProject
296287
buildOptions.push(`-PksPassword=${this.$options.keyStorePassword}`);
297288
}
298289

299-
if (!this.canUseStaticBindingGenerator()) {
300-
buildOptions.push("-PdontRunSbg");
301-
}
302-
303290
return buildOptions;
304291
}
305292

0 commit comments

Comments
 (0)