create-astrale-domain 0.1.6 → 0.2.1
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 +29 -7
- 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 = {
|
|
@@ -817,11 +819,14 @@ async function scaffold(opts) {
|
|
|
817
819
|
}
|
|
818
820
|
await cp(src, opts.dir, {
|
|
819
821
|
recursive: true,
|
|
820
|
-
filter: (s) => !/\/(node_modules|\.astrale|dist-client|\.wrangler)(\/|$)/.test(
|
|
822
|
+
filter: (s) => !/\/(node_modules|\.astrale|dist-client|\.wrangler|pnpm-lock\.yaml)(\/|$)/.test(
|
|
823
|
+
`/${relative(src, s)}`
|
|
824
|
+
)
|
|
821
825
|
});
|
|
822
826
|
await materializeAdapter(opts);
|
|
823
827
|
await stampOrigin(opts.dir, opts.origin);
|
|
824
828
|
await rewritePackageJson(opts.dir, opts.name, opts.link);
|
|
829
|
+
if (opts.link) await linkWorkspaceMember(join(opts.dir, "client", "package.json"));
|
|
825
830
|
await writeFile(
|
|
826
831
|
join(opts.dir, ".env.dev"),
|
|
827
832
|
"# Dev secrets \u2014 the ENTIRE file is injected into the local runtime by `pnpm dev`.\n# Gitignored. See .env.example.\n"
|
|
@@ -861,6 +866,21 @@ async function setAdapterDep(dir, from, to) {
|
|
|
861
866
|
);
|
|
862
867
|
await writeFile(path, JSON.stringify(pkg, null, 2) + "\n");
|
|
863
868
|
}
|
|
869
|
+
async function linkWorkspaceMember(pkgPath) {
|
|
870
|
+
if (!existsSync(pkgPath)) return;
|
|
871
|
+
const pkg = JSON.parse(await readFile(pkgPath, "utf-8"));
|
|
872
|
+
let changed = false;
|
|
873
|
+
for (const group of [pkg.dependencies, pkg.devDependencies]) {
|
|
874
|
+
if (!group) continue;
|
|
875
|
+
for (const [dep, rel] of Object.entries(LINK_TARGETS)) {
|
|
876
|
+
if (dep in group) {
|
|
877
|
+
group[dep] = `link:${join(WORKSPACE_ROOT, rel)}`;
|
|
878
|
+
changed = true;
|
|
879
|
+
}
|
|
880
|
+
}
|
|
881
|
+
}
|
|
882
|
+
if (changed) await writeFile(pkgPath, JSON.stringify(pkg, null, 2) + "\n");
|
|
883
|
+
}
|
|
864
884
|
async function rewritePackageJson(dir, name, link) {
|
|
865
885
|
const path = join(dir, "package.json");
|
|
866
886
|
const pkg = JSON.parse(await readFile(path, "utf-8"));
|
|
@@ -888,7 +908,7 @@ function sdkZodVersion() {
|
|
|
888
908
|
}
|
|
889
909
|
async function blankOut(dir, origin) {
|
|
890
910
|
await writeFile(
|
|
891
|
-
join(dir, "schema", "
|
|
911
|
+
join(dir, "schema", "monitor.ts"),
|
|
892
912
|
`// Author your classes/interfaces here, then register them in schema/index.ts.
|
|
893
913
|
export {}
|
|
894
914
|
`
|
|
@@ -951,14 +971,16 @@ export const methods: SchemaMethodsImpl<typeof schema, Deps> = { class: {} }
|
|
|
951
971
|
`);
|
|
952
972
|
await writeFile(join(dir, "views", "index.ts"), `export const views = {}
|
|
953
973
|
`);
|
|
954
|
-
await rm(join(dir, "schema", "compiled.ts"), { force: true });
|
|
955
974
|
await rm(join(dir, "core"), { recursive: true, force: true });
|
|
956
975
|
await rm(join(dir, "integrations"), { recursive: true, force: true });
|
|
957
976
|
await rm(join(dir, "views", "welcome.ts"), { force: true });
|
|
958
|
-
await rm(join(dir, "views", "
|
|
977
|
+
await rm(join(dir, "views", "status-page.ts"), { force: true });
|
|
978
|
+
await rm(join(dir, "runtime", "monitor"), { recursive: true, force: true });
|
|
979
|
+
await rm(join(dir, "runtime", "status-page"), { recursive: true, force: true });
|
|
980
|
+
await rm(join(dir, "runtime", "shared.ts"), { force: true });
|
|
959
981
|
await replaceInFile(
|
|
960
982
|
join(dir, "domain.ts"),
|
|
961
|
-
/\n\s*postInstall: `\/:\$\{schema\.domain\}:class\.
|
|
983
|
+
/\n\s*postInstall: `\/:\$\{schema\.domain\}:class\.Monitor:seed`,/,
|
|
962
984
|
""
|
|
963
985
|
);
|
|
964
986
|
}
|
|
@@ -1068,7 +1090,7 @@ async function main() {
|
|
|
1068
1090
|
{
|
|
1069
1091
|
value: "template",
|
|
1070
1092
|
label: "Template",
|
|
1071
|
-
hint: 'a working "
|
|
1093
|
+
hint: 'a working "Monitor" class + a view + a seed'
|
|
1072
1094
|
},
|
|
1073
1095
|
{ value: "blank", label: "Blank" }
|
|
1074
1096
|
]
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-astrale-domain",
|
|
3
|
-
"version": "0.1
|
|
3
|
+
"version": "0.2.1",
|
|
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",
|