Skip to content

Commit b96a8cc

Browse files
committed
chore(public api): add projectDataService to public api documentation and tests
1 parent a824b19 commit b96a8cc

File tree

2 files changed

+79
-0
lines changed

2 files changed

+79
-0
lines changed

PublicAPI.md

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@ const tns = require("nativescript");
1111
* [projectService](#projectservice)
1212
* [createProject](#createproject)
1313
* [isValidNativeScriptProject](#isvalidnativescriptproject)
14+
* [projectDataService](#projectdataservice)
15+
* [getProjectData](#getprojectdata)
16+
* [getProjectDataFromContent](#getprojectdatafromcontent)
1417
* [extensibilityService](#extensibilityservice)
1518
* [installExtension](#installextension)
1619
* [uninstallExtension](#uninstallextension)
@@ -109,6 +112,81 @@ const isValidProject = tns.projectService.isValidNativeScriptProject("/tmp/myPro
109112
console.log(isValidProject); // true or false
110113
```
111114
115+
## projectDataService
116+
`projectDataService` provides a way to get information about a NativeScript project.
117+
118+
A common interface describing the results of a method is `IProjectData`:
119+
120+
```TypeScript
121+
interface IProjectData extends IProjectDir {
122+
projectName: string;
123+
platformsDir: string;
124+
projectFilePath: string;
125+
projectId?: string;
126+
dependencies: any;
127+
devDependencies: IStringDictionary;
128+
appDirectoryPath: string;
129+
appResourcesDirectoryPath: string;
130+
projectType: string;
131+
nsConfig: INsConfig;
132+
/**
133+
* Initializes project data with the given project directory. If none supplied defaults to cwd.
134+
* @param {string} projectDir Project root directory.
135+
* @returns {void}
136+
*/
137+
initializeProjectData(projectDir?: string): void;
138+
/**
139+
* Initializes project data with the given package.json, nsconfig.json content and project directory. If none supplied defaults to cwd.
140+
* @param {string} packageJsonContent: string
141+
* @param {string} nsconfigContent: string
142+
* @param {string} projectDir Project root directory.
143+
* @returns {void}
144+
*/
145+
initializeProjectDataFromContent(packageJsonContent: string, nsconfigContent: string, projectDir?: string): void;
146+
getAppDirectoryPath(projectDir?: string): string;
147+
getAppDirectoryRelativePath(): string;
148+
getAppResourcesDirectoryPath(projectDir?: string): string;
149+
getAppResourcesRelativeDirectoryPath(): string;
150+
}
151+
152+
interface IProjectDir {
153+
projectDir: string;
154+
}
155+
156+
interface INsConfig {
157+
appPath?: string;
158+
appResourcesPath?:string;
159+
}
160+
```
161+
162+
### getProjectData
163+
Returns an initialized IProjectData object containing data about the NativeScript project in the provided `projectDir`.
164+
165+
* Definition:
166+
```TypeScript
167+
/**
168+
* Returns an initialized IProjectData object containing data about the NativeScript project in the provided projectDir
169+
* @param {string} projectDir The path to the project
170+
* @returns {IProjectData} Information about the NativeScript project
171+
*/
172+
getProjectData(projectDir: string): IProjectData
173+
```
174+
175+
### getProjectDataFromContent
176+
Returns an IProjectData object that is initialized with the provided package.json content, nsconfig.json content and `projectDir`.
177+
178+
* Definition:
179+
```TypeScript
180+
/**
181+
* Returns an initialized IProjectData object containing data about the NativeScript project in the provided projectDir
182+
* @param {string} packageJsonContent The content of the project.json file in the root of the project
183+
* @param {string} nsconfigContent The content of the nsconfig.json file in the root of the project
184+
* @param {string} projectDir The path to the project
185+
* @returns {IProjectData} Information about the NativeScript project
186+
*/
187+
getProjectDataFromContent(packageJsonContent: string, nsconfigContent: string, projectDir?: string): IProjectData
188+
```
189+
112190
## extensibilityService
113191
`extensibilityService` module gives access to methods for working with CLI's extensions - list, install, uninstall, load them. The extensions add new functionality to CLI, so once an extension is loaded, all methods added to it's public API are accessible directly through CLI when it is used as a library. Extensions may also add new commands, so they are accessible through command line when using NativeScript CLI.
114192

test/nativescript-cli-lib.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ describe("nativescript-cli-lib", () => {
1616
settingsService: ["setSettings"],
1717
deviceEmitter: null,
1818
projectService: ["createProject", "isValidNativeScriptProject"],
19+
projectDataService: ["getProjectData", "getProjectDataFromContent"],
1920
localBuildService: ["build"],
2021
deviceLogProvider: null,
2122
npm: ["install", "uninstall", "view", "search"],

0 commit comments

Comments
 (0)