From 8eeddf4d255373946d4b0683cc6fa1354e816e9b Mon Sep 17 00:00:00 2001 From: Jo Date: Thu, 27 Jun 2024 18:21:33 +0200 Subject: [PATCH] feat: experiment with nestjs and plugin system, separate backend and frontend Signed-off-by: Jo --- .gitignore | 3 + .idea/.gitignore | 8 ++ .idea/Engine.iml | 8 ++ .idea/discord.xml | 7 + .idea/material_theme_project_new.xml | 10 ++ .idea/modules.xml | 8 ++ .idea/php.xml | 19 +++ .idea/vcs.xml | 7 + README.md | 5 - apps/backend/README.md | 58 +++++++++ apps/backend/bun.lockb | Bin 0 -> 201933 bytes apps/backend/nest-cli.json | 8 ++ apps/backend/package.json | 36 ++++++ apps/backend/src/app.controller.ts | 12 ++ apps/backend/src/app.module.ts | 27 ++++ apps/backend/src/app.service.ts | 23 ++++ .../src/common/plugins/plugin.interface.ts | 3 + .../src/common/plugins/plugin.service.ts | 15 +++ apps/backend/src/entities/user.entity.ts | 16 +++ apps/backend/src/main.ts | 14 ++ apps/backend/tsconfig.build.json | 4 + apps/backend/tsconfig.json | 21 +++ apps/frontend/package.json | 4 + apps/frontend/src/main.js | 0 bun.lockb | Bin 0 -> 192816 bytes .../blmedia-example/apps/frontend/src/main.js | 0 .../blmedia-example/blmedia-example.plugin.ts | 1 + custom/plugins/blmedia-example/package.json | 7 + devenv.lock | 122 ++++++++++++++++++ devenv.nix | 15 +++ docker-compose.yml | 22 ++++ package.json | 7 + 32 files changed, 485 insertions(+), 5 deletions(-) create mode 100644 .gitignore create mode 100644 .idea/.gitignore create mode 100644 .idea/Engine.iml create mode 100644 .idea/discord.xml create mode 100644 .idea/material_theme_project_new.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/php.xml create mode 100644 .idea/vcs.xml delete mode 100644 README.md create mode 100644 apps/backend/README.md create mode 100755 apps/backend/bun.lockb create mode 100644 apps/backend/nest-cli.json create mode 100644 apps/backend/package.json create mode 100644 apps/backend/src/app.controller.ts create mode 100644 apps/backend/src/app.module.ts create mode 100644 apps/backend/src/app.service.ts create mode 100644 apps/backend/src/common/plugins/plugin.interface.ts create mode 100644 apps/backend/src/common/plugins/plugin.service.ts create mode 100644 apps/backend/src/entities/user.entity.ts create mode 100644 apps/backend/src/main.ts create mode 100644 apps/backend/tsconfig.build.json create mode 100644 apps/backend/tsconfig.json create mode 100644 apps/frontend/package.json create mode 100644 apps/frontend/src/main.js create mode 100755 bun.lockb create mode 100644 custom/plugins/blmedia-example/apps/frontend/src/main.js create mode 100644 custom/plugins/blmedia-example/blmedia-example.plugin.ts create mode 100644 custom/plugins/blmedia-example/package.json create mode 100644 devenv.lock create mode 100644 devenv.nix create mode 100644 docker-compose.yml create mode 100644 package.json diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..03642d8 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +.devenv +.devenv.flake.nix +.idea \ No newline at end of file diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..13566b8 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/Engine.iml b/.idea/Engine.iml new file mode 100644 index 0000000..c956989 --- /dev/null +++ b/.idea/Engine.iml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/discord.xml b/.idea/discord.xml new file mode 100644 index 0000000..30bab2a --- /dev/null +++ b/.idea/discord.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/.idea/material_theme_project_new.xml b/.idea/material_theme_project_new.xml new file mode 100644 index 0000000..4cfa67d --- /dev/null +++ b/.idea/material_theme_project_new.xml @@ -0,0 +1,10 @@ + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..7a71c51 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/php.xml b/.idea/php.xml new file mode 100644 index 0000000..f324872 --- /dev/null +++ b/.idea/php.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..afbe93f --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/README.md b/README.md deleted file mode 100644 index df41f68..0000000 --- a/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# Engine - -The Void Engine :3 (very cool name, and stuff) - -(This is for a secret project I'm working on :3) \ No newline at end of file diff --git a/apps/backend/README.md b/apps/backend/README.md new file mode 100644 index 0000000..5404a84 --- /dev/null +++ b/apps/backend/README.md @@ -0,0 +1,58 @@ +

