frontend client for gemstone. decentralised workplace app

feat: nix shell

serenity d665f69e 9c50b458

+18
default.nix
···
+
{ lib, buildNpmPackage }:
+
+
buildNpmPackage {
+
pname = "gemstone-app";
+
version = "0.0.1";
+
+
src = ./.;
+
+
npmDepsHash = lib.fakeHash;
+
+
meta = {
+
description = "frontend for gemstone, decentralised workspace app.";
+
homepage = "https://github.com/gemstone-systems/gemstone-app";
+
license = lib.licenses.mit;
+
maintainers = with lib.maintainers; [ ];
+
mainProgram = "example";
+
};
+
}
+29
flake.nix
···
+
{
+
description = "frontend for gemstone, decentralised workspace app.";
+
+
inputs = {
+
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
+
};
+
+
outputs =
+
{ self, nixpkgs }:
+
let
+
forAllSystems =
+
function:
+
nixpkgs.lib.genAttrs nixpkgs.lib.systems.flakeExposed (
+
system: function nixpkgs.legacyPackages.${system}
+
);
+
in
+
{
+
packages = forAllSystems (pkgs: {
+
example = pkgs.callPackage ./default.nix { };
+
default = self.packages.${pkgs.stdenv.hostPlatform.system}.example;
+
});
+
+
devShells = forAllSystems (pkgs: {
+
default = pkgs.callPackage ./shell.nix { };
+
});
+
+
overlays.default = final: _: { example = final.callPackage ./default.nix { }; };
+
};
+
}
+33
shell.nix
···
+
{
+
mkShellNoCC,
+
+
# extra tooling
+
eslint_d,
+
prettierd,
+
nodejs_24,
+
pnpm,
+
typescript,
+
typescript-language-server,
+
+
callPackage,
+
}:
+
let
+
defaultPackage = callPackage ./default.nix { };
+
in
+
mkShellNoCC {
+
inputsFrom = [ defaultPackage ];
+
+
packages = [
+
eslint_d
+
prettierd
+
nodejs_24
+
pnpm
+
typescript
+
typescript-language-server
+
];
+
+
shellHook = ''
+
eslint_d start # start eslint daemon
+
eslint_d status # inform user about eslint daemon status
+
'';
+
}