@teambit/api-server 0.0.124 → 0.0.125

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,6 +2,7 @@ import { CompFiles, Workspace, FilesStatus } from '@teambit/workspace';
2
2
  import { PathLinux, PathOsBasedAbsolute, PathOsBasedRelative } from '@teambit/legacy/dist/utils/path';
3
3
  import { SnappingMain } from '@teambit/snapping';
4
4
  import { LanesMain } from '@teambit/lanes';
5
+ import { InstallMain } from '@teambit/install';
5
6
  declare type PathFromLastSnap = {
6
7
  [relativeToWorkspace: PathLinux]: string;
7
8
  };
@@ -17,7 +18,8 @@ export declare class APIForIDE {
17
18
  private workspace;
18
19
  private snapping;
19
20
  private lanes;
20
- constructor(workspace: Workspace, snapping: SnappingMain, lanes: LanesMain);
21
+ private installer;
22
+ constructor(workspace: Workspace, snapping: SnappingMain, lanes: LanesMain, installer: InstallMain);
21
23
  listIdsWithPaths(): Promise<{}>;
22
24
  getMainFilePath(id: string): Promise<PathOsBasedAbsolute>;
23
25
  importLane(laneName: string, { skipDependencyInstallation }: {
@@ -33,6 +35,7 @@ export declare class APIForIDE {
33
35
  getCompFilesDirPathFromLastSnapUsingCompFiles(compFiles: CompFiles): Promise<{
34
36
  [relativePath: string]: string;
35
37
  }>;
38
+ install(): Promise<import("@teambit/component").ComponentMap<string>>;
36
39
  getDataToInitSCM(): Promise<DataToInitSCM>;
37
40
  getCompFilesDirPathFromLastSnapForAllComps(): Promise<{
38
41
  [relativePath: string]: string;
@@ -47,10 +47,11 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
47
47
  const FILES_HISTORY_DIR = 'files-history';
48
48
  const LAST_SNAP_DIR = 'last-snap';
49
49
  class APIForIDE {
50
- constructor(workspace, snapping, lanes) {
50
+ constructor(workspace, snapping, lanes, installer) {
51
51
  this.workspace = workspace;
52
52
  this.snapping = snapping;
53
53
  this.lanes = lanes;
54
+ this.installer = installer;
54
55
  }
55
56
  async listIdsWithPaths() {
56
57
  const ids = await this.workspace.listIds();
@@ -126,6 +127,11 @@ class APIForIDE {
126
127
  }));
127
128
  return results;
128
129
  }
130
+ async install() {
131
+ return this.installer.install(undefined, {
132
+ optimizeReportForNonTerminal: true
133
+ });
134
+ }
129
135
  async getDataToInitSCM() {
130
136
  const ids = await this.workspace.listIds();
131
137
  const results = {};
@@ -1 +1 @@
1
- {"version":3,"names":["FILES_HISTORY_DIR","LAST_SNAP_DIR","APIForIDE","constructor","workspace","snapping","lanes","listIdsWithPaths","ids","listIds","reduce","acc","id","toStringWithoutVersion","componentDir","getMainFilePath","compId","resolveComponentId","comp","get","path","join","state","_consumer","mainFile","importLane","laneName","skipDependencyInstallation","results","switchLanes","getAll","components","map","c","toString","getCompFiles","dirAbs","filesRelative","filesystem","files","file","relative","getCompFilesDirPathFromLastSnap","hasVersion","compDir","ignoreVersion","filePathsRootDir","scope","fs","remove","modelComponent","getBitObjectModelComponent","Error","versionObject","getBitObjectVersion","version","sourceFiles","modelFilesToSourceFiles","legacyScope","objects","Promise","all","filePath","outputFile","contents","pathJoinLinux","getCompFilesDirPathFromLastSnapUsingCompFiles","compFiles","getHeadFiles","getDataToInitSCM","pMap","getFilesModification","pathsFromLastSnap","idStr","filesStatus","getFilesStatus","concurrency","getCompFilesDirPathFromLastSnapForAllComps","compResults","getCurrentLaneName","getCurrentLaneId","name","tagOrSnap","message","params","build","isOnMain","tag","snap","taggedComponents","snappedComponents"],"sources":["api-for-ide.ts"],"sourcesContent":["import path from 'path';\nimport fs from 'fs-extra';\nimport { CompFiles, Workspace, FilesStatus } from '@teambit/workspace';\nimport { PathLinux, PathOsBasedAbsolute, PathOsBasedRelative, pathJoinLinux } from '@teambit/legacy/dist/utils/path';\nimport pMap from 'p-map';\nimport { SnappingMain } from '@teambit/snapping';\nimport { LanesMain } from '@teambit/lanes';\n\nconst FILES_HISTORY_DIR = 'files-history';\nconst LAST_SNAP_DIR = 'last-snap';\n\ntype PathFromLastSnap = { [relativeToWorkspace: PathLinux]: string };\n\ntype InitSCMEntry = {\n filesStatus: FilesStatus;\n pathsFromLastSnap: PathFromLastSnap;\n compDir: PathLinux;\n};\n\ntype DataToInitSCM = { [compId: string]: InitSCMEntry };\n\nexport class APIForIDE {\n constructor(private workspace: Workspace, private snapping: SnappingMain, private lanes: LanesMain) {}\n\n async listIdsWithPaths() {\n const ids = await this.workspace.listIds();\n return ids.reduce((acc, id) => {\n acc[id.toStringWithoutVersion()] = this.workspace.componentDir(id);\n return acc;\n }, {});\n }\n\n async getMainFilePath(id: string): Promise<PathOsBasedAbsolute> {\n const compId = await this.workspace.resolveComponentId(id);\n const comp = await this.workspace.get(compId);\n return path.join(this.workspace.componentDir(compId), comp.state._consumer.mainFile);\n }\n\n async importLane(\n laneName: string,\n { skipDependencyInstallation }: { skipDependencyInstallation?: boolean }\n ): Promise<string[]> {\n const results = await this.lanes.switchLanes(laneName, {\n skipDependencyInstallation,\n getAll: true,\n });\n return (results.components || []).map((c) => c.id.toString());\n }\n\n async getCompFiles(id: string): Promise<{ dirAbs: string; filesRelative: PathOsBasedRelative[] }> {\n const compId = await this.workspace.resolveComponentId(id);\n const comp = await this.workspace.get(compId);\n const dirAbs = this.workspace.componentDir(compId);\n const filesRelative = comp.state.filesystem.files.map((file) => file.relative);\n return { dirAbs, filesRelative };\n }\n\n async getCompFilesDirPathFromLastSnap(id: string): Promise<{ [relativePath: string]: string }> {\n const compId = await this.workspace.resolveComponentId(id);\n if (!compId.hasVersion()) return {}; // it's a new component.\n const compDir = this.workspace.componentDir(compId, { ignoreVersion: true }, { relative: true });\n // const dirName = filenamify(compId.toString(), { replacement: '_' });\n const filePathsRootDir = path.join(this.workspace.scope.path, FILES_HISTORY_DIR, LAST_SNAP_DIR, compDir);\n await fs.remove(filePathsRootDir); // in case it has old data\n\n const modelComponent = await this.workspace.scope.getBitObjectModelComponent(compId);\n if (!modelComponent) {\n throw new Error(`unable to find ${compId.toString()} in the local scope, please run \"bit import\"`);\n }\n const versionObject = await this.workspace.scope.getBitObjectVersion(modelComponent, compId.version as string);\n if (!versionObject)\n throw new Error(`unable to find the Version object of ${compId.toString()}, please run \"bit import\"`);\n const sourceFiles = await versionObject.modelFilesToSourceFiles(this.workspace.scope.legacyScope.objects);\n const results: { [relativePath: string]: string } = {};\n await Promise.all(\n sourceFiles.map(async (file) => {\n const filePath = path.join(filePathsRootDir, file.relative);\n await fs.outputFile(filePath, file.contents);\n results[pathJoinLinux(compDir, file.relative)] = filePath;\n })\n );\n return results;\n }\n\n async getCompFilesDirPathFromLastSnapUsingCompFiles(\n compFiles: CompFiles\n ): Promise<{ [relativePath: string]: string }> {\n const compId = compFiles.id;\n if (!compId.hasVersion()) return {}; // it's a new component.\n const compDir = compFiles.compDir;\n const filePathsRootDir = path.join(this.workspace.scope.path, FILES_HISTORY_DIR, LAST_SNAP_DIR, compDir);\n await fs.remove(filePathsRootDir); // in case it has old data\n\n const sourceFiles = await compFiles.getHeadFiles();\n\n const results: { [relativePath: string]: string } = {};\n await Promise.all(\n sourceFiles.map(async (file) => {\n const filePath = path.join(filePathsRootDir, file.relative);\n await fs.outputFile(filePath, file.contents);\n results[pathJoinLinux(compDir, file.relative)] = filePath;\n })\n );\n return results;\n }\n\n async getDataToInitSCM(): Promise<DataToInitSCM> {\n const ids = await this.workspace.listIds();\n const results: DataToInitSCM = {};\n await pMap(\n ids,\n async (id) => {\n const compFiles = await this.workspace.getFilesModification(id);\n const pathsFromLastSnap = await this.getCompFilesDirPathFromLastSnapUsingCompFiles(compFiles);\n const idStr = id.toStringWithoutVersion();\n results[idStr] = {\n filesStatus: compFiles.getFilesStatus(),\n pathsFromLastSnap,\n compDir: compFiles.compDir,\n };\n },\n { concurrency: 30 }\n );\n\n return results;\n }\n\n async getCompFilesDirPathFromLastSnapForAllComps(): Promise<{ [relativePath: string]: string }> {\n const ids = await this.workspace.listIds();\n let results = {};\n await pMap(\n ids,\n async (id) => {\n const idStr = id.toStringWithoutVersion();\n const compResults = await this.getCompFilesDirPathFromLastSnap(idStr);\n results = { ...results, ...compResults };\n },\n { concurrency: 30 }\n );\n return results;\n }\n\n getCurrentLaneName(): string {\n return this.workspace.getCurrentLaneId().name;\n }\n\n async tagOrSnap(message = '') {\n const params = { message, build: false };\n return this.workspace.isOnMain() ? this.snapping.tag(params) : this.snapping.snap(params);\n }\n\n async tag(message = ''): Promise<string[]> {\n const params = { message, build: false };\n const results = await this.snapping.tag(params);\n return (results?.taggedComponents || []).map((c) => c.id.toString());\n }\n\n async snap(message = ''): Promise<string[]> {\n const params = { message, build: false };\n const results = await this.snapping.snap(params);\n return (results?.snappedComponents || []).map((c) => c.id.toString());\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["FILES_HISTORY_DIR","LAST_SNAP_DIR","APIForIDE","constructor","workspace","snapping","lanes","installer","listIdsWithPaths","ids","listIds","reduce","acc","id","toStringWithoutVersion","componentDir","getMainFilePath","compId","resolveComponentId","comp","get","path","join","state","_consumer","mainFile","importLane","laneName","skipDependencyInstallation","results","switchLanes","getAll","components","map","c","toString","getCompFiles","dirAbs","filesRelative","filesystem","files","file","relative","getCompFilesDirPathFromLastSnap","hasVersion","compDir","ignoreVersion","filePathsRootDir","scope","fs","remove","modelComponent","getBitObjectModelComponent","Error","versionObject","getBitObjectVersion","version","sourceFiles","modelFilesToSourceFiles","legacyScope","objects","Promise","all","filePath","outputFile","contents","pathJoinLinux","getCompFilesDirPathFromLastSnapUsingCompFiles","compFiles","getHeadFiles","install","undefined","optimizeReportForNonTerminal","getDataToInitSCM","pMap","getFilesModification","pathsFromLastSnap","idStr","filesStatus","getFilesStatus","concurrency","getCompFilesDirPathFromLastSnapForAllComps","compResults","getCurrentLaneName","getCurrentLaneId","name","tagOrSnap","message","params","build","isOnMain","tag","snap","taggedComponents","snappedComponents"],"sources":["api-for-ide.ts"],"sourcesContent":["import path from 'path';\nimport fs from 'fs-extra';\nimport { CompFiles, Workspace, FilesStatus } from '@teambit/workspace';\nimport { PathLinux, PathOsBasedAbsolute, PathOsBasedRelative, pathJoinLinux } from '@teambit/legacy/dist/utils/path';\nimport pMap from 'p-map';\nimport { SnappingMain } from '@teambit/snapping';\nimport { LanesMain } from '@teambit/lanes';\nimport { InstallMain } from '@teambit/install';\n\nconst FILES_HISTORY_DIR = 'files-history';\nconst LAST_SNAP_DIR = 'last-snap';\n\ntype PathFromLastSnap = { [relativeToWorkspace: PathLinux]: string };\n\ntype InitSCMEntry = {\n filesStatus: FilesStatus;\n pathsFromLastSnap: PathFromLastSnap;\n compDir: PathLinux;\n};\n\ntype DataToInitSCM = { [compId: string]: InitSCMEntry };\n\nexport class APIForIDE {\n constructor(\n private workspace: Workspace,\n private snapping: SnappingMain,\n private lanes: LanesMain,\n private installer: InstallMain\n ) {}\n\n async listIdsWithPaths() {\n const ids = await this.workspace.listIds();\n return ids.reduce((acc, id) => {\n acc[id.toStringWithoutVersion()] = this.workspace.componentDir(id);\n return acc;\n }, {});\n }\n\n async getMainFilePath(id: string): Promise<PathOsBasedAbsolute> {\n const compId = await this.workspace.resolveComponentId(id);\n const comp = await this.workspace.get(compId);\n return path.join(this.workspace.componentDir(compId), comp.state._consumer.mainFile);\n }\n\n async importLane(\n laneName: string,\n { skipDependencyInstallation }: { skipDependencyInstallation?: boolean }\n ): Promise<string[]> {\n const results = await this.lanes.switchLanes(laneName, {\n skipDependencyInstallation,\n getAll: true,\n });\n return (results.components || []).map((c) => c.id.toString());\n }\n\n async getCompFiles(id: string): Promise<{ dirAbs: string; filesRelative: PathOsBasedRelative[] }> {\n const compId = await this.workspace.resolveComponentId(id);\n const comp = await this.workspace.get(compId);\n const dirAbs = this.workspace.componentDir(compId);\n const filesRelative = comp.state.filesystem.files.map((file) => file.relative);\n return { dirAbs, filesRelative };\n }\n\n async getCompFilesDirPathFromLastSnap(id: string): Promise<{ [relativePath: string]: string }> {\n const compId = await this.workspace.resolveComponentId(id);\n if (!compId.hasVersion()) return {}; // it's a new component.\n const compDir = this.workspace.componentDir(compId, { ignoreVersion: true }, { relative: true });\n // const dirName = filenamify(compId.toString(), { replacement: '_' });\n const filePathsRootDir = path.join(this.workspace.scope.path, FILES_HISTORY_DIR, LAST_SNAP_DIR, compDir);\n await fs.remove(filePathsRootDir); // in case it has old data\n\n const modelComponent = await this.workspace.scope.getBitObjectModelComponent(compId);\n if (!modelComponent) {\n throw new Error(`unable to find ${compId.toString()} in the local scope, please run \"bit import\"`);\n }\n const versionObject = await this.workspace.scope.getBitObjectVersion(modelComponent, compId.version as string);\n if (!versionObject)\n throw new Error(`unable to find the Version object of ${compId.toString()}, please run \"bit import\"`);\n const sourceFiles = await versionObject.modelFilesToSourceFiles(this.workspace.scope.legacyScope.objects);\n const results: { [relativePath: string]: string } = {};\n await Promise.all(\n sourceFiles.map(async (file) => {\n const filePath = path.join(filePathsRootDir, file.relative);\n await fs.outputFile(filePath, file.contents);\n results[pathJoinLinux(compDir, file.relative)] = filePath;\n })\n );\n return results;\n }\n\n async getCompFilesDirPathFromLastSnapUsingCompFiles(\n compFiles: CompFiles\n ): Promise<{ [relativePath: string]: string }> {\n const compId = compFiles.id;\n if (!compId.hasVersion()) return {}; // it's a new component.\n const compDir = compFiles.compDir;\n const filePathsRootDir = path.join(this.workspace.scope.path, FILES_HISTORY_DIR, LAST_SNAP_DIR, compDir);\n await fs.remove(filePathsRootDir); // in case it has old data\n\n const sourceFiles = await compFiles.getHeadFiles();\n\n const results: { [relativePath: string]: string } = {};\n await Promise.all(\n sourceFiles.map(async (file) => {\n const filePath = path.join(filePathsRootDir, file.relative);\n await fs.outputFile(filePath, file.contents);\n results[pathJoinLinux(compDir, file.relative)] = filePath;\n })\n );\n return results;\n }\n\n async install() {\n return this.installer.install(undefined, { optimizeReportForNonTerminal: true });\n }\n\n async getDataToInitSCM(): Promise<DataToInitSCM> {\n const ids = await this.workspace.listIds();\n const results: DataToInitSCM = {};\n await pMap(\n ids,\n async (id) => {\n const compFiles = await this.workspace.getFilesModification(id);\n const pathsFromLastSnap = await this.getCompFilesDirPathFromLastSnapUsingCompFiles(compFiles);\n const idStr = id.toStringWithoutVersion();\n results[idStr] = {\n filesStatus: compFiles.getFilesStatus(),\n pathsFromLastSnap,\n compDir: compFiles.compDir,\n };\n },\n { concurrency: 30 }\n );\n\n return results;\n }\n\n async getCompFilesDirPathFromLastSnapForAllComps(): Promise<{ [relativePath: string]: string }> {\n const ids = await this.workspace.listIds();\n let results = {};\n await pMap(\n ids,\n async (id) => {\n const idStr = id.toStringWithoutVersion();\n const compResults = await this.getCompFilesDirPathFromLastSnap(idStr);\n results = { ...results, ...compResults };\n },\n { concurrency: 30 }\n );\n return results;\n }\n\n getCurrentLaneName(): string {\n return this.workspace.getCurrentLaneId().name;\n }\n\n async tagOrSnap(message = '') {\n const params = { message, build: false };\n return this.workspace.isOnMain() ? this.snapping.tag(params) : this.snapping.snap(params);\n }\n\n async tag(message = ''): Promise<string[]> {\n const params = { message, build: false };\n const results = await this.snapping.tag(params);\n return (results?.taggedComponents || []).map((c) => c.id.toString());\n }\n\n async snap(message = ''): Promise<string[]> {\n const params = { message, build: false };\n const results = await this.snapping.snap(params);\n return (results?.snappedComponents || []).map((c) => c.id.toString());\n }\n}\n"],"mappings":"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"}
@@ -156,7 +156,7 @@ class ApiServerMain {
156
156
  const apiServer = new ApiServerMain(workspace, logger, express, watcher, installer);
157
157
  cli.register(new (_server().ServerCmd)(apiServer));
158
158
  const cliRoute = new (_cli2().CLIRoute)(logger, cli);
159
- const apiForIDE = new (_apiForIde().APIForIDE)(workspace, snapping, lanes);
159
+ const apiForIDE = new (_apiForIde().APIForIDE)(workspace, snapping, lanes, installer);
160
160
  const vscodeRoute = new (_ide().IDERoute)(logger, apiForIDE);
161
161
  const sseEventsRoute = new (_sseEvents().SSEEventsRoute)(logger, cli);
162
162
  // register only when the workspace is available. don't register this on a remote-scope, for security reasons.
@@ -1 +1 @@
1
- {"version":3,"names":["ApiServerMain","constructor","workspace","logger","express","watcher","installer","runApiServer","options","port","listen","Error","process","cwd","registerOnComponentChange","component","files","removedFiles","sendEventsToClients","id","toStringWithoutVersion","registerOnBitmapChange","registerPostInstall","watch","preCompile","catch","err","error","Promise","consoleSuccess","provider","cli","loggerMain","snapping","lanes","createLogger","ApiServerAspect","apiServer","register","ServerCmd","cliRoute","CLIRoute","apiForIDE","APIForIDE","vscodeRoute","IDERoute","sseEventsRoute","SSEEventsRoute","CLIAspect","WorkspaceAspect","LoggerAspect","ExpressAspect","WatcherAspect","SnappingAspect","LanesAspect","InstallAspect","MainRuntime","addRuntime"],"sources":["api-server.main.runtime.ts"],"sourcesContent":["import { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport { ExpressAspect, ExpressMain } from '@teambit/express';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\nimport LanesAspect, { LanesMain } from '@teambit/lanes';\nimport SnappingAspect, { SnappingMain } from '@teambit/snapping';\nimport WatcherAspect, { WatcherMain } from '@teambit/watcher';\nimport InstallAspect, { InstallMain } from '@teambit/install';\nimport { Component } from '@teambit/component';\nimport WorkspaceAspect, { Workspace } from '@teambit/workspace';\nimport { ApiServerAspect } from './api-server.aspect';\nimport { CLIRoute } from './cli.route';\nimport { ServerCmd } from './server.cmd';\nimport { IDERoute } from './ide.route';\nimport { APIForIDE } from './api-for-ide';\nimport { SSEEventsRoute, sendEventsToClients } from './sse-events.route';\n\nexport class ApiServerMain {\n constructor(\n private workspace: Workspace,\n private logger: Logger,\n private express: ExpressMain,\n private watcher: WatcherMain,\n private installer: InstallMain\n ) {}\n\n async runApiServer(options: { port: number }) {\n const port = options.port || 3000;\n await this.express.listen(port);\n if (!this.workspace) {\n throw new Error(`unable to run bit-server, the current directory ${process.cwd()} is not a workspace`);\n }\n\n this.workspace.registerOnComponentChange(\n async (\n component: Component,\n files: string[], // os absolute paths\n removedFiles?: string[] // os absolute paths\n ) => {\n sendEventsToClients('onComponentChange', {\n id: component.id.toStringWithoutVersion(),\n files,\n removedFiles,\n });\n }\n );\n\n this.workspace.registerOnBitmapChange(async () => {\n sendEventsToClients('onBitmapChange', {});\n });\n\n this.installer.registerPostInstall(async () => {\n sendEventsToClients('onPostInstall', {});\n });\n\n this.watcher\n .watch({\n preCompile: false,\n })\n .catch((err) => {\n // don't throw an error, we don't want to break the \"run\" process\n this.logger.error('watcher found an error', err);\n });\n\n // never ending promise to not exit the process (is there a better way?)\n return new Promise(() => {\n this.logger.consoleSuccess(`Bit Server is listening on port ${port}`);\n });\n }\n\n static dependencies = [\n CLIAspect,\n WorkspaceAspect,\n LoggerAspect,\n ExpressAspect,\n WatcherAspect,\n SnappingAspect,\n LanesAspect,\n InstallAspect,\n ];\n static runtime = MainRuntime;\n static async provider([cli, workspace, loggerMain, express, watcher, snapping, lanes, installer]: [\n CLIMain,\n Workspace,\n LoggerMain,\n ExpressMain,\n WatcherMain,\n SnappingMain,\n LanesMain,\n InstallMain\n ]) {\n const logger = loggerMain.createLogger(ApiServerAspect.id);\n const apiServer = new ApiServerMain(workspace, logger, express, watcher, installer);\n cli.register(new ServerCmd(apiServer));\n\n const cliRoute = new CLIRoute(logger, cli);\n const apiForIDE = new APIForIDE(workspace, snapping, lanes);\n const vscodeRoute = new IDERoute(logger, apiForIDE);\n const sseEventsRoute = new SSEEventsRoute(logger, cli);\n // register only when the workspace is available. don't register this on a remote-scope, for security reasons.\n if (workspace) {\n express.register([cliRoute, vscodeRoute, sseEventsRoute]);\n }\n\n return apiServer;\n }\n}\n\nApiServerAspect.addRuntime(ApiServerMain);\n\nexport default ApiServerMain;\n"],"mappings":"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"}
1
+ {"version":3,"names":["ApiServerMain","constructor","workspace","logger","express","watcher","installer","runApiServer","options","port","listen","Error","process","cwd","registerOnComponentChange","component","files","removedFiles","sendEventsToClients","id","toStringWithoutVersion","registerOnBitmapChange","registerPostInstall","watch","preCompile","catch","err","error","Promise","consoleSuccess","provider","cli","loggerMain","snapping","lanes","createLogger","ApiServerAspect","apiServer","register","ServerCmd","cliRoute","CLIRoute","apiForIDE","APIForIDE","vscodeRoute","IDERoute","sseEventsRoute","SSEEventsRoute","CLIAspect","WorkspaceAspect","LoggerAspect","ExpressAspect","WatcherAspect","SnappingAspect","LanesAspect","InstallAspect","MainRuntime","addRuntime"],"sources":["api-server.main.runtime.ts"],"sourcesContent":["import { CLIAspect, CLIMain, MainRuntime } from '@teambit/cli';\nimport { ExpressAspect, ExpressMain } from '@teambit/express';\nimport { Logger, LoggerAspect, LoggerMain } from '@teambit/logger';\nimport LanesAspect, { LanesMain } from '@teambit/lanes';\nimport SnappingAspect, { SnappingMain } from '@teambit/snapping';\nimport WatcherAspect, { WatcherMain } from '@teambit/watcher';\nimport InstallAspect, { InstallMain } from '@teambit/install';\nimport { Component } from '@teambit/component';\nimport WorkspaceAspect, { Workspace } from '@teambit/workspace';\nimport { ApiServerAspect } from './api-server.aspect';\nimport { CLIRoute } from './cli.route';\nimport { ServerCmd } from './server.cmd';\nimport { IDERoute } from './ide.route';\nimport { APIForIDE } from './api-for-ide';\nimport { SSEEventsRoute, sendEventsToClients } from './sse-events.route';\n\nexport class ApiServerMain {\n constructor(\n private workspace: Workspace,\n private logger: Logger,\n private express: ExpressMain,\n private watcher: WatcherMain,\n private installer: InstallMain\n ) {}\n\n async runApiServer(options: { port: number }) {\n const port = options.port || 3000;\n await this.express.listen(port);\n if (!this.workspace) {\n throw new Error(`unable to run bit-server, the current directory ${process.cwd()} is not a workspace`);\n }\n\n this.workspace.registerOnComponentChange(\n async (\n component: Component,\n files: string[], // os absolute paths\n removedFiles?: string[] // os absolute paths\n ) => {\n sendEventsToClients('onComponentChange', {\n id: component.id.toStringWithoutVersion(),\n files,\n removedFiles,\n });\n }\n );\n\n this.workspace.registerOnBitmapChange(async () => {\n sendEventsToClients('onBitmapChange', {});\n });\n\n this.installer.registerPostInstall(async () => {\n sendEventsToClients('onPostInstall', {});\n });\n\n this.watcher\n .watch({\n preCompile: false,\n })\n .catch((err) => {\n // don't throw an error, we don't want to break the \"run\" process\n this.logger.error('watcher found an error', err);\n });\n\n // never ending promise to not exit the process (is there a better way?)\n return new Promise(() => {\n this.logger.consoleSuccess(`Bit Server is listening on port ${port}`);\n });\n }\n\n static dependencies = [\n CLIAspect,\n WorkspaceAspect,\n LoggerAspect,\n ExpressAspect,\n WatcherAspect,\n SnappingAspect,\n LanesAspect,\n InstallAspect,\n ];\n static runtime = MainRuntime;\n static async provider([cli, workspace, loggerMain, express, watcher, snapping, lanes, installer]: [\n CLIMain,\n Workspace,\n LoggerMain,\n ExpressMain,\n WatcherMain,\n SnappingMain,\n LanesMain,\n InstallMain\n ]) {\n const logger = loggerMain.createLogger(ApiServerAspect.id);\n const apiServer = new ApiServerMain(workspace, logger, express, watcher, installer);\n cli.register(new ServerCmd(apiServer));\n\n const cliRoute = new CLIRoute(logger, cli);\n const apiForIDE = new APIForIDE(workspace, snapping, lanes, installer);\n const vscodeRoute = new IDERoute(logger, apiForIDE);\n const sseEventsRoute = new SSEEventsRoute(logger, cli);\n // register only when the workspace is available. don't register this on a remote-scope, for security reasons.\n if (workspace) {\n express.register([cliRoute, vscodeRoute, sseEventsRoute]);\n }\n\n return apiServer;\n }\n}\n\nApiServerAspect.addRuntime(ApiServerMain);\n\nexport default ApiServerMain;\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@teambit/api-server",
3
- "version": "0.0.124",
3
+ "version": "0.0.125",
4
4
  "homepage": "https://bit.cloud/teambit/harmony/api-server",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "teambit.harmony",
8
8
  "name": "api-server",
9
- "version": "0.0.124"
9
+ "version": "0.0.125"
10
10
  },
11
11
  "dependencies": {
12
12
  "fs-extra": "10.0.0",
@@ -15,15 +15,15 @@
15
15
  "core-js": "^3.0.0",
16
16
  "@babel/runtime": "7.20.0",
17
17
  "@teambit/harmony": "0.4.6",
18
- "@teambit/lanes": "0.0.684",
19
- "@teambit/snapping": "0.0.427",
20
- "@teambit/workspace": "0.0.1112",
21
- "@teambit/cli": "0.0.744",
22
- "@teambit/component": "0.0.1112",
23
- "@teambit/express": "0.0.842",
24
- "@teambit/install": "0.0.203",
25
- "@teambit/logger": "0.0.837",
26
- "@teambit/watcher": "0.0.124"
18
+ "@teambit/install": "0.0.204",
19
+ "@teambit/lanes": "0.0.685",
20
+ "@teambit/snapping": "0.0.428",
21
+ "@teambit/workspace": "0.0.1113",
22
+ "@teambit/cli": "0.0.745",
23
+ "@teambit/component": "0.0.1113",
24
+ "@teambit/express": "0.0.843",
25
+ "@teambit/logger": "0.0.838",
26
+ "@teambit/watcher": "0.0.125"
27
27
  },
28
28
  "devDependencies": {
29
29
  "@types/fs-extra": "9.0.7",
@@ -35,7 +35,7 @@
35
35
  "@types/testing-library__jest-dom": "5.9.5"
36
36
  },
37
37
  "peerDependencies": {
38
- "@teambit/legacy": "1.0.524",
38
+ "@teambit/legacy": "1.0.525",
39
39
  "react": "^16.8.0 || ^17.0.0",
40
40
  "react-dom": "^16.8.0 || ^17.0.0"
41
41
  },