Skip to content

Commit 08cdc15

Browse files
authored
Merge pull request #330 from constructive-io/feat/shared-eslint-config
chore(lint): migrate to @constructive-io/eslint-config flat config
2 parents 571af81 + 5e2bdb3 commit 08cdc15

144 files changed

Lines changed: 9413 additions & 12067 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.eslintrc.json

Lines changed: 0 additions & 63 deletions
This file was deleted.

eslint.config.mjs

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
import base from '@constructive-io/eslint-config';
2+
3+
export default [
4+
...base,
5+
{
6+
ignores: [
7+
// fixtures and their expected codegen output
8+
'__fixtures__/**',
9+
'**/__snapshots__/**',
10+
// protobuf codegen (build:proto)
11+
'packages/utils/src/asts.ts',
12+
'packages/utils/src/runtime-schema.ts',
13+
'packages/utils/src/wrapped.ts',
14+
'packages/traverse/src/18/**',
15+
'packages/transform-ast/src/{13,14,15,16,17,18}/**',
16+
'packages/proto-parser/test-utils/**',
17+
// inferred/generated types and keyword list
18+
'packages/pgsql-types/src/types.ts',
19+
'packages/quotes/src/kwlist.ts',
20+
// generated kitchen-sink test files
21+
'**/__tests__/kitchen-sink/**'
22+
]
23+
},
24+
{
25+
// template literals holding code that is emitted verbatim; changing the
26+
// escaping here would change the generated output
27+
files: ['packages/proto-parser/src/inline-helpers/**'],
28+
rules: {
29+
'no-useless-escape': 'off'
30+
}
31+
},
32+
{
33+
// per-version transformers mirror the AST shape field for field, including
34+
// identity assignments and empty node payloads such as `{ Null: {} }`
35+
files: ['packages/transform-ast/src/transformers/**'],
36+
rules: {
37+
'no-self-assign': 'off',
38+
'@typescript-eslint/no-empty-object-type': 'off'
39+
}
40+
}
41+
];

