Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
63 changes: 0 additions & 63 deletions .eslintrc.json

This file was deleted.

41 changes: 41 additions & 0 deletions eslint.config.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
import base from '@constructive-io/eslint-config';

export default [
...base,
{
ignores: [
// fixtures and their expected codegen output
'__fixtures__/**',
'**/__snapshots__/**',
// protobuf codegen (build:proto)
'packages/utils/src/asts.ts',
'packages/utils/src/runtime-schema.ts',
'packages/utils/src/wrapped.ts',
'packages/traverse/src/18/**',
'packages/transform-ast/src/{13,14,15,16,17,18}/**',
'packages/proto-parser/test-utils/**',
// inferred/generated types and keyword list
'packages/pgsql-types/src/types.ts',
'packages/quotes/src/kwlist.ts',
// generated kitchen-sink test files
'**/__tests__/kitchen-sink/**'
]
},
{
// template literals holding code that is emitted verbatim; changing the
// escaping here would change the generated output
files: ['packages/proto-parser/src/inline-helpers/**'],
rules: {
'no-useless-escape': 'off'
}
},
{
// per-version transformers mirror the AST shape field for field, including
// identity assignments and empty node payloads such as `{ Null: {} }`
files: ['packages/transform-ast/src/transformers/**'],
rules: {
'no-self-assign': 'off',
'@typescript-eslint/no-empty-object-type': 'off'
}
}
];
5 changes: 3 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,22 +24,23 @@
"update-workspace": "makage update-workspace"
},
"devDependencies": {
"@constructive-io/eslint-config": "^0.2.0",
"@types/jest": "^30.0.0",
"@types/node": "^20.12.7",
"@typescript-eslint/eslint-plugin": "^8.47.0",
"@typescript-eslint/parser": "^8.47.0",
"copyfiles": "^2.4.1",
"eslint": "^9.39.1",
"eslint-config-prettier": "^10.1.8",
"eslint-plugin-simple-import-sort": "^12.1.0",
"eslint-plugin-unused-imports": "^4.0.0",
"glob": "^11.0.0",
"copyfiles": "^2.4.1",
"rimraf": "^6.0.1",
"jest": "^30.2.0",
"jest-diff": "30.2.0",
"lerna": "^8.2.4",
"makage": "^0.1.8",
"prettier": "^3.0.2",
"rimraf": "^6.0.1",
"semver": "^7.7.2",
"strip-ansi": "^6",
"ts-jest": "^29.4.6",
Expand Down
3 changes: 2 additions & 1 deletion packages/deparser/__tests__/entry-point.test.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import * as t from '@pgsql/types';
import { parse } from 'libpg-query';

import { Deparser } from '../src/deparser';
import * as t from '@pgsql/types';

describe('Entry Point Refactoring', () => {
const sql = `
Expand Down
6 changes: 3 additions & 3 deletions packages/deparser/__tests__/misc/castings.test.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { expectParseDeparse } from '../../test-utils';

it('should format foreign key constraint with pretty option enabled', async () => {
const sql = `SELECT '123'::INTEGER;`;
const result = await expectParseDeparse(sql, { pretty: true });
expect(result).toMatchSnapshot();
const sql = `SELECT '123'::INTEGER;`;
const result = await expectParseDeparse(sql, { pretty: true });
expect(result).toMatchSnapshot();
});
6 changes: 3 additions & 3 deletions packages/deparser/__tests__/misc/pg-catalog.test.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { expectParseDeparse } from '../../test-utils';

it('should format pg_catalog.char with pretty option enabled', async () => {
const sql = `
const sql = `
CREATE TABLE dashboard_jobs.jobs (
id bigserial PRIMARY KEY,
queue_name text DEFAULT CAST(public.gen_random_uuid() AS text),
Expand All @@ -23,6 +23,6 @@ CREATE TABLE dashboard_jobs.jobs (
UNIQUE (key)
);
`;
const result = await expectParseDeparse(sql, { pretty: true });
expect(result).toMatchSnapshot();
const result = await expectParseDeparse(sql, { pretty: true });
expect(result).toMatchSnapshot();
});
18 changes: 9 additions & 9 deletions packages/deparser/__tests__/pretty/alter-table-column.test.ts
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
import { PrettyTest } from '../../test-utils/PrettyTest';
const prettyTest = new PrettyTest([
"original/alter/alter-table-column-1.sql",
"original/alter/alter-table-column-2.sql",
"original/alter/alter-table-column-3.sql",
"original/alter/alter-table-column-4.sql",
"original/alter/alter-table-column-5.sql",
"original/alter/alter-table-column-6.sql",
"original/alter/alter-table-column-7.sql",
"original/alter/alter-table-column-8.sql",
"original/alter/alter-table-column-9.sql"
'original/alter/alter-table-column-1.sql',
'original/alter/alter-table-column-2.sql',
'original/alter/alter-table-column-3.sql',
'original/alter/alter-table-column-4.sql',
'original/alter/alter-table-column-5.sql',
'original/alter/alter-table-column-6.sql',
'original/alter/alter-table-column-7.sql',
'original/alter/alter-table-column-8.sql',
'original/alter/alter-table-column-9.sql'
]);

prettyTest.generateTests();
62 changes: 31 additions & 31 deletions packages/deparser/__tests__/pretty/pg-catalog.test.ts
Original file line number Diff line number Diff line change
@@ -1,36 +1,36 @@
import { PrettyTest } from '../../test-utils/PrettyTest';
const prettyTest = new PrettyTest([
"misc/pg_catalog-timestamp-etc-1.sql",
"misc/pg_catalog-timestamp-etc-2.sql",
"misc/pg_catalog-timestamp-etc-3.sql",
"misc/pg_catalog-timestamp-etc-4.sql",
"misc/pg_catalog-timestamp-etc-5.sql",
"misc/pg_catalog-timestamp-etc-6.sql",
"misc/pg_catalog-timestamp-etc-7.sql",
"misc/pg_catalog-timestamp-etc-8.sql",
"misc/pg_catalog-timestamp-etc-9.sql",
"misc/pg_catalog-timestamp-etc-10.sql",
"misc/pg_catalog-timestamp-etc-11.sql",
"misc/pg_catalog-timestamp-etc-12.sql",
"misc/pg_catalog-timestamp-etc-13.sql",
///
"misc/pg_catalog-1.sql",
"misc/pg_catalog-2.sql",
"misc/pg_catalog-3.sql",
"misc/pg_catalog-4.sql",
"misc/pg_catalog-5.sql",
"misc/pg_catalog-6.sql",
"misc/pg_catalog-7.sql",
"misc/pg_catalog-8.sql",
"misc/pg_catalog-9.sql",
"misc/pg_catalog-10.sql",
"misc/pg_catalog-11.sql",
"misc/pg_catalog-12.sql",
"misc/pg_catalog-13.sql",
"misc/pg_catalog-14.sql",
"misc/pg_catalog-15.sql",
"misc/pg_catalog-16.sql",
"misc/pg_catalog-17.sql"
'misc/pg_catalog-timestamp-etc-1.sql',
'misc/pg_catalog-timestamp-etc-2.sql',
'misc/pg_catalog-timestamp-etc-3.sql',
'misc/pg_catalog-timestamp-etc-4.sql',
'misc/pg_catalog-timestamp-etc-5.sql',
'misc/pg_catalog-timestamp-etc-6.sql',
'misc/pg_catalog-timestamp-etc-7.sql',
'misc/pg_catalog-timestamp-etc-8.sql',
'misc/pg_catalog-timestamp-etc-9.sql',
'misc/pg_catalog-timestamp-etc-10.sql',
'misc/pg_catalog-timestamp-etc-11.sql',
'misc/pg_catalog-timestamp-etc-12.sql',
'misc/pg_catalog-timestamp-etc-13.sql',
///
'misc/pg_catalog-1.sql',
'misc/pg_catalog-2.sql',
'misc/pg_catalog-3.sql',
'misc/pg_catalog-4.sql',
'misc/pg_catalog-5.sql',
'misc/pg_catalog-6.sql',
'misc/pg_catalog-7.sql',
'misc/pg_catalog-8.sql',
'misc/pg_catalog-9.sql',
'misc/pg_catalog-10.sql',
'misc/pg_catalog-11.sql',
'misc/pg_catalog-12.sql',
'misc/pg_catalog-13.sql',
'misc/pg_catalog-14.sql',
'misc/pg_catalog-15.sql',
'misc/pg_catalog-16.sql',
'misc/pg_catalog-17.sql'
]);

prettyTest.generateTests();
30 changes: 15 additions & 15 deletions packages/deparser/jest.config.js
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
/** @type {import('ts-jest').JestConfigWithTsJest} */
module.exports = {
preset: "ts-jest",
testEnvironment: "node",
transform: {
"^.+\\.tsx?$": [
"ts-jest",
{
babelConfig: false,
tsconfig: "tsconfig.json",
},
],
},
transformIgnorePatterns: [`/node_modules/*`],
testRegex: "(/__tests__/.*|(\\.|/)(test|spec))\\.(jsx?|tsx?)$",
moduleFileExtensions: ["ts", "tsx", "js", "jsx", "json", "node"],
modulePathIgnorePatterns: ["dist/*"]
preset: 'ts-jest',
testEnvironment: 'node',
transform: {
'^.+\\.tsx?$': [
'ts-jest',
{
babelConfig: false,
tsconfig: 'tsconfig.json',
},
],
},
transformIgnorePatterns: [`/node_modules/*`],
testRegex: '(/__tests__/.*|(\\.|/)(test|spec))\\.(jsx?|tsx?)$',
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node'],
modulePathIgnorePatterns: ['dist/*']
};
8 changes: 4 additions & 4 deletions packages/deparser/scripts/clean-utils.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
/* eslint-disable no-restricted-syntax */

export const cleanLines = (sql: string) => {
return sql
Expand Down Expand Up @@ -35,11 +35,11 @@ export const transform = (obj: any, props: any): any => {
if (obj instanceof Object || typeof obj === 'object') {
copy = {};
for (const attr in obj) {
if (obj.hasOwnProperty(attr)) {
if (props.hasOwnProperty(attr)) {
if (Object.prototype.hasOwnProperty.call(obj, attr)) {
if (Object.prototype.hasOwnProperty.call(props, attr)) {
if (typeof props[attr] === 'function') {
copy[attr] = props[attr](obj[attr]);
} else if (props[attr].hasOwnProperty(obj[attr])) {
} else if (Object.prototype.hasOwnProperty.call(props[attr], obj[attr])) {
copy[attr] = props[attr][obj[attr]];
} else {
copy[attr] = transform(obj[attr], props);
Expand Down
42 changes: 21 additions & 21 deletions packages/deparser/scripts/generate-version-packages.ts
Original file line number Diff line number Diff line change
Expand Up @@ -59,33 +59,33 @@ function generatePackageJson(packageName: string, pgVersion: string, versionInfo

function generateTsConfig(): any {
return {
"compilerOptions": {
"outDir": "dist",
"rootDir": "src/",
"target": "es2022",
"module": "commonjs",
"esModuleInterop": true,
"forceConsistentCasingInFileNames": true,
"strict": true,
"strictNullChecks": false,
"skipLibCheck": true,
"sourceMap": false,
"declaration": true,
"resolveJsonModule": true,
"moduleResolution": "node"
compilerOptions: {
outDir: 'dist',
rootDir: 'src/',
target: 'es2022',
module: 'commonjs',
esModuleInterop: true,
forceConsistentCasingInFileNames: true,
strict: true,
strictNullChecks: false,
skipLibCheck: true,
sourceMap: false,
declaration: true,
resolveJsonModule: true,
moduleResolution: 'node'
},
"include": ["src/**/*.ts"],
"exclude": ["dist", "node_modules", "**/*.spec.*", "**/*.test.*"]
include: ['src/**/*.ts'],
exclude: ['dist', 'node_modules', '**/*.spec.*', '**/*.test.*']
};
}

function generateTsConfigEsm(): any {
return {
"extends": "./tsconfig.json",
"compilerOptions": {
"module": "esnext",
"outDir": "./dist/esm",
"declaration": false
extends: './tsconfig.json',
compilerOptions: {
module: 'esnext',
outDir: './dist/esm',
declaration: false
}
};
}
Expand Down
5 changes: 3 additions & 2 deletions packages/deparser/scripts/make-fixtures-ast.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
#!/usr/bin/env ts-node
import * as path from 'path';
import { ParseResult } from '@pgsql/types';
import * as fs from 'fs';
import { sync as globSync } from 'glob';
import { parse } from 'libpg-query';
import { ParseResult, RawStmt } from '@pgsql/types';
import * as path from 'path';

import { cleanTree } from './clean-utils';

const FIXTURE_DIR = path.join(__dirname, '../../../__fixtures__/legacy');
Expand Down
6 changes: 3 additions & 3 deletions packages/deparser/scripts/make-fixtures-sql.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
#!/usr/bin/env ts-node
import * as path from 'path';
import { ParseResult } from '@pgsql/types';
import * as fs from 'fs';
import { sync as globSync } from 'glob';
import { parse, deparse } from 'libpg-query';
import { ParseResult, RawStmt } from '@pgsql/types';
import { deparse,parse } from 'libpg-query';
import * as path from 'path';

const FIXTURE_DIR = path.join(__dirname, '../../../__fixtures__/legacy');
const OUT_DIR = path.join(__dirname, '../../../__fixtures__/generated');
Expand Down
Loading
Loading