@jskit-ai/create-app 0.1.66 → 0.1.67
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.
- package/package.json +1 -1
- package/templates/base-shell/packages/main/package.descriptor.mjs +19 -6
- package/templates/base-shell/packages/main/package.json +1 -1
- package/templates/base-shell/packages/main/src/server/MainServiceProvider.js +20 -0
- package/templates/base-shell/packages/main/src/server/index.js +1 -1
- package/templates/base-shell/packages/main/src/shared/index.js +2 -0
- package/templates/base-shell/packages/main/src/shared/schemas/index.js +2 -1
- package/templates/base-shell/packages/main/src/server/controllers/index.js +0 -9
- package/templates/base-shell/packages/main/src/server/providers/MainServiceProvider.js +0 -22
- package/templates/base-shell/packages/main/src/server/routes/index.js +0 -9
- package/templates/base-shell/packages/main/src/server/services/index.js +0 -9
- /package/templates/base-shell/packages/main/src/server/{support/loadAppConfig.js → loadAppConfig.js} +0 -0
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@ export default Object.freeze({
|
|
|
3
3
|
packageId: "@local/main",
|
|
4
4
|
version: "0.1.0",
|
|
5
5
|
kind: "runtime",
|
|
6
|
-
description: "App-local main
|
|
6
|
+
description: "App-local main composition and glue scaffold.",
|
|
7
7
|
dependsOn: [],
|
|
8
8
|
capabilities: {
|
|
9
9
|
provides: [],
|
|
@@ -12,13 +12,11 @@ export default Object.freeze({
|
|
|
12
12
|
options: {},
|
|
13
13
|
runtime: {
|
|
14
14
|
server: {
|
|
15
|
-
providerEntrypoint: "src/server/
|
|
15
|
+
providerEntrypoint: "src/server/MainServiceProvider.js",
|
|
16
16
|
providers: [
|
|
17
17
|
{
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
pattern: "*Provider.js"
|
|
21
|
-
}
|
|
18
|
+
entrypoint: "src/server/MainServiceProvider.js",
|
|
19
|
+
export: "MainServiceProvider"
|
|
22
20
|
}
|
|
23
21
|
]
|
|
24
22
|
},
|
|
@@ -32,6 +30,21 @@ export default Object.freeze({
|
|
|
32
30
|
}
|
|
33
31
|
},
|
|
34
32
|
metadata: {
|
|
33
|
+
jskit: {
|
|
34
|
+
ownershipGuidance: {
|
|
35
|
+
title: "App-local main lane",
|
|
36
|
+
summary: "Keep @local/main focused on app composition and lightweight glue. Substantial server features should become dedicated packages instead of growing inside packages/main.",
|
|
37
|
+
responsibilities: [
|
|
38
|
+
"packages/main server code: bootstraps app-local configuration and lightweight wiring only",
|
|
39
|
+
"substantial non-CRUD server features: scaffold a dedicated package with feature-server-generator",
|
|
40
|
+
"packages/main: do not add service/controller/route/repository feature trees here"
|
|
41
|
+
],
|
|
42
|
+
examples: [
|
|
43
|
+
"jskit generate feature-server-generator scaffold booking-engine",
|
|
44
|
+
"jskit generate feature-server-generator scaffold availability-engine --mode orchestrator"
|
|
45
|
+
]
|
|
46
|
+
}
|
|
47
|
+
},
|
|
35
48
|
server: {
|
|
36
49
|
routes: []
|
|
37
50
|
},
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
"exports": {
|
|
7
7
|
"./client": "./src/client/index.js",
|
|
8
8
|
"./server": "./src/server/index.js",
|
|
9
|
-
"./server/
|
|
9
|
+
"./server/MainServiceProvider": "./src/server/MainServiceProvider.js",
|
|
10
10
|
"./shared": "./src/shared/index.js"
|
|
11
11
|
}
|
|
12
12
|
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { loadAppConfig } from "./loadAppConfig.js";
|
|
2
|
+
|
|
3
|
+
class MainServiceProvider {
|
|
4
|
+
static id = "local.main";
|
|
5
|
+
|
|
6
|
+
// Register only lightweight app-local composition bindings here.
|
|
7
|
+
async register(app) {
|
|
8
|
+
const appConfig = await loadAppConfig({
|
|
9
|
+
moduleUrl: import.meta.url
|
|
10
|
+
});
|
|
11
|
+
app.instance("appConfig", appConfig);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
// Keep packages/main as app glue only.
|
|
15
|
+
// When backend behavior becomes substantial, scaffold a dedicated package:
|
|
16
|
+
// jskit generate feature-server-generator scaffold <feature-name>
|
|
17
|
+
boot() {}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export { MainServiceProvider };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { MainServiceProvider } from "./
|
|
1
|
+
export { MainServiceProvider } from "./MainServiceProvider.js";
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* App-local shared transport validators/resources live here.
|
|
3
|
+
* Dedicated feature packages should keep their own schemas with the feature.
|
|
3
4
|
*
|
|
4
5
|
* Example:
|
|
5
6
|
* import { createSchema } from "json-rest-schema";
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { loadAppConfig } from "../support/loadAppConfig.js";
|
|
2
|
-
|
|
3
|
-
class MainServiceProvider {
|
|
4
|
-
static id = "local.main";
|
|
5
|
-
|
|
6
|
-
// Optional: register container bindings here (services/singletons).
|
|
7
|
-
async register(app) {
|
|
8
|
-
const appConfig = await loadAppConfig({
|
|
9
|
-
moduleUrl: import.meta.url
|
|
10
|
-
});
|
|
11
|
-
app.instance("appConfig", appConfig);
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
// Start backend features here:
|
|
15
|
-
// 1) define shared validators/resources in `src/shared/schemas`
|
|
16
|
-
// 2) resolve router with `app.make("jskit.http.router")`
|
|
17
|
-
// 3) register routes and handlers
|
|
18
|
-
// 4) extract to services/controllers/routes as the feature grows
|
|
19
|
-
boot() {}
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
export { MainServiceProvider };
|
/package/templates/base-shell/packages/main/src/server/{support/loadAppConfig.js → loadAppConfig.js}
RENAMED
|
File without changes
|