#2846 Type error when importing docx in CJS file with TypeScript modu… (#2883)

* #2846 Type error when importing docx in CJS file with TypeScript moduleResolution set to node16

* Adhere to publint
This commit is contained in:
Dolan
2024-12-06 13:44:42 +00:00
committed by GitHub
parent df99f96469
commit e80a50d36c
4 changed files with 32 additions and 32 deletions

3
.gitignore vendored
View File

@ -33,8 +33,7 @@ node_modules
.node_repl_history .node_repl_history
# build # build
build dist
build-tests
# Documentation # Documentation
docs/api/ docs/api/

View File

@ -10,7 +10,7 @@ import tsEslint from "typescript-eslint";
const config: Linter.Config<Linter.RulesRecord>[] = [ const config: Linter.Config<Linter.RulesRecord>[] = [
{ {
ignores: ["**/vite.config.ts", "**/build/**", "**/coverage/**", "**/*.js", "eslint.config.ts", "**/demo/**", "**/scripts/**"], ignores: ["**/vite.config.ts", "**/dist/**", "**/coverage/**", "**/*.js", "eslint.config.ts", "**/demo/**", "**/scripts/**"],
}, },
eslint.configs.recommended, eslint.configs.recommended,
importPlugin.flatConfigs.recommended, importPlugin.flatConfigs.recommended,

View File

@ -3,19 +3,23 @@
"version": "9.1.0", "version": "9.1.0",
"description": "Easily generate .docx files with JS/TS with a nice declarative API. Works for Node and on the Browser.", "description": "Easily generate .docx files with JS/TS with a nice declarative API. Works for Node and on the Browser.",
"type": "module", "type": "module",
"main": "build/index.umd.js", "main": "dist/index.umd.cjs",
"module": "./build/index.mjs", "module": "./dist/index.mjs",
"types": "./build/index.d.ts", "types": "./dist/index.d.ts",
"exports": { "exports": {
".": { ".": {
"require": "./build/index.cjs", "import": {
"types": "./build/index.d.ts", "types": "./dist/index.d.ts",
"import": "./build/index.mjs", "default": "./dist/index.mjs"
"default": "./build/index.mjs" },
"require": {
"types": "./dist/index.d.cts",
"default": "./dist/index.cjs"
}
} }
}, },
"files": [ "files": [
"build" "dist"
], ],
"scripts": { "scripts": {
"build": "tsc && vite build", "build": "tsc && vite build",

View File

@ -3,12 +3,18 @@ import dts from "vite-plugin-dts";
import { nodePolyfills } from "vite-plugin-node-polyfills"; import { nodePolyfills } from "vite-plugin-node-polyfills";
import tsconfigPaths from "vite-tsconfig-paths"; import tsconfigPaths from "vite-tsconfig-paths";
import { configDefaults, defineConfig } from "vitest/config"; import { configDefaults, defineConfig } from "vitest/config";
import { copyFileSync } from "node:fs";
export default defineConfig({ export default defineConfig({
plugins: [ plugins: [
tsconfigPaths(), tsconfigPaths(),
dts({ dts({
rollupTypes: true rollupTypes: true,
afterBuild: () => {
// https://github.com/dolanmiu/docx/pull/2883
// To pass publint - `npx publint@latest`
copyFileSync("dist/index.d.ts", "dist/index.d.cts");
},
}), }),
nodePolyfills({ nodePolyfills({
exclude: [], exclude: [],
@ -34,7 +40,7 @@ export default defineConfig({
name: "docx", name: "docx",
fileName: (d) => { fileName: (d) => {
if (d === "umd") { if (d === "umd") {
return "index.umd.js"; return "index.umd.cjs";
} }
if (d === "cjs") { if (d === "cjs") {
@ -53,7 +59,7 @@ export default defineConfig({
}, },
formats: ["iife", "es", "cjs", "umd"], formats: ["iife", "es", "cjs", "umd"],
}, },
outDir: resolve(__dirname, "build"), outDir: resolve(__dirname, "dist"),
commonjsOptions: { commonjsOptions: {
include: [/node_modules/], include: [/node_modules/],
}, },
@ -71,25 +77,16 @@ export default defineConfig({
}, },
exclude: [ exclude: [
...configDefaults.exclude, ...configDefaults.exclude,
'**/build/**', "**/dist/**",
'**/demo/**', "**/demo/**",
'**/docs/**', "**/docs/**",
'**/scripts/**', "**/scripts/**",
'**/src/**/index.ts', "**/src/**/index.ts",
'**/src/**/types.ts', "**/src/**/types.ts",
'**/*.spec.ts', "**/*.spec.ts",
], ],
}, },
include: [ include: ["**/src/**/*.spec.ts", "**/packages/**/*.spec.ts"],
'**/src/**/*.spec.ts', exclude: [...configDefaults.exclude, "**/build/**", "**/demo/**", "**/docs/**", "**/scripts/**"],
'**/packages/**/*.spec.ts'
],
exclude: [
...configDefaults.exclude,
'**/build/**',
'**/demo/**',
'**/docs/**',
'**/scripts/**'
],
}, },
}); });