create-astrale-domain 0.1.6 → 0.2.0
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/dist/index.js +26 -6
- package/package.json +3 -3
package/dist/index.js
CHANGED
|
@@ -795,7 +795,9 @@ var LINK_TARGETS = {
|
|
|
795
795
|
"@astrale-os/adapter-cloudflare": "sdk/adapter-cloudflare",
|
|
796
796
|
"@astrale-os/adapter-astrale": "sdk/adapter-astrale",
|
|
797
797
|
"@astrale-os/kernel-core": "kernel/core",
|
|
798
|
-
"@astrale-os/kernel-dsl": "kernel/dsl"
|
|
798
|
+
"@astrale-os/kernel-dsl": "kernel/dsl",
|
|
799
|
+
// The client SPA consumes the real shell (createShell + the kernel client).
|
|
800
|
+
"@astrale-os/shell": "shell/packages/shell"
|
|
799
801
|
};
|
|
800
802
|
var BODY_PACKAGE = "@astrale-os/adapter-cloudflare";
|
|
801
803
|
var ADAPTER_PACKAGES = {
|
|
@@ -822,6 +824,7 @@ async function scaffold(opts) {
|
|
|
822
824
|
await materializeAdapter(opts);
|
|
823
825
|
await stampOrigin(opts.dir, opts.origin);
|
|
824
826
|
await rewritePackageJson(opts.dir, opts.name, opts.link);
|
|
827
|
+
if (opts.link) await linkWorkspaceMember(join(opts.dir, "client", "package.json"));
|
|
825
828
|
await writeFile(
|
|
826
829
|
join(opts.dir, ".env.dev"),
|
|
827
830
|
"# Dev secrets \u2014 the ENTIRE file is injected into the local runtime by `pnpm dev`.\n# Gitignored. See .env.example.\n"
|
|
@@ -861,6 +864,21 @@ async function setAdapterDep(dir, from, to) {
|
|
|
861
864
|
);
|
|
862
865
|
await writeFile(path, JSON.stringify(pkg, null, 2) + "\n");
|
|
863
866
|
}
|
|
867
|
+
async function linkWorkspaceMember(pkgPath) {
|
|
868
|
+
if (!existsSync(pkgPath)) return;
|
|
869
|
+
const pkg = JSON.parse(await readFile(pkgPath, "utf-8"));
|
|
870
|
+
let changed = false;
|
|
871
|
+
for (const group of [pkg.dependencies, pkg.devDependencies]) {
|
|
872
|
+
if (!group) continue;
|
|
873
|
+
for (const [dep, rel] of Object.entries(LINK_TARGETS)) {
|
|
874
|
+
if (dep in group) {
|
|
875
|
+
group[dep] = `link:${join(WORKSPACE_ROOT, rel)}`;
|
|
876
|
+
changed = true;
|
|
877
|
+
}
|
|
878
|
+
}
|
|
879
|
+
}
|
|
880
|
+
if (changed) await writeFile(pkgPath, JSON.stringify(pkg, null, 2) + "\n");
|
|
881
|
+
}
|
|
864
882
|
async function rewritePackageJson(dir, name, link) {
|
|
865
883
|
const path = join(dir, "package.json");
|
|
866
884
|
const pkg = JSON.parse(await readFile(path, "utf-8"));
|
|
@@ -888,7 +906,7 @@ function sdkZodVersion() {
|
|
|
888
906
|
}
|
|
889
907
|
async function blankOut(dir, origin) {
|
|
890
908
|
await writeFile(
|
|
891
|
-
join(dir, "schema", "
|
|
909
|
+
join(dir, "schema", "monitor.ts"),
|
|
892
910
|
`// Author your classes/interfaces here, then register them in schema/index.ts.
|
|
893
911
|
export {}
|
|
894
912
|
`
|
|
@@ -951,14 +969,16 @@ export const methods: SchemaMethodsImpl<typeof schema, Deps> = { class: {} }
|
|
|
951
969
|
`);
|
|
952
970
|
await writeFile(join(dir, "views", "index.ts"), `export const views = {}
|
|
953
971
|
`);
|
|
954
|
-
await rm(join(dir, "schema", "compiled.ts"), { force: true });
|
|
955
972
|
await rm(join(dir, "core"), { recursive: true, force: true });
|
|
956
973
|
await rm(join(dir, "integrations"), { recursive: true, force: true });
|
|
957
974
|
await rm(join(dir, "views", "welcome.ts"), { force: true });
|
|
958
|
-
await rm(join(dir, "views", "
|
|
975
|
+
await rm(join(dir, "views", "status-page.ts"), { force: true });
|
|
976
|
+
await rm(join(dir, "runtime", "monitor"), { recursive: true, force: true });
|
|
977
|
+
await rm(join(dir, "runtime", "status-page"), { recursive: true, force: true });
|
|
978
|
+
await rm(join(dir, "runtime", "shared.ts"), { force: true });
|
|
959
979
|
await replaceInFile(
|
|
960
980
|
join(dir, "domain.ts"),
|
|
961
|
-
/\n\s*postInstall: `\/:\$\{schema\.domain\}:class\.
|
|
981
|
+
/\n\s*postInstall: `\/:\$\{schema\.domain\}:class\.Monitor:seed`,/,
|
|
962
982
|
""
|
|
963
983
|
);
|
|
964
984
|
}
|
|
@@ -1068,7 +1088,7 @@ async function main() {
|
|
|
1068
1088
|
{
|
|
1069
1089
|
value: "template",
|
|
1070
1090
|
label: "Template",
|
|
1071
|
-
hint: 'a working "
|
|
1091
|
+
hint: 'a working "Monitor" class + a view + a seed'
|
|
1072
1092
|
},
|
|
1073
1093
|
{ value: "blank", label: "Blank" }
|
|
1074
1094
|
]
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-astrale-domain",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "Scaffold a standalone Astrale domain — npm create astrale-domain",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"astrale",
|
|
@@ -19,8 +19,8 @@
|
|
|
19
19
|
"type": "module",
|
|
20
20
|
"dependencies": {
|
|
21
21
|
"@clack/prompts": "^0.11.0",
|
|
22
|
-
"@astrale-os/adapter-cloudflare": "^0.
|
|
23
|
-
"@astrale-os/adapter-astrale": "^0.
|
|
22
|
+
"@astrale-os/adapter-cloudflare": "^0.2.0",
|
|
23
|
+
"@astrale-os/adapter-astrale": "^0.2.0"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
|
26
26
|
"@astrale-os/ox": ">=0.1.0 <1.0.0",
|