private async patchAppJson()

in src/extension/exponent/exponentHelper.ts [310:347]


    private async patchAppJson(isExpo: boolean = true): Promise<void> {
        let appJson: AppJson;
        try {
            appJson = await this.readAppJson();
        } catch {
            // if app.json doesn't exist but it's ok, we will create it
            appJson = <AppJson>{};
        }
        const packageName = await this.getPackageName();

        const expoConfig = <ExpConfig>(appJson.expo || {});
        if (!expoConfig.name || !expoConfig.slug) {
            expoConfig.slug = expoConfig.slug || appJson.name || packageName.replace(" ", "-");
            expoConfig.name = expoConfig.name || appJson.name || packageName;
            appJson.expo = expoConfig;
        }

        if (!appJson.name) {
            appJson.name = packageName;
        }

        if (!appJson.expo.sdkVersion) {
            const sdkVersion = await this.exponentSdk(true);
            appJson.expo.sdkVersion = sdkVersion;
        }

        if (!isExpo) {
            // entryPoint must be relative
            // https://docs.expo.io/versions/latest/workflow/configuration/#entrypoint
            appJson.expo.entryPoint = this.dotvscodePath(EXPONENT_INDEX, false);
        }

        appJson = appJson ? await this.writeAppJson(appJson) : appJson;

        if (!isExpo) {
            await this.createExpoEntry(appJson.expo.name);
        }
    }