Explorar o código

Merge pull request #10013 from weseek/imprv/build-openapi-utils

imprv: Build OpenAPI utils to generate spec
mergify[bot] hai 10 meses
pai
achega
5c92dc196a

+ 0 - 1
.eslintignore

@@ -1 +0,0 @@
-node_modules/**

+ 7 - 1
.eslintrc.js

@@ -1,3 +1,6 @@
+/**
+ * @type {import('eslint').Linter.Config}
+ */
 module.exports = {
 module.exports = {
   root: true, // https://eslint.org/docs/user-guide/configuring/configuration-files#cascading-and-hierarchy
   root: true, // https://eslint.org/docs/user-guide/configuring/configuration-files#cascading-and-hierarchy
   extends: [
   extends: [
@@ -7,6 +10,9 @@ module.exports = {
   plugins: [
   plugins: [
     'regex',
     'regex',
   ],
   ],
+  ignorePatterns: [
+    'node_modules/**',
+  ],
   rules: {
   rules: {
     'import/prefer-default-export': 'off',
     'import/prefer-default-export': 'off',
     'import/order': [
     'import/order': [
@@ -73,7 +79,7 @@ module.exports = {
   overrides: [
   overrides: [
     {
     {
       // enable the rule specifically for TypeScript files
       // enable the rule specifically for TypeScript files
-      files: ['*.ts', '*.tsx'],
+      files: ['*.ts', '*.mts', '*.tsx'],
       rules: {
       rules: {
         '@typescript-eslint/explicit-module-boundary-types': ['error'],
         '@typescript-eslint/explicit-module-boundary-types': ['error'],
       },
       },

+ 0 - 6
apps/app/.eslintignore

@@ -1,6 +0,0 @@
-/dist/**
-/transpiled/**
-/public/**
-/src/linter-checker/**
-/tmp/**
-/next-env.d.ts

+ 14 - 2
apps/app/.eslintrc.js

@@ -1,3 +1,6 @@
+/**
+ * @type {import('eslint').Linter.Config}
+ */
 module.exports = {
 module.exports = {
   extends: [
   extends: [
     'next/core-web-vitals',
     'next/core-web-vitals',
@@ -5,6 +8,15 @@ module.exports = {
   ],
   ],
   plugins: [
   plugins: [
   ],
   ],
+  ignorePatterns: [
+    'dist/**',
+    '**/dist/**',
+    'transpiled/**',
+    'public/**',
+    'src/linter-checker/**',
+    'tmp/**',
+    'next-env.d.ts',
+  ],
   settings: {
   settings: {
     // resolve path aliases by eslint-import-resolver-typescript
     // resolve path aliases by eslint-import-resolver-typescript
     'import/resolver': {
     'import/resolver': {
@@ -25,7 +37,7 @@ module.exports = {
   overrides: [
   overrides: [
     {
     {
       // enable the rule specifically for JavaScript files
       // enable the rule specifically for JavaScript files
-      files: ['*.js', '*.jsx'],
+      files: ['*.js', '*.mjs', '*.jsx'],
       rules: {
       rules: {
         // set 'warn' temporarily -- 2023.08.14 Yuki Takei
         // set 'warn' temporarily -- 2023.08.14 Yuki Takei
         'react/prop-types': 'warn',
         'react/prop-types': 'warn',
@@ -35,7 +47,7 @@ module.exports = {
     },
     },
     {
     {
       // enable the rule specifically for TypeScript files
       // enable the rule specifically for TypeScript files
-      files: ['*.ts', '*.tsx'],
+      files: ['*.ts', '*.mts', '*.tsx'],
       rules: {
       rules: {
         'no-unused-vars': 'off',
         'no-unused-vars': 'off',
         // set 'warn' temporarily -- 2023.08.14 Yuki Takei
         // set 'warn' temporarily -- 2023.08.14 Yuki Takei

+ 1 - 1
apps/app/bin/openapi/generate-operation-ids/cli.ts

@@ -24,6 +24,6 @@ export const main = async(): Promise<void> => {
   }
   }
 };
 };
 
 
-if (require.main === module) {
+if (import.meta.url === `file://${process.argv[1]}`) {
   main();
   main();
 }
 }

+ 1 - 1
apps/app/bin/openapi/generate-spec-apiv3.sh

@@ -19,6 +19,6 @@ swagger-jsdoc \
   "${APP_PATH}/src/server/models/openapi/**/*.{js,ts}"
   "${APP_PATH}/src/server/models/openapi/**/*.{js,ts}"
 
 
 if [ $? -eq 0 ]; then
 if [ $? -eq 0 ]; then
-  ts-node "${APP_PATH}/bin/openapi/generate-operation-ids/cli.ts" "${OUT}" --out "${OUT}" --overwrite-existing
+  pnpm dlx tsx "${APP_PATH}/bin/openapi/generate-operation-ids/cli.ts" "${OUT}" --out "${OUT}" --overwrite-existing
   echo "OpenAPI spec generated and transformed: ${OUT}"
   echo "OpenAPI spec generated and transformed: ${OUT}"
 fi
 fi

+ 8 - 7
apps/app/package.json

@@ -27,13 +27,13 @@
     "//// for CI": "",
     "//// for CI": "",
     "launch-dev:ci": "cross-env NODE_ENV=development pnpm run dev:migrate && pnpm run ts-node src/server/app.ts --ci",
     "launch-dev:ci": "cross-env NODE_ENV=development pnpm run dev:migrate && pnpm run ts-node src/server/app.ts --ci",
     "lint:typecheck": "vue-tsc --noEmit",
     "lint:typecheck": "vue-tsc --noEmit",
-    "lint:eslint": "eslint --quiet \"**/*.{js,jsx,ts,tsx}\"",
+    "lint:eslint": "eslint --quiet \"**/*.{js,mjs,jsx,ts,mts,tsx}\"",
     "lint:styles": "stylelint \"src/**/*.scss\"",
     "lint:styles": "stylelint \"src/**/*.scss\"",
-    "lint:swagger2openapi:apiv3": "node node_modules/swagger2openapi/oas-validate tmp/openapi-spec-apiv3.json",
-    "lint:swagger2openapi:apiv1": "node node_modules/swagger2openapi/oas-validate tmp/openapi-spec-apiv1.json",
+    "lint:openapi:apiv3": "node node_modules/swagger2openapi/oas-validate tmp/openapi-spec-apiv3.json",
+    "lint:openapi:apiv1": "node node_modules/swagger2openapi/oas-validate tmp/openapi-spec-apiv1.json",
     "lint": "run-p lint:**",
     "lint": "run-p lint:**",
-    "prelint:swagger2openapi:apiv3": "pnpm run swagger2openapi:apiv3",
-    "prelint:swagger2openapi:apiv1": "pnpm run swagger2openapi:apiv1",
+    "prelint:openapi:apiv3": "pnpm run openapi:generate-spec:apiv3",
+    "prelint:openapi:apiv1": "pnpm run openapi:generate-spec:apiv1",
     "test": "run-p test:*",
     "test": "run-p test:*",
     "test:jest": "cross-env NODE_ENV=test TS_NODE_PROJECT=test/integration/tsconfig.json jest",
     "test:jest": "cross-env NODE_ENV=test TS_NODE_PROJECT=test/integration/tsconfig.json jest",
     "test:vitest": "vitest run --coverage",
     "test:vitest": "vitest run --coverage",
@@ -43,8 +43,9 @@
     "//// misc": "",
     "//// misc": "",
     "console": "npm run repl",
     "console": "npm run repl",
     "repl": "cross-env NODE_ENV=development npm run ts-node src/server/repl.ts",
     "repl": "cross-env NODE_ENV=development npm run ts-node src/server/repl.ts",
-    "swagger2openapi:apiv3": "sh bin/openapi/generate-spec-apiv3.sh",
-    "swagger2openapi:apiv1": "sh bin/openapi/generate-spec-apiv1.sh",
+    "openapi:build:generate-operation-ids": "vite build -c bin/openapi/generate-operation-ids/vite.config.ts",
+    "openapi:generate-spec:apiv3": "sh bin/openapi/generate-spec-apiv3.sh",
+    "openapi:generate-spec:apiv1": "sh bin/openapi/generate-spec-apiv1.sh",
     "ts-node": "node -r ts-node/register/transpile-only -r tsconfig-paths/register -r dotenv-flow/config",
     "ts-node": "node -r ts-node/register/transpile-only -r tsconfig-paths/register -r dotenv-flow/config",
     "version:patch": "pnpm version patch",
     "version:patch": "pnpm version patch",
     "version:prerelease": "pnpm version prerelease --preid=RC",
     "version:prerelease": "pnpm version prerelease --preid=RC",

+ 1 - 1
apps/app/vitest.workspace.mts

@@ -15,7 +15,7 @@ const configShared = defineConfig({
       'test/**',
       'test/**',
       'test-with-vite/**',
       'test-with-vite/**',
       'playwright/**',
       'playwright/**',
-    ]
+    ],
   },
   },
 });
 });
 
 

+ 0 - 1
apps/pdf-converter/.eslintignore

@@ -1 +0,0 @@
-/dist/**

+ 6 - 0
apps/pdf-converter/.eslintrc.cjs

@@ -1,5 +1,11 @@
+/**
+ * @type {import('eslint').Linter.Config}
+ */
 module.exports = {
 module.exports = {
   extends: '../../.eslintrc.js',
   extends: '../../.eslintrc.js',
+  ignorePatterns: [
+    'dist/**',
+  ],
   rules: {
   rules: {
     'no-useless-constructor': 'off',
     'no-useless-constructor': 'off',
     '@typescript-eslint/consistent-type-imports': 'off',
     '@typescript-eslint/consistent-type-imports': 'off',

+ 0 - 3
packages/pdf-converter-client/.eslintignore

@@ -1,3 +0,0 @@
-src/index.ts
-dist/index.d.ts
-dist/index.js

+ 11 - 0
packages/pdf-converter-client/.eslintrc.cjs

@@ -0,0 +1,11 @@
+/**
+ * @type {import('eslint').Linter.Config}
+ */
+module.exports = {
+  extends: '../../.eslintrc.js',
+  ignorePatterns: [
+    'src/index.ts',
+    'dist/index.d.ts',
+    'dist/index.js',
+  ],
+};