Skip to content

Commit f552abc

Browse files
committed
chore: custom runtime support
1 parent 980dde7 commit f552abc

3 files changed

Lines changed: 19 additions & 11 deletions

File tree

lib/definitions/project.d.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,7 @@ interface INsConfigPlaform {
103103

104104
interface INsConfigIOS extends INsConfigPlaform {
105105
discardUncaughtJsExceptions?: boolean;
106+
runtimePackageName?: string
106107
}
107108

108109
interface INsConfigAndroid extends INsConfigPlaform {
@@ -141,6 +142,8 @@ interface INsConfigAndroid extends INsConfigPlaform {
141142
enableMultithreadedJavascript?: boolean;
142143

143144
gradleVersion?: string;
145+
146+
runtimePackageName?: string
144147
}
145148

146149
interface INsConfigHooks {

lib/services/android-plugin-build-service.ts

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -457,10 +457,10 @@ export class AndroidPluginBuildService implements IAndroidPluginBuildService {
457457

458458
private async getLatestRuntimeVersion(): Promise<string> {
459459
let runtimeVersion: string = null;
460-
460+
const packageName = this.$projectData.nsConfig.android.runtimePackageName || SCOPED_ANDROID_RUNTIME_NAME;
461461
try {
462462
let result = await this.$packageManager.view(
463-
SCOPED_ANDROID_RUNTIME_NAME,
463+
packageName,
464464
{
465465
"dist-tags": true,
466466
}
@@ -472,7 +472,7 @@ export class AndroidPluginBuildService implements IAndroidPluginBuildService {
472472
`Error while getting latest android runtime version from view command: ${err}`
473473
);
474474
const registryData = await this.$packageManager.getRegistryPackageData(
475-
SCOPED_ANDROID_RUNTIME_NAME
475+
packageName
476476
);
477477
runtimeVersion = registryData["dist-tags"].latest;
478478
}
@@ -496,9 +496,10 @@ export class AndroidPluginBuildService implements IAndroidPluginBuildService {
496496
};
497497
}
498498

499+
const packageName = this.$projectData.nsConfig.android.runtimePackageName || SCOPED_ANDROID_RUNTIME_NAME;
499500
// try reading from installed runtime first before reading from the npm registry...
500501
const installedRuntimePackageJSONPath = resolvePackageJSONPath(
501-
SCOPED_ANDROID_RUNTIME_NAME,
502+
packageName,
502503
{
503504
paths: [this.$projectData.projectDir],
504505
}
@@ -551,10 +552,11 @@ export class AndroidPluginBuildService implements IAndroidPluginBuildService {
551552
return localVersionInfo;
552553
}
553554

555+
const packageName = this.$projectData.nsConfig.android.runtimePackageName || SCOPED_ANDROID_RUNTIME_NAME;
554556
// fallback to reading from npm...
555557
try {
556558
let output = await this.$packageManager.view(
557-
`${SCOPED_ANDROID_RUNTIME_NAME}@${runtimeVersion}`,
559+
`${packageName}@${runtimeVersion}`,
558560
{ version_info: true }
559561
);
560562
output = output?.["version_info"] ?? output;
@@ -569,7 +571,7 @@ export class AndroidPluginBuildService implements IAndroidPluginBuildService {
569571
*
570572
*/
571573
output = await this.$packageManager.view(
572-
`${SCOPED_ANDROID_RUNTIME_NAME}@${runtimeVersion}`,
574+
`${packageName}@${runtimeVersion}`,
573575
{ gradle: true }
574576
);
575577
output = output?.["gradle"] ?? output;
@@ -589,7 +591,7 @@ export class AndroidPluginBuildService implements IAndroidPluginBuildService {
589591
`Error while getting gradle data for android runtime from view command: ${err}`
590592
);
591593
const registryData = await this.$packageManager.getRegistryPackageData(
592-
SCOPED_ANDROID_RUNTIME_NAME
594+
packageName
593595
);
594596
runtimeGradleVersions = registryData.versions[runtimeVersion];
595597
}

lib/services/project-data-service.ts

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ export class ProjectDataService implements IProjectDataService {
5050
private $fs: IFileSystem,
5151
private $staticConfig: IStaticConfig,
5252
private $logger: ILogger,
53+
private $projectData: IProjectData,
5354
private $devicePlatformsConstants: Mobile.IDevicePlatformsConstants,
5455
private $androidResourcesMigrationService: IAndroidResourcesMigrationService,
5556
private $injector: IInjector
@@ -629,13 +630,15 @@ export class ProjectDataService implements IProjectDataService {
629630
.getDependenciesFromPackageJson(projectDir)
630631
.devDependencies.find((d) => {
631632
if (platform === constants.PlatformTypes.ios) {
633+
const packageName = this.$projectData.nsConfig.ios.runtimePackageName || constants.SCOPED_IOS_RUNTIME_NAME;
632634
return [
633-
constants.SCOPED_IOS_RUNTIME_NAME,
635+
packageName,
634636
constants.TNS_IOS_RUNTIME_NAME,
635637
].includes(d.name);
636638
} else if (platform === constants.PlatformTypes.android) {
639+
const packageName = this.$projectData.nsConfig.android.runtimePackageName || constants.SCOPED_ANDROID_RUNTIME_NAME;
637640
return [
638-
constants.SCOPED_ANDROID_RUNTIME_NAME,
641+
packageName,
639642
constants.TNS_ANDROID_RUNTIME_NAME,
640643
].includes(d.name);
641644
}
@@ -686,12 +689,12 @@ export class ProjectDataService implements IProjectDataService {
686689
);
687690
if (platform === constants.PlatformTypes.ios) {
688691
return {
689-
name: constants.SCOPED_IOS_RUNTIME_NAME,
692+
name: this.$projectData.nsConfig.ios.runtimePackageName || constants.SCOPED_IOS_RUNTIME_NAME,
690693
version: null,
691694
};
692695
} else if (platform === constants.PlatformTypes.android) {
693696
return {
694-
name: constants.SCOPED_ANDROID_RUNTIME_NAME,
697+
name: this.$projectData.nsConfig.android.runtimePackageName || constants.SCOPED_ANDROID_RUNTIME_NAME,
695698
version: null,
696699
};
697700
}

0 commit comments

Comments
 (0)