metamigo-cli: build, fmt, lint
This commit is contained in:
parent
d692b3e7ff
commit
38e68852d9
19 changed files with 4088 additions and 11882 deletions
|
|
@ -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"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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": "*",
|
||||||
|
|
|
||||||
|
|
@ -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"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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
15860
package-lock.json
generated
File diff suppressed because it is too large
Load diff
|
|
@ -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",
|
||||||
|
|
|
||||||
|
|
@ -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": [
|
||||||
|
|
|
||||||
|
|
@ -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 }
|
||||||
|
};
|
||||||
5
packages/metamigo-cli/babel.config.json
Normal file
5
packages/metamigo-cli/babel.config.json
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
{
|
||||||
|
"presets": [
|
||||||
|
"babel-preset-link"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
@ -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"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
};
|
};
|
||||||
|
|
@ -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";
|
||||||
|
|
@ -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);
|
||||||
|
|
||||||
|
|
@ -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));
|
||||||
|
|
@ -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/**"]
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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": "*",
|
||||||
|
|
|
||||||
|
|
@ -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",
|
||||||
|
|
|
||||||
|
|
@ -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",
|
||||||
|
|
|
||||||
|
|
@ -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",
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue