Я собрал пакет серверной библиотеки, который я хочу использовать для всех своих программ, импортировав его как серверную программу «Base / Core».Чтобы использовать его как API, я делаю это в index.ts
.
import { MainServer } from './server-app'; //Want for Type
export class Server {
private static _serverConfig = null;
private static _mainDB = null;
private static _supportDB = null;
private static _mainServer: MainServer = null; //Heres type
private static _client = '';
constructor(serverConfig, client: string) {
Server._serverConfig = serverConfig;
Server._client = client;
}
public static async connectAndRun() {
//Connect then Server._mainDB = db;
....
}
public static getClientName() {
return this._client;
}
public static getMainServer() {
return Server._mainServer;
}
public static getMainDB() {
return Server._mainDB;
}
public static getSupportDB() {
return Server._supportDB;
}
}
export * from './server-app'; //Need for the API to have access to all variables needed
Я получаю ошибки, когда import { MainServer } from './server-app';
, а также export * from './server-app';
, потому что внутри server-app.ts
я делаю большеэкспорты, такие как это:
export * from './collections/app-version.collection';
Внутри этого файла у меня есть такие:
import { Server } from '../index';
import { AppVersionModel } from '../models/app-version.model';
let schema: any = {
_id: {
type: String,
optional: true
},
...
};
export const AppVersions: Model<ServerModel> = Server.getMainDB().model('app-versions', Schema);
Так что он пытается использовать Server.getMainDB()
, сервер которого не определенпоскольку он импортирует в index.ts до завершения работы моего сервера, он строится так же, как и до того, как моя БД подключена и определена.
Я понимаю, зачем index.ts нужен весь экспорт, но я не понимаю, как экспортировать все без проблем зависимости / импорта / экспорта.