+ Nest Logo +

+ +[circleci-image]: https://img.shields.io/circleci/build/github/nestjs/nest/master?token=abc123def456 +[circleci-url]: https://circleci.com/gh/nestjs/nest + +

A progressive Bun framework for building efficient and scalable server-side applications.

+

+NPM Version +Package License +NPM Downloads +CircleCI +Coverage +Discord +Backers on Open Collective +Sponsors on Open Collective + + Support us + +

+ + +## Description + +[Nest](https://github.com/nestjs/nest) framework TypeScript repository with Bun. + +## Installation + +```bash +$ bun install +``` + +## Running the app + +```bash +# watch mode +$ bun run start:dev + +# production mode +$ bun run start:prod +``` + +## Support + +Nest is an MIT-licensed open source project. It can grow thanks to the sponsors and support by the amazing backers. If you'd like to join them, please [read more here](https://docs.nestjs.com/support). + +## Stay in touch + +- Author - [Kamil Myƛliwiec](https://kamilmysliwiec.com) +- Website - [https://nestjs.com](https://nestjs.com/) +- Twitter - [@nestframework](https://twitter.com/nestframework) +- Bun adaption - [@letstri](https://github.com/letstri) + +## License + +Nest is [MIT licensed](LICENSE). diff --git a/apps/backend/bun.lockb b/apps/backend/bun.lockb new file mode 100755 index 0000000000000000000000000000000000000000..35f405d053e6d34b20f29966751108ab18ce3b02 GIT binary patch literal 201933 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 literal 0 HcmV?d00001 diff --git a/apps/backend/nest-cli.json b/apps/backend/nest-cli.json new file mode 100644 index 0000000..f9aa683 --- /dev/null +++ b/apps/backend/nest-cli.json @@ -0,0 +1,8 @@ +{ + "$schema": "https://json.schemastore.org/nest-cli", + "collection": "@nestjs/schematics", + "sourceRoot": "src", + "compilerOptions": { + "deleteOutDir": true + } +} diff --git a/apps/backend/package.json b/apps/backend/package.json new file mode 100644 index 0000000..da69ca7 --- /dev/null +++ b/apps/backend/package.json @@ -0,0 +1,36 @@ +{ + "name": "homespace-backend", + "version": "0.0.1", + "author": "Johannes Reckers", + "type": "module", + "license": "MIT", + "scripts": { + "format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"", + "start:dev": "bun --watch ./src/main.ts", + "start:debug": "nest start --debug --watch", + "start:prod": "bun ./src/main.ts", + "lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix" + }, + "dependencies": { + "@nestjs/common": "^10.0.0", + "@nestjs/core": "^10.0.0", + "@nestjs/platform-express": "^10.0.0", + "@nestjs/typeorm": "^10.0.1", + "mongodb": "^6.7.0", + "pg": "^8.11.3", + "typeorm": "^0.3.17" + }, + "devDependencies": { + "@nestjs/cli": "^10.0.0", + "@nestjs/schematics": "^10.0.0", + "@types/express": "^4.17.17", + "@types/node": "^20.9.4", + "@typescript-eslint/eslint-plugin": "^6.0.0", + "@typescript-eslint/parser": "^6.0.0", + "eslint": "^8.42.0", + "eslint-config-prettier": "^9.0.0", + "eslint-plugin-prettier": "^5.0.0", + "prettier": "^3.0.0", + "typescript": "^5.1.3" + } +} \ No newline at end of file diff --git a/apps/backend/src/app.controller.ts b/apps/backend/src/app.controller.ts new file mode 100644 index 0000000..ae7af0a --- /dev/null +++ b/apps/backend/src/app.controller.ts @@ -0,0 +1,12 @@ +import { Controller, Get } from '@nestjs/common'; +import { AppService } from './app.service'; + +@Controller() +export class AppController { + constructor(private readonly appService: AppService) {} + + @Get() + createUser() { + return this.appService.createUser(); + } +} diff --git a/apps/backend/src/app.module.ts b/apps/backend/src/app.module.ts new file mode 100644 index 0000000..7c9a4e6 --- /dev/null +++ b/apps/backend/src/app.module.ts @@ -0,0 +1,27 @@ +import { Module } from '@nestjs/common'; +import { TypeOrmModule } from '@nestjs/typeorm'; +import { AppController } from './app.controller'; +import { AppService } from './app.service'; +import { User } from './entities/user.entity'; + +const userForFeature = TypeOrmModule.forFeature([User]); + +@Module({ + imports: [ + TypeOrmModule.forRoot({ + type: "mongodb", + host: "localhost", + port: 27017, + username: "homespace", + password: "homespace", + database: "homespace", + synchronize: true, + logging: false, + entities: [User], + }), + userForFeature, + ], + controllers: [AppController], + providers: [AppService], +}) +export class AppModule {} diff --git a/apps/backend/src/app.service.ts b/apps/backend/src/app.service.ts new file mode 100644 index 0000000..58a6ac5 --- /dev/null +++ b/apps/backend/src/app.service.ts @@ -0,0 +1,23 @@ +import { Injectable } from '@nestjs/common'; +import { InjectRepository } from '@nestjs/typeorm'; +import type { Repository } from 'typeorm'; +import { User } from './entities/user.entity'; + +@Injectable() +export class AppService { + constructor( + @InjectRepository(User) + private readonly userRepository: Repository, + ) {} + + async createUser() { + const user = this.userRepository.create({ + firstName: 'Johannes', + lastName: 'Reckers', + age: 18, + }); + + const entity = await this.userRepository.save(user); + return entity; + } +} diff --git a/apps/backend/src/common/plugins/plugin.interface.ts b/apps/backend/src/common/plugins/plugin.interface.ts new file mode 100644 index 0000000..ffe1d28 --- /dev/null +++ b/apps/backend/src/common/plugins/plugin.interface.ts @@ -0,0 +1,3 @@ +export interface Plugin { + register(): void +} \ No newline at end of file diff --git a/apps/backend/src/common/plugins/plugin.service.ts b/apps/backend/src/common/plugins/plugin.service.ts new file mode 100644 index 0000000..77be46c --- /dev/null +++ b/apps/backend/src/common/plugins/plugin.service.ts @@ -0,0 +1,15 @@ +import { Injectable, OnModuleInit } from "@nestjs/common"; +import { type Plugin } from './plugin.interface'; + +@Injectable() +export class PluginService implements OnModuleInit { + private plugins: Plugin[] = []; + + public registerPlugin(plugin: Plugin) { + this.plugins.push(plugin); + } + + onModuleInit() { + this.plugins.forEach((plugin) => plugin.register()); + } +} \ No newline at end of file diff --git a/apps/backend/src/entities/user.entity.ts b/apps/backend/src/entities/user.entity.ts new file mode 100644 index 0000000..cdfe015 --- /dev/null +++ b/apps/backend/src/entities/user.entity.ts @@ -0,0 +1,16 @@ +import { Entity, PrimaryGeneratedColumn, Column } from 'typeorm'; + +@Entity() +export class User { + @PrimaryGeneratedColumn() + id: number; + + @Column() + firstName: string; + + @Column() + lastName: string; + + @Column() + age: number; +} diff --git a/apps/backend/src/main.ts b/apps/backend/src/main.ts new file mode 100644 index 0000000..3fb330f --- /dev/null +++ b/apps/backend/src/main.ts @@ -0,0 +1,14 @@ +import { NestFactory } from '@nestjs/core'; +import { AppModule } from './app.module'; +import { PluginService } from './common/plugins/plugin.service'; + +async function bootstrap() { + const app = await NestFactory.create(AppModule); + + const pluginService = app.get(PluginService); + pluginService.onModuleInit(); // Initialize plugins + + await app.listen(4300); +} + +bootstrap(); diff --git a/apps/backend/tsconfig.build.json b/apps/backend/tsconfig.build.json new file mode 100644 index 0000000..64f86c6 --- /dev/null +++ b/apps/backend/tsconfig.build.json @@ -0,0 +1,4 @@ +{ + "extends": "./tsconfig.json", + "exclude": ["node_modules", "test", "dist", "**/*spec.ts"] +} diff --git a/apps/backend/tsconfig.json b/apps/backend/tsconfig.json new file mode 100644 index 0000000..95f5641 --- /dev/null +++ b/apps/backend/tsconfig.json @@ -0,0 +1,21 @@ +{ + "compilerOptions": { + "module": "commonjs", + "declaration": true, + "removeComments": true, + "emitDecoratorMetadata": true, + "experimentalDecorators": true, + "allowSyntheticDefaultImports": true, + "target": "ES2021", + "sourceMap": true, + "outDir": "./dist", + "baseUrl": "./", + "incremental": true, + "skipLibCheck": true, + "strictNullChecks": false, + "noImplicitAny": false, + "strictBindCallApply": false, + "forceConsistentCasingInFileNames": false, + "noFallthroughCasesInSwitch": false + } +} diff --git a/apps/frontend/package.json b/apps/frontend/package.json new file mode 100644 index 0000000..1417fef --- /dev/null +++ b/apps/frontend/package.json @@ -0,0 +1,4 @@ +{ + "name": "homespace-frontend", + "version": "0.0.1" +} \ No newline at end of file diff --git a/apps/frontend/src/main.js b/apps/frontend/src/main.js new file mode 100644 index 0000000..e69de29 diff --git a/bun.lockb b/bun.lockb new file mode 100755 index 0000000000000000000000000000000000000000..b2dbe57356cd1d3607806dc07acb1b0347a4f364 GIT binary patch literal 192816 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 R1^S9zhDm2!}}uW_KzG zD?j~t`yH3QPFXb;GZSFuXqYAEwchviZPPbL3Pv2;CsHDbPEn7oU#~lXWeb!XGcTZ~ zt^2ARC+_j|mXn@%XkU~=9)N{=x^2{K07_ zBZU$cv=yUv2*Ek{`%hFnNZq^5{rfH%@QJ|4sJ{v+oVUBjpSNh%Q!hS<6s^0&r^IL* zkS;4HDQxRp{Oa>3uJzgoVB^q2O@BFArQG=E!!Gf91B1Zhzu_ z?^9bxFQBZt3@~iD>VMHue|E^R`*B5oZi8cTv-Lo$n^V^aHjz zw|_Eb&0QyQb|$Z(sm9aRSk3}nPCQJ!W;bSvl1PV6ePl|i-%aE-=WS5EmrmJt{>GQJ z9VJ?T?$^a6E?G)dyuWR``&uW>J%z2U_ok47J&8)iEL9zX`D|dj8_}alMYlZH!R+3{ldgvH#~XFDYW~;)elskfD~*6F6{l{$@7<- zIs&?~pYj`|3_?o&dmrEP%yZj~3sdez%63S(dh3@Sdgg|G{u`z=*7Qx}?T5Vav{8<> z&4nfFxnqvoI{&rIjjYg6>@VbIa~E!tiEkXb{yE#dhMJC1`&sd$q)}RO?;RaJamYbR zzCE_detTZ=pP6q9-$W*U8}7u*s(5VIfeOk4-$S44ETzCjXhK?Ezk9IiZ;!qH$KsMR zKcUwVM?G2&KI5`5Dc^Vh3y+-t5iFY0M~A^L4KVB>!}hph`}rqqxP_#Mz7xNi%6X+u z4}IuAS8jAs?{hk^_kms|GO?UZ$-c}77x(GElehRWT@EN{oSkLV1IxvjhuP|N`Zby% zVkMzH<02^#IeN(E<*}eA8Sk>e#oQWz2<(TP#z%V zW26w<&Mo_``s|4Q{}vdLE-^h3FxMTbV3xgj=lk1~cVR1Nxf9<*;zwir_=#y#a3_BJ z#IHi*M@jrTYvoUrbXjZ4u|36|KHMvm2a&5Bv^Vx?0Yh(~vu|CoA~Sf{q7WvY2k{aq zUhZ(~asbNl&*k*%wZU{{A&KW`JP+b)`fX%leEZx18fo9TWcFRj%wN|mNq>`lvj>r~ z5mFv{XXJI&>tB9f_rzhtEiyiG-6%79JV(Dxea<~hN!UJx-5+>&>aXs^o&@wAIui^$ zT#bbRzdw24lLs$??!PnIg?~FDh4ne$^4-~NZR$xBN z{zw^wlppMS=6PF99veZH%dTtyG5>iL0v9R!od%yno$iDP;#Qeu8z0q&OPvNR9lS?I5oO}E4 zQhTn!S(CCCB;8Uq6@Q=)l*Ni*@~(Taj!+%oy{wa45CI}$1*i`w{BXk59X z6wqy>pm7GI3QOAdJ4VfbufKoC7Rv{H^&}}6!|60}5K=f6p4xt5=PSQ_4Sh#1F)Z~- zcfmWO9V^b|r_I=MkCr>&$AvQr>^rIa++3=X?)t3y`H9osJLhJ|18vc4oVSr8`gNmz z02v}Z@qEz6e!X|!>#wRTe&RG>)0$A@9K1lc_T?I8{�wIQ|TJ9Z5Olo0n?msk^}g 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 o%pMK?wPx# literal 0 HcmV?d00001 diff --git a/custom/plugins/blmedia-example/apps/frontend/src/main.js b/custom/plugins/blmedia-example/apps/frontend/src/main.js new file mode 100644 index 0000000..e69de29 diff --git a/custom/plugins/blmedia-example/blmedia-example.plugin.ts b/custom/plugins/blmedia-example/blmedia-example.plugin.ts new file mode 100644 index 0000000..fab40f0 --- /dev/null +++ b/custom/plugins/blmedia-example/blmedia-example.plugin.ts @@ -0,0 +1 @@ +// Todo: create example plugin \ No newline at end of file diff --git a/custom/plugins/blmedia-example/package.json b/custom/plugins/blmedia-example/package.json new file mode 100644 index 0000000..7add712 --- /dev/null +++ b/custom/plugins/blmedia-example/package.json @@ -0,0 +1,7 @@ +{ + "name": "blmedia-example", + "version": "0.0.1", + "workspaces": [ + "apps/*" + ] +} \ No newline at end of file diff --git a/devenv.lock b/devenv.lock new file mode 100644 index 0000000..8c3467b --- /dev/null +++ b/devenv.lock @@ -0,0 +1,122 @@ +{ + "nodes": { + "devenv": { + "locked": { + "dir": "src/modules", + "lastModified": 1719323427, + "owner": "cachix", + "repo": "devenv", + "rev": "f810f8d8cb4e674d7e635107510bcbbabaa755a3", + "treeHash": "165ad401b1788985cdaa07483f9ed110cc848958", + "type": "github" + }, + "original": { + "dir": "src/modules", + "owner": "cachix", + "repo": "devenv", + "type": "github" + } + }, + "flake-compat": { + "flake": false, + "locked": { + "lastModified": 1696426674, + "owner": "edolstra", + "repo": "flake-compat", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "treeHash": "2addb7b71a20a25ea74feeaf5c2f6a6b30898ecb", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "gitignore": { + "inputs": { + "nixpkgs": [ + "pre-commit-hooks", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1709087332, + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", + "treeHash": "ca14199cabdfe1a06a7b1654c76ed49100a689f9", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1716977621, + "owner": "cachix", + "repo": "devenv-nixpkgs", + "rev": "4267e705586473d3e5c8d50299e71503f16a6fb6", + "treeHash": "6d9f1f7ca0faf1bc2eeb397c78a49623260d3412", + "type": "github" + }, + "original": { + "owner": "cachix", + "ref": "rolling", + "repo": "devenv-nixpkgs", + "type": "github" + } + }, + "nixpkgs-stable": { + "locked": { + "lastModified": 1719234068, + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "90bd1b26e23760742fdcb6152369919098f05417", + "treeHash": "c87db871f241e42f31db9fb9936b61cb60f127ae", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-23.11", + "repo": "nixpkgs", + "type": "github" + } + }, + "pre-commit-hooks": { + "inputs": { + "flake-compat": "flake-compat", + "gitignore": "gitignore", + "nixpkgs": [ + "nixpkgs" + ], + "nixpkgs-stable": "nixpkgs-stable" + }, + "locked": { + "lastModified": 1719259945, + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "rev": "0ff4381bbb8f7a52ca4a851660fc7a437a4c6e07", + "treeHash": "1a76ff89a9d4017b48abbb1bad8837b35d604ffc", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "type": "github" + } + }, + "root": { + "inputs": { + "devenv": "devenv", + "nixpkgs": "nixpkgs", + "pre-commit-hooks": "pre-commit-hooks" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/devenv.nix b/devenv.nix new file mode 100644 index 0000000..3a095ee --- /dev/null +++ b/devenv.nix @@ -0,0 +1,15 @@ +{ pkgs, config, ... }: { + env.GREET = "Welcome to your dev environment <3\nNestJS + Bun"; + + packages = [ + pkgs.nest-cli + pkgs.bun + ]; + + enterShell = '' + echo "Installing packages" + bun i + clear + echo "${config.env.GREET}" + ''; +} diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..8fd020b --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,22 @@ +services: + homespace: + build: + context: ./ + dockerfile: Dockerfile + ports: + - "4300:4300" + restart: always + + mongo: + image: mongo + container_name: homespace-db + ports: + - "27017:27017" + restart: always + logging: + driver: "json-file" + options: + max-size: 1g + environment: + - MONGO_INITDB_ROOT_USERNAME=homespace + - MONGO_INITDB_ROOT_PASSWORD=homespace \ No newline at end of file diff --git a/package.json b/package.json new file mode 100644 index 0000000..b0c5370 --- /dev/null +++ b/package.json @@ -0,0 +1,7 @@ +{ + "name": "homespace", + "private": true, + "workspaces": [ + "apps/*" + ] +} \ No newline at end of file