package.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,22 +24,23 @@
2424
"update-workspace": "makage update-workspace"
2525
},
2626
"devDependencies": {
27+
"@constructive-io/eslint-config": "^0.2.0",
2728
"@types/jest": "^30.0.0",
2829
"@types/node": "^20.12.7",
2930
"@typescript-eslint/eslint-plugin": "^8.47.0",
3031
"@typescript-eslint/parser": "^8.47.0",
32+
"copyfiles": "^2.4.1",
3133
"eslint": "^9.39.1",
3234
"eslint-config-prettier": "^10.1.8",
3335
"eslint-plugin-simple-import-sort": "^12.1.0",
3436
"eslint-plugin-unused-imports": "^4.0.0",
3537
"glob": "^11.0.0",
36-
"copyfiles": "^2.4.1",
37-
"rimraf": "^6.0.1",
3838
"jest": "^30.2.0",
3939
"jest-diff": "30.2.0",
4040
"lerna": "^8.2.4",
4141
"makage": "^0.1.8",
4242
"prettier": "^3.0.2",
43+
"rimraf": "^6.0.1",
4344
"semver": "^7.7.2",
4445
"strip-ansi": "^6",
4546
"ts-jest": "^29.4.6",

packages/deparser/__tests__/entry-point.test.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1+
import * as t from '@pgsql/types';
12
import { parse } from 'libpg-query';
3+
24
import { Deparser } from '../src/deparser';
3-
import * as t from '@pgsql/types';
45

56
describe('Entry Point Refactoring', () => {
67
const sql = `
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { expectParseDeparse } from '../../test-utils';
22

33
it('should format foreign key constraint with pretty option enabled', async () => {
4-
const sql = `SELECT '123'::INTEGER;`;
5-
const result = await expectParseDeparse(sql, { pretty: true });
6-
expect(result).toMatchSnapshot();
4+
const sql = `SELECT '123'::INTEGER;`;
5+
const result = await expectParseDeparse(sql, { pretty: true });
6+
expect(result).toMatchSnapshot();
77
});

packages/deparser/__tests__/misc/pg-catalog.test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { expectParseDeparse } from '../../test-utils';
22

33
it('should format pg_catalog.char with pretty option enabled', async () => {
4-
const sql = `
4+
const sql = `
55
CREATE TABLE dashboard_jobs.jobs (
66
id bigserial PRIMARY KEY,
77
queue_name text DEFAULT CAST(public.gen_random_uuid() AS text),
@@ -23,6 +23,6 @@ CREATE TABLE dashboard_jobs.jobs (
2323
UNIQUE (key)
2424
);
2525
`;
26-
const result = await expectParseDeparse(sql, { pretty: true });
27-
expect(result).toMatchSnapshot();
26+
const result = await expectParseDeparse(sql, { pretty: true });
27+
expect(result).toMatchSnapshot();
2828
});
Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
import { PrettyTest } from '../../test-utils/PrettyTest';
22
const prettyTest = new PrettyTest([
3-
"original/alter/alter-table-column-1.sql",
4-
"original/alter/alter-table-column-2.sql",
5-
"original/alter/alter-table-column-3.sql",
6-
"original/alter/alter-table-column-4.sql",
7-
"original/alter/alter-table-column-5.sql",
8-
"original/alter/alter-table-column-6.sql",
9-
"original/alter/alter-table-column-7.sql",
10-
"original/alter/alter-table-column-8.sql",
11-
"original/alter/alter-table-column-9.sql"
3+
'original/alter/alter-table-column-1.sql',
4+
'original/alter/alter-table-column-2.sql',
5+
'original/alter/alter-table-column-3.sql',
6+
'original/alter/alter-table-column-4.sql',
7+
'original/alter/alter-table-column-5.sql',
8+
'original/alter/alter-table-column-6.sql',
9+
'original/alter/alter-table-column-7.sql',
10+
'original/alter/alter-table-column-8.sql',
11+
'original/alter/alter-table-column-9.sql'
1212
]);
1313

1414
prettyTest.generateTests();
Lines changed: 31 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,36 @@
11
import { PrettyTest } from '../../test-utils/PrettyTest';
22
const prettyTest = new PrettyTest([
3-
"misc/pg_catalog-timestamp-etc-1.sql",
4-
"misc/pg_catalog-timestamp-etc-2.sql",
5-
"misc/pg_catalog-timestamp-etc-3.sql",
6-
"misc/pg_catalog-timestamp-etc-4.sql",
7-
"misc/pg_catalog-timestamp-etc-5.sql",
8-
"misc/pg_catalog-timestamp-etc-6.sql",
9-
"misc/pg_catalog-timestamp-etc-7.sql",
10-
"misc/pg_catalog-timestamp-etc-8.sql",
11-
"misc/pg_catalog-timestamp-etc-9.sql",
12-
"misc/pg_catalog-timestamp-etc-10.sql",
13-
"misc/pg_catalog-timestamp-etc-11.sql",
14-
"misc/pg_catalog-timestamp-etc-12.sql",
15-
"misc/pg_catalog-timestamp-etc-13.sql",
16-
///
17-
"misc/pg_catalog-1.sql",
18-
"misc/pg_catalog-2.sql",
19-
"misc/pg_catalog-3.sql",
20-
"misc/pg_catalog-4.sql",
21-
"misc/pg_catalog-5.sql",
22-
"misc/pg_catalog-6.sql",
23-
"misc/pg_catalog-7.sql",
24-
"misc/pg_catalog-8.sql",
25-
"misc/pg_catalog-9.sql",
26-
"misc/pg_catalog-10.sql",
27-
"misc/pg_catalog-11.sql",
28-
"misc/pg_catalog-12.sql",
29-
"misc/pg_catalog-13.sql",
30-
"misc/pg_catalog-14.sql",
31-
"misc/pg_catalog-15.sql",
32-
"misc/pg_catalog-16.sql",
33-
"misc/pg_catalog-17.sql"
3+
'misc/pg_catalog-timestamp-etc-1.sql',
4+
'misc/pg_catalog-timestamp-etc-2.sql',
5+
'misc/pg_catalog-timestamp-etc-3.sql',
6+
'misc/pg_catalog-timestamp-etc-4.sql',
7+
'misc/pg_catalog-timestamp-etc-5.sql',
8+
'misc/pg_catalog-timestamp-etc-6.sql',
9+
'misc/pg_catalog-timestamp-etc-7.sql',
10+
'misc/pg_catalog-timestamp-etc-8.sql',
11+
'misc/pg_catalog-timestamp-etc-9.sql',
12+
'misc/pg_catalog-timestamp-etc-10.sql',
13+
'misc/pg_catalog-timestamp-etc-11.sql',
14+
'misc/pg_catalog-timestamp-etc-12.sql',
15+
'misc/pg_catalog-timestamp-etc-13.sql',
16+
///
17+
'misc/pg_catalog-1.sql',
18+
'misc/pg_catalog-2.sql',
19+
'misc/pg_catalog-3.sql',
20+
'misc/pg_catalog-4.sql',
21+
'misc/pg_catalog-5.sql',
22+
'misc/pg_catalog-6.sql',
23+
'misc/pg_catalog-7.sql',
24+
'misc/pg_catalog-8.sql',
25+
'misc/pg_catalog-9.sql',
26+
'misc/pg_catalog-10.sql',
27+
'misc/pg_catalog-11.sql',
28+
'misc/pg_catalog-12.sql',
29+
'misc/pg_catalog-13.sql',
30+
'misc/pg_catalog-14.sql',
31+
'misc/pg_catalog-15.sql',
32+
'misc/pg_catalog-16.sql',
33+
'misc/pg_catalog-17.sql'
3434
]);
3535

3636
prettyTest.generateTests();

packages/deparser/jest.config.js

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
/** @type {import('ts-jest').JestConfigWithTsJest} */
22
module.exports = {
3-
preset: "ts-jest",
4-
testEnvironment: "node",
5-
transform: {
6-
"^.+\\.tsx?$": [
7-
"ts-jest",
8-
{
9-
babelConfig: false,
10-
tsconfig: "tsconfig.json",
11-
},
12-
],
13-
},
14-
transformIgnorePatterns: [`/node_modules/*`],
15-
testRegex: "(/__tests__/.*|(\\.|/)(test|spec))\\.(jsx?|tsx?)$",
16-
moduleFileExtensions: ["ts", "tsx", "js", "jsx", "json", "node"],
17-
modulePathIgnorePatterns: ["dist/*"]
3+
preset: 'ts-jest',
4+
testEnvironment: 'node',
5+
transform: {
6+
'^.+\\.tsx?$': [
7+
'ts-jest',
8+
{
9+
babelConfig: false,
10+
tsconfig: 'tsconfig.json',
11+
},
12+
],
13+
},
14+
transformIgnorePatterns: [`/node_modules/*`],
15+
testRegex: '(/__tests__/.*|(\\.|/)(test|spec))\\.(jsx?|tsx?)$',
16+
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node'],
17+
modulePathIgnorePatterns: ['dist/*']
1818
};

packages/deparser/scripts/clean-utils.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/* eslint-disable no-restricted-syntax */
1+
22

33
export const cleanLines = (sql: string) => {
44
return sql
@@ -35,11 +35,11 @@ export const transform = (obj: any, props: any): any => {
3535
if (obj instanceof Object || typeof obj === 'object') {
3636
copy = {};
3737
for (const attr in obj) {
38-
if (obj.hasOwnProperty(attr)) {
39-
if (props.hasOwnProperty(attr)) {
38+
if (Object.prototype.hasOwnProperty.call(obj, attr)) {
39+
if (Object.prototype.hasOwnProperty.call(props, attr)) {
4040
if (typeof props[attr] === 'function') {
4141
copy[attr] = props[attr](obj[attr]);
42-
} else if (props[attr].hasOwnProperty(obj[attr])) {
42+
} else if (Object.prototype.hasOwnProperty.call(props[attr], obj[attr])) {
4343
copy[attr] = props[attr][obj[attr]];
4444
} else {
4545
copy[attr] = transform(obj[attr], props);

0 commit comments

Comments
 (0)