metamigo-cli: build, fmt, lint

This commit is contained in:
Abel Luck 2023-03-13 12:11:25 +00:00
parent d692b3e7ff
commit 38e68852d9
19 changed files with 4088 additions and 11882 deletions

View file

@ -57,6 +57,6 @@
"eslint-plugin-jsx-a11y": "^6.6.1", "eslint-plugin-jsx-a11y": "^6.6.1",
"eslint-plugin-prettier": "^4.2.1", "eslint-plugin-prettier": "^4.2.1",
"eslint-plugin-react": "^7.31.8", "eslint-plugin-react": "^7.31.8",
"typescript": "^4.8.4" "typescript": "^4.9.5"
} }
} }

View file

@ -42,7 +42,7 @@
"devDependencies": { "devDependencies": {
"pino-pretty": "^9.1.1", "pino-pretty": "^9.1.1",
"ts-node": "^10.9.1", "ts-node": "^10.9.1",
"typescript": "4.9.4", "typescript": "^4.9.5",
"@types/long": "^4.0.2", "@types/long": "^4.0.2",
"nodemon": "^2.0.20", "nodemon": "^2.0.20",
"@types/node": "*", "@types/node": "*",

View file

@ -45,6 +45,6 @@
"@types/hapi__wreck": "17.0.1", "@types/hapi__wreck": "17.0.1",
"@types/react": "^17", "@types/react": "^17",
"@types/react-mic": "12.4.3", "@types/react-mic": "12.4.3",
"typescript": "^4.9.4" "typescript": "^4.9.5"
} }
} }

View file

