aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShinigami <[email protected]>2024-02-18 22:43:16 +0100
committerGitHub <[email protected]>2024-02-18 22:43:16 +0100
commitec5609b18c79ea9fc8183ae78e917801e6a8a3f4 (patch)
tree35999710134991d586ee53d64808e76e351dfa08
parentdb88a1518e8d0ccfe191bd48a1ae8641a9a25303 (diff)
downloadfaker-ec5609b18c79ea9fc8183ae78e917801e6a8a3f4.tar.xz
faker-ec5609b18c79ea9fc8183ae78e917801e6a8a3f4.zip
chore: convert to esm (#2261)
-rw-r--r--.eslintrc.cjs (renamed from .eslintrc.js)2
-rw-r--r--.github/workflows/ci.yml3
-rw-r--r--.github/workflows/commentCodeGeneration.ts6
-rw-r--r--.github/workflows/pr.yml4
-rw-r--r--.prettierrc.js5
-rw-r--r--package.json15
-rw-r--r--test/faker.spec.ts5
-rw-r--r--test/locale-imports.spec.ts2
8 files changed, 24 insertions, 18 deletions
diff --git a/.eslintrc.js b/.eslintrc.cjs
index f4bb960d..bf6789c6 100644
--- a/.eslintrc.js
+++ b/.eslintrc.cjs
@@ -11,7 +11,7 @@ const { readGitignoreFiles } = require('eslint-gitignore');
module.exports = defineConfig({
ignorePatterns: [
...readGitignoreFiles(),
- '.eslintrc.js', // Skip self linting
+ '.eslintrc.cjs', // Skip self linting
],
root: true,
env: {
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 6524af14..401eceb9 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -173,6 +173,9 @@ jobs:
env:
CYPRESS_INSTALL_BINARY: 0
+ - name: Build types
+ run: pnpm run build:types
+
- name: Check scripts
run: pnpm run ts-check
diff --git a/.github/workflows/commentCodeGeneration.ts b/.github/workflows/commentCodeGeneration.ts
index f456e563..ed5258d5 100644
--- a/.github/workflows/commentCodeGeneration.ts
+++ b/.github/workflows/commentCodeGeneration.ts
@@ -10,11 +10,11 @@ import type { context as ctx, GitHub } from '@actions/github/lib/utils';
* @param context An object containing the context of the workflow run
* @param isSuccess A boolean indicating whether the workflow was successful
*/
-module.exports = async (
+export async function script(
github: InstanceType<typeof GitHub>,
context: typeof ctx,
isSuccess: boolean
-) => {
+): Promise<void> {
const { data: comments } = await github.rest.issues.listComments({
owner: context.repo.owner,
repo: context.repo.repo,
@@ -45,4 +45,4 @@ module.exports = async (
body,
});
}
-};
+}
diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml
index e250f9e4..6b913830 100644
--- a/.github/workflows/pr.yml
+++ b/.github/workflows/pr.yml
@@ -50,13 +50,13 @@ jobs:
continue-on-error: true
- name: Transpile ts
- run: pnpm exec tsc .github/workflows/commentCodeGeneration.ts --outDir .github/workflows
+ run: pnpm tsup-node .github/workflows/commentCodeGeneration.ts --format cjs --clean false --out-dir .github/workflows
- name: Comment
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
with:
script: |
- const script = require('${{ github.workspace }}/.github/workflows/commentCodeGeneration.js')
+ const { script } = require('${{ github.workspace }}/.github/workflows/commentCodeGeneration.cjs')
await script(github, context, ${{ steps.generate.outcome == 'success' && steps.diff.outcome == 'success' }})
- name: Status
diff --git a/.prettierrc.js b/.prettierrc.js
index a81147f9..063dc85a 100644
--- a/.prettierrc.js
+++ b/.prettierrc.js
@@ -1,9 +1,9 @@
// @ts-check
/**
- * @type {import('prettier').Options}
+ * @type {import('prettier').Config}
*/
-module.exports = {
+export default {
plugins: ['prettier-plugin-organize-imports'],
singleQuote: true,
trailingComma: 'es5',
@@ -20,6 +20,7 @@ module.exports = {
{
files: '*.md',
options: {
+ // @ts-expect-error: known property
organizeImportsSkipDestructiveCodeActions: true,
},
},
diff --git a/package.json b/package.json
index 6a8f60ac..3fa55398 100644
--- a/package.json
+++ b/package.json
@@ -28,8 +28,9 @@
],
"bugs": "https://github.com/faker-js/faker/issues",
"license": "MIT",
- "main": "dist/index.js",
- "module": "dist/index.mjs",
+ "type": "module",
+ "main": "dist/index.cjs",
+ "module": "dist/index.js",
"types": "index.d.ts",
"typesVersions": {
">=4.0": {
@@ -41,13 +42,15 @@
"exports": {
".": {
"types": "./dist/types/index.d.ts",
- "require": "./dist/index.js",
- "import": "./dist/index.mjs"
+ "import": "./dist/index.js",
+ "require": "./dist/index.cjs",
+ "default": "./dist/index.js"
},
"./locale/*": {
"types": "./dist/types/locale/*.d.ts",
- "require": "./dist/locale/*.js",
- "import": "./dist/locale/*.mjs"
+ "import": "./dist/locale/*.js",
+ "require": "./dist/locale/*.cjs",
+ "default": "./dist/locale/*.js"
},
"./package.json": "./package.json"
},
diff --git a/test/faker.spec.ts b/test/faker.spec.ts
index a026577b..63ae794e 100644
--- a/test/faker.spec.ts
+++ b/test/faker.spec.ts
@@ -13,15 +13,14 @@ describe('faker', () => {
);
});
- it('should not log anything on startup', () => {
+ it('should not log anything on startup', async () => {
const spies: MockInstance[] = keys(console)
.filter((key) => typeof console[key] === 'function')
.map((methodName) =>
vi.spyOn(console, methodName as keyof typeof console)
);
- // eslint-disable-next-line @typescript-eslint/no-var-requires, unicorn/prefer-module -- Using import() requires types being build but the CI / TS-Check runs without them.
- require('..').faker;
+ (await import('..')).default;
new Faker({ locale: { metadata: { title: '' } } });
diff --git a/test/locale-imports.spec.ts b/test/locale-imports.spec.ts
index 5f07056b..4c1197c8 100644
--- a/test/locale-imports.spec.ts
+++ b/test/locale-imports.spec.ts
@@ -6,7 +6,7 @@ import { keys } from '../src/internal/keys';
describe.each(keys(allLocales))('locale imports', (locale) => {
it(`should be possible to directly require('@faker-js/faker/locale/${locale}')`, () => {
// eslint-disable-next-line @typescript-eslint/no-var-requires, unicorn/prefer-module
- const { faker } = require(`../dist/locale/${locale}`) as {
+ const { faker } = require(`../dist/locale/${locale}.cjs`) as {
faker: Faker;
};