mirror of
https://github.com/hsjobeki/noogle.git
synced 2024-10-26 22:11:56 +03:00
refactor: prepare for noogle - monorepo
This commit is contained in:
parent
7a8005f527
commit
91737bb5da
4
.gitignore
vendored
4
.gitignore
vendored
@ -7,8 +7,8 @@ node_modules
|
||||
|
||||
# testing
|
||||
coverage
|
||||
models/data/*
|
||||
!models/data/index.ts
|
||||
website/models/data/*
|
||||
!website/models/data/index.ts
|
||||
|
||||
# nix
|
||||
.direnv/
|
||||
|
21
flake.nix
21
flake.nix
@ -11,28 +11,29 @@
|
||||
let
|
||||
system = "x86_64-linux";
|
||||
pkgs = inp.nixpkgs.legacyPackages.${system};
|
||||
inherit (builtins.fromJSON (builtins.readFile ./package.json)) name;
|
||||
prepareData = ''
|
||||
cp ${inp.nixdoc-fork.packages.${system}.data.lib} ./website/models/data/lib.json
|
||||
cp ${inp.nixdoc-fork.packages.${system}.data.build_support} ./website/models/data/trivial-builders.json
|
||||
node ./scripts/make-builtins.js
|
||||
inherit (builtins.fromJSON (builtins.readFile ./website/package.json)) name;
|
||||
prepareData = prefix: ''
|
||||
cp -f ${inp.nixdoc-fork.packages.${system}.data.lib} ${prefix}./models/data/lib.json
|
||||
cp -f ${inp.nixdoc-fork.packages.${system}.data.build_support} ${prefix}./models/data/trivial-builders.json
|
||||
node ${prefix}./scripts/make-builtins.js ${prefix}./models/data
|
||||
'';
|
||||
in
|
||||
(inp.dream2nix.lib.makeFlakeOutputs {
|
||||
systems = [ system ];
|
||||
projects = ./projects.toml;
|
||||
config.projectRoot = ./.;
|
||||
source = ./.;
|
||||
config.projectRoot = ./website;
|
||||
source = ./website;
|
||||
|
||||
packageOverrides = {
|
||||
${name}.staticPage = {
|
||||
preBuild = prepareData;
|
||||
preBuild = prepareData "";
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
npm run export
|
||||
mkdir -p $out/static
|
||||
cp -r ./out/* $out/static/
|
||||
cp -r ./out/* $out/static/
|
||||
cp -r ./ $lib
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
@ -43,7 +44,7 @@
|
||||
devShells.${system}.default = pkgs.mkShell {
|
||||
buildInputs = with pkgs; [ nodejs-18_x ];
|
||||
shellHook = ''
|
||||
${prepareData}
|
||||
${prepareData "./website/"}
|
||||
${self.checks.${system}.pre-commit-check.shellHook}
|
||||
'';
|
||||
};
|
||||
|
@ -10,9 +10,10 @@
|
||||
|
||||
[noogle]
|
||||
name = "noogle"
|
||||
relPath = "website"
|
||||
relPath = ""
|
||||
subsystem = "nodejs"
|
||||
translator = "package-lock"
|
||||
builder = "strict-builder"
|
||||
translators = ["package-lock", "package-json"]
|
||||
|
||||
[noogle.subsystemInfo]
|
||||
|
@ -1,26 +0,0 @@
|
||||
const builtins = require("./data/builtins.json");
|
||||
const types = require("./data/builtins.types.json");
|
||||
const fs = require("fs");
|
||||
const info = Object.entries(builtins).map(([name, meta]) => {
|
||||
const fn_type = types[name]?.fn_type || null;
|
||||
const { args, arity, doc } = meta;
|
||||
return {
|
||||
id: `builtins.${name}`,
|
||||
category: "builtins",
|
||||
fn_type,
|
||||
name,
|
||||
description: [
|
||||
`takes ${arity} arguments: __\`${args.join("` `")}\`__ \n`,
|
||||
`${doc}\n`,
|
||||
],
|
||||
};
|
||||
});
|
||||
fs.writeFile(
|
||||
"./website/models/data/builtins.json",
|
||||
JSON.stringify(info),
|
||||
(err) => {
|
||||
if (err) {
|
||||
console.error(err);
|
||||
}
|
||||
}
|
||||
);
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
32
website/scripts/make-builtins.js
Executable file
32
website/scripts/make-builtins.js
Executable file
@ -0,0 +1,32 @@
|
||||
const builtins = require("./data/builtins.json");
|
||||
const types = require("./data/builtins.types.json");
|
||||
const fs = require("fs");
|
||||
const { exit } = require("process");
|
||||
|
||||
const DATA_PATH = process.argv.length >= 3 && process.argv[2];
|
||||
|
||||
if (!DATA_PATH) {
|
||||
console.error("argument OUT_PATH is not set");
|
||||
console.info("usage: node make-builtins.js <OUT_PATH>");
|
||||
exit(1);
|
||||
} else {
|
||||
const info = Object.entries(builtins).map(([name, meta]) => {
|
||||
const fn_type = types[name]?.fn_type || null;
|
||||
const { args, arity, doc } = meta;
|
||||
return {
|
||||
id: `builtins.${name}`,
|
||||
category: "builtins",
|
||||
fn_type,
|
||||
name,
|
||||
description: [
|
||||
`takes ${arity} arguments: __\`${args.join("` `")}\`__ \n`,
|
||||
`${doc}\n`,
|
||||
],
|
||||
};
|
||||
});
|
||||
fs.writeFile(`${DATA_PATH}/builtins.json`, JSON.stringify(info), (err) => {
|
||||
if (err) {
|
||||
console.error(err);
|
||||
}
|
||||
});
|
||||
}
|
Loading…
Reference in New Issue
Block a user