Move app class to separate module to make it easier to import for typing

master
Kuba Orlik 4 years ago
parent 52973017f4
commit ea5d86a3c2

@ -0,0 +1,40 @@
import _locreq from "locreq";
import { resolve } from "path";
import { App, Collection, FieldTypes, Policies } from "sealious";
const locreq = _locreq(__dirname);
export default class TheApp extends App {
config = {
upload_path: locreq.resolve("uploaded_files"),
datastore_mongo: {
host: "localhost",
port: 20723,
db_name: "sealious-playground",
},
email: {
from_address: "sealious-playground@example.com",
from_name: "Sealious playground app",
},
};
manifest = {
name: "Sealious Playground",
logo: resolve(__dirname, "../assets/logo.png"),
version: "0.0.1",
default_language: "en",
base_url: "localhost:8080",
admin_email: "admin@example.com",
colors: {
primary: "#5294a1",
},
};
collections = {
...App.BaseCollections,
tasks: new (class extends Collection {
fields = {
title: new FieldTypes.Text(),
done: new FieldTypes.Boolean(),
};
defaultPolicy = new Policies.Public();
})(),
};
}

@ -1,14 +1,6 @@
import _locreq from "locreq";
import { resolve } from "path";
import Sealious, {
App,
Collection,
Context,
FieldTypes,
Policies,
Middlewares,
CollectionItem,
} from "sealious";
import Sealious, { CollectionItem, Context, Middlewares } from "sealious";
import TheApp from "./app";
import frame from "./frame";
import html from "./html";
const locreq = _locreq(__dirname);
@ -16,47 +8,12 @@ const locreq = _locreq(__dirname);
declare module "koa" {
interface BaseContext {
$context: Sealious.Context;
$app: Sealious.App;
$app: TheApp;
$body: Record<string, unknown>;
}
}
const app = new (class extends App {
config = {
upload_path: locreq.resolve("uploaded_files"),
datastore_mongo: {
host: "localhost",
port: 20723,
db_name: "sealious-playground",
},
email: {
from_address: "sealious-playground@example.com",
from_name: "Sealious playground app",
},
};
manifest = {
name: "Sealious Playground",
logo: resolve(__dirname, "../assets/logo.png"),
version: "0.0.1",
default_language: "en",
base_url: "localhost:8080",
admin_email: "admin@example.com",
colors: {
primary: "#5294a1",
},
};
collections = {
...App.BaseCollections,
tasks: new (class extends Collection {
fields = {
title: new FieldTypes.Text(),
done: new FieldTypes.Boolean(),
};
defaultPolicy = new Policies.Public();
})(),
};
})();
const app = new TheApp();
app.start();
const router = app.HTTPServer.router;

@ -6,13 +6,11 @@
"noImplicitThis": true,
"strictNullChecks": true,
"target": "ES2019",
"declaration": true,
"esModuleInterop": true,
"lib": ["es6", "esnext"],
"outDir": "../../dist",
"checkJs": true,
"allowJs": true,
"declarationDir": "@types",
"resolveJsonModule": true,
"sourceMap": true
},

Loading…
Cancel
Save