From c085a5ce9b0ed49d952803b04a5f5340fda1f47b Mon Sep 17 00:00:00 2001 From: Ventsislav Georgiev Date: Thu, 8 Nov 2018 09:02:19 +0200 Subject: [PATCH] feat(extensibility): setting a custom path for the extensions --- PublicAPI.md | 11 +++++++++++ lib/services/extensibility-service.ts | 12 +++++++++--- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/PublicAPI.md b/PublicAPI.md index c3851816be..068f0963ad 100644 --- a/PublicAPI.md +++ b/PublicAPI.md @@ -19,6 +19,7 @@ const tns = require("nativescript"); * [getIOSAssetsStructure](#getiosassetsstructure) * [getAndroidAssetsStructure](#getandroidassetsstructure) * [extensibilityService](#extensibilityservice) + * [pathToExtensions](#pathToExtensions) * [installExtension](#installextension) * [uninstallExtension](#uninstallextension) * [getInstalledExtensions](#getinstalledextensions) @@ -290,6 +291,16 @@ interface IExtensionData { extensionName: string; } ``` +### pathToExtensions +Get/Set the to the CLI extensions. + +* Definition: +```TypeScript +/** + * The path to the CLI extensions. + */ +pathToExtensions: string; +``` ### installExtension Installs specified extension. diff --git a/lib/services/extensibility-service.ts b/lib/services/extensibility-service.ts index fa190dfbd7..a62a212ef9 100644 --- a/lib/services/extensibility-service.ts +++ b/lib/services/extensibility-service.ts @@ -4,14 +4,20 @@ import * as constants from "../constants"; import { createRegExp, regExpEscape } from "../common/helpers"; export class ExtensibilityService implements IExtensibilityService { - private get pathToExtensions(): string { - return path.join(this.$settingsService.getProfileDir(), "extensions"); - } + private customPathToExtensions: string = null; private get pathToPackageJson(): string { return path.join(this.pathToExtensions, constants.PACKAGE_JSON_FILE_NAME); } + public get pathToExtensions(): string { + return this.customPathToExtensions || path.join(this.$settingsService.getProfileDir(), "extensions"); + } + + public set pathToExtensions(pathToExtensions: string) { + this.customPathToExtensions = pathToExtensions; + } + constructor(private $fs: IFileSystem, private $logger: ILogger, private $packageManager: INodePackageManager,