alepha
Version:
Easy-to-use modern TypeScript framework for building many kind of applications.
35 lines (29 loc) • 894 B
text/typescript
import { Alepha } from "./Alepha.ts";
import type { RunOptions } from "./interfaces/Run.ts";
import type { Service } from "./interfaces/Service.ts";
export * from "./index.shared.ts";
if (!Promise.withResolvers) {
Promise.withResolvers = <T>() => {
let resolve: (value: T | PromiseLike<T>) => void;
let reject: (reason?: any) => void;
const promise = new Promise<T>((res, rej) => {
resolve = res;
reject = rej;
});
return { promise, resolve: resolve!, reject: reject! };
};
}
export const run = (
entry: Alepha | Service | Array<Service>,
opts?: RunOptions,
): Alepha => {
const alepha =
entry instanceof Alepha ? entry : Alepha.create({ env: { ...opts?.env } });
if (!(entry instanceof Alepha)) {
const entries = Array.isArray(entry) ? entry : [entry];
for (const e of entries) {
alepha.with(e);
}
}
return alepha;
};