Skip to content

Commit 39552c8

Browse files
authored
Migrate from commonjs to esm (#3)
1 parent a0183bd commit 39552c8

Some content is hidden

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

41 files changed

+1585
-1100
lines changed

.swcrc

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"$schema": "https://swc.rs/schema.json",
3+
"module": {
4+
"type": "es6",
5+
"resolveFully": true
6+
}
7+
}

bin/entities.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import { config as dotfig } from 'dotenv';
66
import { readdirSync, writeFileSync } from 'node:fs';
77
import { join } from 'node:path';
88

9-
import { configuration } from '../src/config';
9+
import { configuration } from '../src/config/index.js';
1010

1111
dotfig();
1212
if (!process.env['DB_HOST']) {
@@ -46,21 +46,21 @@ function pascalToHyphen(fileName: string): string {
4646
// bidirectionalRelations: true,
4747
// identifiedReferences: true,
4848
save: true,
49-
path: `${__dirname}/../src/entities/${dbName}`,
49+
path: `${import.meta.dirname}/../src/entities/${dbName}`,
5050
fileName: (className: string) => {
5151
return pascalToHyphen(className);
5252
},
5353
});
5454
await orm.close(true);
5555

56-
const entityDir = join(__dirname, '../src/entities', dbName);
56+
const entityDir = join(import.meta.dirname, '../src/entities', dbName);
5757
const files = [];
5858

5959
for (const file of readdirSync(entityDir)) {
6060
if (file === 'index.ts') {
6161
continue;
6262
}
63-
files.push(`export * from './${file.replace('.ts', '')}';`);
63+
files.push(`export * from './${file.replace('.ts', '.js')}';`);
6464
}
6565
files.push('');
6666
// export entities db tables

bin/synchronize.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { select } from '@inquirer/prompts';
33
import { MikroORM } from '@mikro-orm/core';
44
import { config as dotfig } from 'dotenv';
55

6-
import { configuration } from '../src/config';
6+
import { configuration } from '../src/config/index.js';
77

88
dotfig();
99
if (!process.env['DB_HOST']) {
@@ -24,8 +24,8 @@ if (!process.env['DB_HOST']) {
2424
});
2525

2626
const orm = await MikroORM.init({
27-
entities: [`${__dirname}/../src/entities/${dbName}`],
28-
entitiesTs: [`${__dirname}/../src/entities/${dbName}`],
27+
entities: [`${import.meta.dirname}/../src/entities/${dbName}`],
28+
entitiesTs: [`${import.meta.dirname}/../src/entities/${dbName}`],
2929
driver: config.driver,
3030
host: config.host,
3131
user: config.user,

eslint.config.js

-55
This file was deleted.

eslint.config.mjs

+53
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
import eslint from '@eslint/js';
2+
import prettierRecommended from 'eslint-plugin-prettier/recommended';
3+
import sonarjs from 'eslint-plugin-sonarjs';
4+
import tseslint from 'typescript-eslint';
5+
import vitest from '@vitest/eslint-plugin';
6+
7+
// https://eslint.org/docs/latest/use/configure/configuration-files#typescript-configuration-files
8+
export default tseslint.config(
9+
eslint.configs.recommended,
10+
tseslint.configs.recommendedTypeChecked,
11+
tseslint.configs.strictTypeChecked,
12+
tseslint.configs.stylisticTypeChecked,
13+
prettierRecommended,
14+
sonarjs.configs.recommended,
15+
vitest.configs.recommended,
16+
{
17+
ignores: ['**/node_modules/**', 'dist/**'],
18+
},
19+
{
20+
languageOptions: {
21+
parserOptions: {
22+
// projectService: true,
23+
projectService: {
24+
allowDefaultProject: ['*.cjs', '*.mjs'],
25+
},
26+
tsconfigRootDir: import.meta.dirname,
27+
},
28+
},
29+
plugins: {
30+
'@typescript-eslint': tseslint.plugin,
31+
vitest,
32+
},
33+
// These rules are for reference only.
34+
rules: {
35+
//#region eslint
36+
'class-methods-use-this': 'off',
37+
'no-console': 'error',
38+
'no-continue': 'off',
39+
'no-restricted-syntax': ['error', 'ForInStatement', 'LabeledStatement', 'WithStatement'],
40+
'no-void': ['error', { allowAsStatement: true }],
41+
'spaced-comment': ['error', 'always', { line: { markers: ['/', '#region', '#endregion'] } }],
42+
//#endregion
43+
44+
//#region @typescript-eslint
45+
'@typescript-eslint/consistent-type-assertions': ['error', { assertionStyle: 'angle-bracket' }],
46+
'@typescript-eslint/no-extraneous-class': 'off',
47+
'@typescript-eslint/no-misused-spread': 'off',
48+
'@typescript-eslint/no-unsafe-member-access': 'off',
49+
'@typescript-eslint/restrict-template-expressions': ['error', { allowNumber: true }],
50+
//#endregion
51+
},
52+
},
53+
);

0 commit comments

Comments
 (0)