@ -27,7 +27,7 @@
"prettier": "^2.8.3", "prettier": "^2.8.3",
"ts-node": "^10.9.1", "ts-node": "^10.9.1",
"typedoc": "^0.23.24", "typedoc": "^0.23.24",
"typescript": "4.9.4" "typescript": "^4.9.5"
}, },
"nodemonConfig": { "nodemonConfig": {
"ignore": [ "ignore": [

15860
package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -25,7 +25,7 @@
}, },
"peerDependencies": { "peerDependencies": {
"eslint": "^7.32.0", "eslint": "^7.32.0",
"typescript": "^4.4.3" "typescript": "^4.9.5"
}, },
"devDependencies": { "devDependencies": {
"eslint": "^8.36.0", "eslint": "^8.36.0",

View file

@ -42,6 +42,7 @@ module.exports = {
"unicorn/no-array-for-each": "off", "unicorn/no-array-for-each": "off",
"unicorn/prefer-ternary": "off", "unicorn/prefer-ternary": "off",
"unicorn/text-encoding-identifier-case": "off", "unicorn/text-encoding-identifier-case": "off",
"unicorn/numeric-separators-style": "off",
"function-call-argument-newline": "off", "function-call-argument-newline": "off",
"promise/param-names": "error", "promise/param-names": "error",
"promise/no-return-wrap": [ "promise/no-return-wrap": [

View file

@ -1 +1,8 @@
require('../.eslintrc.js"); require('eslint-config-link/patch/modern-module-resolution');
module.exports = {
extends: [
"eslint-config-link/profile/node",
"eslint-config-link/profile/typescript"
],
parserOptions: { tsconfigRootDir: __dirname }
};

View file

@ -0,0 +1,5 @@
{
"presets": [
"babel-preset-link"
]
}

View file

@ -6,34 +6,30 @@
"license": "AGPL-3.0-or-later", "license": "AGPL-3.0-or-later",
"dependencies": { "dependencies": {
"@digiresilience/montar": "*", "@digiresilience/montar": "*",
"@digiresilience/metamigo-config": "*",
"@digiresilience/metamigo-db": "*",
"commander": "^10.0.0", "commander": "^10.0.0",
"graphile-migrate": "^1.4.1", "graphile-migrate": "^1.4.1",
"graphile-worker": "^0.13.0", "graphile-worker": "^0.13.0",
"node-jose": "^2.1.1" "node-jose": "^2.1.1",
"postgraphile": "4.12.3",
"graphql": "15.8.0"
}, },
"devDependencies": { "devDependencies": {
"@babel/core": "7.20.12",
"@babel/preset-env": "7.20.2",
"@babel/preset-typescript": "7.18.6",
"@types/jest": "^29.2.5",
"eslint": "^8.32.0",
"jest": "^29.3.1",
"jest-junit": "^15.0.0",
"pino-pretty": "^9.1.1", "pino-pretty": "^9.1.1",
"prettier": "^2.8.3", "nodemon": "^2.0.20",
"ts-node": "^10.9.1", "tsconfig-link": "*",
"typedoc": "^0.23.24", "eslint-config-link": "*",
"typescript": "4.9.4", "jest-config-link": "*",
"nodemon": "^2.0.20" "babel-preset-link": "*",
"typescript": "^4.9.5"
}, },
"scripts": { "scripts": {
"build": "tsc -p tsconfig.json", "build": "tsc -p tsconfig.json",
"cli": "NODE_ENV=development node --unhandled-rejections=strict build/main/index.js", "cli": "NODE_ENV=development node --unhandled-rejections=strict build/main/index.js",
"fix:lint": "eslint src --ext .ts --fix", "fix:lint": "eslint src --ext .ts --fix",
"fix:prettier": "prettier \"src/**/*.ts\" --write", "fmt": "prettier \"src/**/*.ts\" --write",
"lint:lint": "eslint src --ext .ts", "lint": "eslint src --ext .ts && prettier \"src/**/*.ts\" --list-different",
"lint:prettier": "prettier \"src/**/*.ts\" --list-different", "test": "echo no tests"
"test": "echo no tests",
"lint": "yarn lint:lint && yarn lint:prettier"
} }
} }

View file

@ -1,8 +1,12 @@
import { generateConfig, printConfigOptions } from "@digiresilience/metamigo-common"; import {
import { loadConfigRaw } from "config"; generateConfig,
printConfigOptions,
} from "@digiresilience/metamigo-common";
import { loadConfigRaw } from "@digiresilience/metamigo-config";
export const genConf = async (): Promise<void> => { export const genConf = async (): Promise<void> => {
const c = await loadConfigRaw(); const c = await loadConfigRaw();
// @ts-expect-error TS2589
const generated = generateConfig(c); const generated = generateConfig(c);
console.log(generated); console.log(generated);
}; };

View file

@ -3,10 +3,10 @@
import { Command } from "commander"; import { Command } from "commander";
import { startWithout } from "@digiresilience/montar"; import { startWithout } from "@digiresilience/montar";
import { migrateWrapper } from "@digiresilience/metamigo-db"; import { migrateWrapper } from "@digiresilience/metamigo-db";
import { loadConfig } from "config"; import { loadConfig } from "@digiresilience/metamigo-config";
import { genConf, listConfig } from "./config"; import { genConf, listConfig } from "./config";
import { createTokenForTesting, generateJwks } from "./jwks"; import { createTokenForTesting, generateJwks } from "./jwks";
import { exportGraphqlSchema } from "./postgraphile"; import { exportGraphqlSchema } from "./metamigo-postgraphile";
import "api/build/main/server"; import "api/build/main/server";
import "api/build/main/logger"; import "api/build/main/logger";
import "worker/build/main"; import "worker/build/main";

View file

@ -14,9 +14,8 @@ const generateKeystore = async () => {
return keystore; return keystore;
}; };
const safeString = (input) => { const safeString = (input) =>
return Buffer.from(JSON.stringify(input)).toString("base64"); Buffer.from(JSON.stringify(input)).toString("base64");
};
const stringify = (v) => JSON.stringify(v, undefined, 2); const stringify = (v) => JSON.stringify(v, undefined, 2);

View file

@ -1,13 +1,14 @@
import { writeFileSync } from "fs"; import { writeFileSync } from "node:fs";
import { import {
getIntrospectionQuery, getIntrospectionQuery,
GraphQLSchema,
graphqlSync, graphqlSync,
lexicographicSortSchema, lexicographicSortSchema,
printSchema, printSchema,
} from "graphql"; } from "graphql";
import { createPostGraphileSchema } from "postgraphile"; import { createPostGraphileSchema } from "postgraphile";
import { Pool } from "pg"; import { Pool } from "pg";
import { loadConfig } from "config"; import { loadConfig } from "@digiresilience/metamigo-config";
import { getPostGraphileOptions } from "@digiresilience/metamigo-db"; import { getPostGraphileOptions } from "@digiresilience/metamigo-db";
export const exportGraphqlSchema = async (): Promise<void> => { export const exportGraphqlSchema = async (): Promise<void> => {
@ -19,11 +20,11 @@ export const exportGraphqlSchema = async (): Promise<void> => {
const exportSchema = `../../data/schema.graphql`; const exportSchema = `../../data/schema.graphql`;
const exportJson = `../../frontend/lib/graphql-schema.json`; const exportJson = `../../frontend/lib/graphql-schema.json`;
try { try {
const schema = await createPostGraphileSchema( const schema = (await createPostGraphileSchema(
config.postgraphile.authConnection, config.postgraphile.authConnection,
"app_public", "app_public",
getPostGraphileOptions() getPostGraphileOptions()
); )) as unknown as GraphQLSchema;
const sorted = lexicographicSortSchema(schema); const sorted = lexicographicSortSchema(schema);
const json = graphqlSync(schema, getIntrospectionQuery()); const json = graphqlSync(schema, getIntrospectionQuery());
writeFileSync(exportSchema, printSchema(sorted)); writeFileSync(exportSchema, printSchema(sorted));

View file

@ -1,8 +1,12 @@
{ {
"extends": "../tsconfig.json", "extends": "tsconfig-link",
"compilerOptions": { "compilerOptions": {
"outDir": "build/main" "incremental": true,
"outDir": "build/main",
"rootDir": "src",
"baseUrl": "./",
"types": ["jest", "node"]
}, },
"include": ["**/*.ts", "**/.*.ts", "config.ts"], "include": ["src/**/*.ts"],
"exclude": ["node_modules", "**/*.spec.ts", "**/*.test.ts"] "exclude": ["node_modules/**"]
} }

View file

@ -22,7 +22,8 @@
"@types/uuid": "^9.0.0", "@types/uuid": "^9.0.0",
"camelcase-keys": "^8.0.2", "camelcase-keys": "^8.0.2",
"pg-monitor": "^2.0.0", "pg-monitor": "^2.0.0",
"typedoc": "^0.23.24" "typedoc": "^0.23.24",
"typescript": "^4.9.5"
}, },
"dependencies": { "dependencies": {
"@digiresilience/hapi-nextauth": "*", "@digiresilience/hapi-nextauth": "*",

View file

@ -16,7 +16,7 @@
"prettier": "^2.8.3", "prettier": "^2.8.3",
"ts-node": "^10.9.1", "ts-node": "^10.9.1",
"typedoc": "^0.23.24", "typedoc": "^0.23.24",
"typescript": "4.9.4" "typescript": "^4.9.5"
}, },
"files": [ "files": [
"build", "build",

View file

@ -2,12 +2,14 @@
"name": "@digiresilience/metamigo-db", "name": "@digiresilience/metamigo-db",
"private": true, "private": true,
"version": "0.2.0", "version": "0.2.0",
"main": "build/main/db/src/index.js", "main": "build/main/index.js",
"author": "Abel Luck <abel@guardianproject.info>", "author": "Abel Luck <abel@guardianproject.info>",
"license": "AGPL-3.0-or-later", "license": "AGPL-3.0-or-later",
"dependencies": { "dependencies": {
"graphile-migrate": "^1.4.1", "graphile-migrate": "^1.4.1",
"@digiresilience/metamigo-common": "*" "@digiresilience/metamigo-common": "*",
"graphql": "15.8.0",
"postgraphile": "4.12.3"
}, },
"devDependencies": { "devDependencies": {
"@babel/core": "7.20.12", "@babel/core": "7.20.12",
@ -21,7 +23,7 @@
"prettier": "^2.8.3", "prettier": "^2.8.3",
"ts-node": "^10.9.1", "ts-node": "^10.9.1",
"typedoc": "^0.23.24", "typedoc": "^0.23.24",
"typescript": "4.9.4" "typescript": "^4.9.5"
}, },
"scripts": { "scripts": {
"build": "tsc -p tsconfig.json", "build": "tsc -p tsconfig.json",

View file

@ -11,7 +11,7 @@
}, },
"devDependencies": { "devDependencies": {
"ts-node": "^10.0.0", "ts-node": "^10.0.0",
"typescript": "^4.3.2" "typescript": "^4.9.5"
}, },
"dependencies": { "dependencies": {
"prompt": "^1.1.0", "prompt": "^1.1.0",