49 lines
1.6 KiB
Nix
49 lines
1.6 KiB
Nix
{ pkgs, commonFn, langFn, componentsFn }:
|
|
|
|
rec {
|
|
common = commonFn pkgs;
|
|
lang = langFn pkgs;
|
|
components = componentsFn pkgs;
|
|
websitePackageJson = let
|
|
raw = pkgs.lib.importJSON ../packages/website/package.json;
|
|
modified = pkgs.lib.recursiveUpdate raw {
|
|
dependencies.postcss-import = "^14.1.0";
|
|
dependencies.tailwindcss = "^3.1.8";
|
|
};
|
|
packageJsonString = builtins.toJSON modified;
|
|
in pkgs.writeText "packages/website/patched-package.json" packageJsonString;
|
|
website-yarnPackage = pkgs.mkYarnPackage {
|
|
name = "squiggle-website_source";
|
|
src = ../packages/website;
|
|
packageJSON = websitePackageJson;
|
|
yarnLock = ../yarn.lock;
|
|
packageResolutions."@quri/squiggle-lang" = lang.lang-build;
|
|
packageResolutions."@quri/squiggle-components" =
|
|
components.components-package-build;
|
|
workspaceDependencies =
|
|
[ lang.lang-yarnPackage components.components-yarnPackage ];
|
|
};
|
|
website-lint = pkgs.stdenv.mkDerivation {
|
|
name = "squiggle-website-lint";
|
|
buildInputs = common.buildInputs ++ common.prettier;
|
|
src = website-yarnPackage
|
|
+ "/libexec/squiggle-website/deps/squiggle-website";
|
|
buildPhase = "yarn --offline lint";
|
|
installPhase = "mkdir -p $out";
|
|
};
|
|
website = pkgs.stdenv.mkDerivation {
|
|
name = "squiggle-website";
|
|
buildInputs = common.buildInputs;
|
|
src = website-yarnPackage + "/libexec/squiggle-website";
|
|
buildPhase = ''
|
|
pushd deps/squiggle-website
|
|
yarn --offline build
|
|
popd
|
|
'';
|
|
installPhase = ''
|
|
mkdir -p $out
|
|
cp -r $src/build $out
|
|
'';
|
|
};
|
|
}
|