diff --git a/jest.config.js b/jest.config.js index 100c90f37..cef136fd3 100644 --- a/jest.config.js +++ b/jest.config.js @@ -70,7 +70,6 @@ module.exports = { moduleNameMapper: { "prettier-local": "/tests/config/require-prettier.js", "prettier-standalone": "/tests/config/require-standalone.js", - "#(.*)": "/vendors/$1", }, modulePathIgnorePatterns: [ "/dist", diff --git a/package.json b/package.json index 2d8bf5420..0105075d4 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,8 @@ "index.js", "standalone.js", "src", - "bin" + "bin", + "vendors" ], "dependencies": { "@angular/compiler": "12.2.16", @@ -88,10 +89,6 @@ "wcwidth": "1.0.1", "yaml-unist-parser": "1.3.1" }, - "imports": { - "#string-width": "./vendors/string-width.js", - "#mem": "./vendors/mem.js" - }, "devDependencies": { "@babel/core": "7.17.0", "@babel/preset-env": "7.16.11", @@ -135,13 +132,11 @@ "path-browserify": "1.0.1", "prettier": "2.5.1", "pretty-bytes": "5.6.0", - "read-pkg": "7.0.0", "read-pkg-up": "9.0.0", "rimraf": "3.0.2", "rollup-plugin-license": "2.6.1", "snapshot-diff": "0.9.0", - "tempy": "1.0.1", - "write-pkg": "5.0.0" + "tempy": "1.0.1" }, "scripts": { "prepublishOnly": "echo \"Error: must publish from dist/\" && exit 1", diff --git a/scripts/vendors/bundle-vendors.mjs b/scripts/vendors/bundle-vendors.mjs index 1036803d2..80392e3b6 100644 --- a/scripts/vendors/bundle-vendors.mjs +++ b/scripts/vendors/bundle-vendors.mjs @@ -4,8 +4,6 @@ import fs from "node:fs/promises"; import path from "node:path"; import createEsmUtils from "esm-utils"; import esbuild from "esbuild"; -import { readPackage } from "read-pkg"; -import { writePackage } from "write-pkg"; import { readPackageUp } from "read-pkg-up"; import vendors from "./vendors.mjs"; import { writeVendorVersions } from "./vendor-versions.mjs"; @@ -63,37 +61,27 @@ async function bundle(vendor) { outfile, }; await esbuild.build(esbuildOption); -} -async function updatePackage(imports) { - const pkg = await readPackage({ normalize: false }); - pkg.imports = imports; - await writePackage(pkg, { normalize: false }); -} - -async function generateDts(vendors) { - let dtsContent = "// This file is generate automatically.\n"; - for (const vendor of vendors) { - dtsContent += `declare module "#${vendor}";\n`; - } - await fs.writeFile(path.join(vendorsDir, "types.d.ts"), dtsContent, "utf-8"); + await fs.writeFile( + path.join(vendorsDir, `${vendor}.d.ts`), + [ + "// This file is generated automatically.", + `export {default} from "${vendor}";`, + `export * from "${vendor}";`, + "", + ].join("\n"), + "utf-8" + ); } async function main() { await cleanExistsBundledJS(); - const imports = {}; for (const vendor of vendors) { await bundle(vendor); - imports[`#${vendor}`] = - "./" + path.relative(rootDir, getVendorFilePath(vendor)); console.log(`Bundled: ${vendor}`); } - await updatePackage(imports); - console.log("Updated: package.json"); await lockVersions(vendors); console.log("Locked: vendor-versions.json"); - await generateDts(vendors); - console.log("Generated: vendors/types.d.ts"); } main(); diff --git a/scripts/vendors/esbuild-plugin-ts-nocheck.mjs b/scripts/vendors/esbuild-plugin-ts-nocheck.mjs index 44c0452f2..17c0d0b22 100644 --- a/scripts/vendors/esbuild-plugin-ts-nocheck.mjs +++ b/scripts/vendors/esbuild-plugin-ts-nocheck.mjs @@ -1,6 +1,6 @@ import fs from "node:fs"; -const tsNoCheck = "// @ts-nocheck\n"; +const tsNoCheck = "// @ts-nocheck\n// This file is generated automatically\n"; export default function esbuildPluginTsNocheck() { return { diff --git a/src/common/load-plugins.js b/src/common/load-plugins.js index 5908515a9..9985a6f38 100644 --- a/src/common/load-plugins.js +++ b/src/common/load-plugins.js @@ -6,9 +6,9 @@ const uniqBy = require("lodash/uniqBy"); const partition = require("lodash/partition"); const fastGlob = require("fast-glob"); const internalPlugins = require("../languages.js"); +const { default: mem, memClear } = require("../../vendors/mem.js"); const thirdParty = require("./third-party.js"); const resolve = require("./resolve.js"); -const { default: mem, memClear } = require("#mem"); const memoizedLoad = mem(load, { cacheKey: JSON.stringify }); const memoizedSearch = mem(findPluginsInNodeModules); diff --git a/src/config/resolve-config-editorconfig.js b/src/config/resolve-config-editorconfig.js index 179f2407b..e7db00d1c 100644 --- a/src/config/resolve-config-editorconfig.js +++ b/src/config/resolve-config-editorconfig.js @@ -4,8 +4,8 @@ const path = require("path"); const editorconfig = require("editorconfig"); const editorConfigToPrettier = require("editorconfig-to-prettier"); +const { default: mem, memClear } = require("../../vendors/mem.js"); const findProjectRoot = require("./find-project-root.js"); -const { default: mem, memClear } = require("#mem"); const jsonStringifyMem = (fn) => mem(fn, { cacheKey: JSON.stringify }); diff --git a/src/config/resolve-config.js b/src/config/resolve-config.js index a163684b5..ad13eb263 100644 --- a/src/config/resolve-config.js +++ b/src/config/resolve-config.js @@ -7,8 +7,8 @@ const thirdParty = require("../common/third-party.js"); const loadToml = require("../utils/load-toml.js"); const loadJson5 = require("../utils/load-json5.js"); const resolve = require("../common/resolve.js"); +const { default: mem, memClear } = require("../../vendors/mem.js"); const resolveEditorConfig = require("./resolve-config-editorconfig.js"); -const { default: mem, memClear } = require("#mem"); /** * @typedef {import("cosmiconfig/dist/Explorer").Explorer} Explorer diff --git a/src/utils/get-string-width.js b/src/utils/get-string-width.js index 716205ac1..d96612d3d 100644 --- a/src/utils/get-string-width.js +++ b/src/utils/get-string-width.js @@ -1,6 +1,6 @@ "use strict"; -const stringWidth = require("#string-width").default; +const stringWidth = require("../../vendors/string-width.js").default; const notAsciiRegex = /[^\x20-\x7F]/; diff --git a/vendors/mem.d.ts b/vendors/mem.d.ts new file mode 100644 index 000000000..b45991ef8 --- /dev/null +++ b/vendors/mem.d.ts @@ -0,0 +1,3 @@ +// This file is generated automatically. +export {default} from "mem"; +export * from "mem"; diff --git a/vendors/mem.js b/vendors/mem.js index dae72c450..9d082affe 100644 --- a/vendors/mem.js +++ b/vendors/mem.js @@ -1,4 +1,5 @@ // @ts-nocheck +// This file is generated automatically var __create = Object.create; var __defProp = Object.defineProperty; var __defProps = Object.defineProperties; diff --git a/vendors/string-width.d.ts b/vendors/string-width.d.ts new file mode 100644 index 000000000..55e7c60a0 --- /dev/null +++ b/vendors/string-width.d.ts @@ -0,0 +1,3 @@ +// This file is generated automatically. +export {default} from "string-width"; +export * from "string-width"; diff --git a/vendors/string-width.js b/vendors/string-width.js index 54b9b0cbf..914635988 100644 --- a/vendors/string-width.js +++ b/vendors/string-width.js @@ -1,4 +1,5 @@ // @ts-nocheck +// This file is generated automatically var __create = Object.create; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; diff --git a/vendors/types.d.ts b/vendors/types.d.ts deleted file mode 100644 index 9cd97b672..000000000 --- a/vendors/types.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -// This file is generate automatically. -declare module "#string-width"; -declare module "#mem"; diff --git a/yarn.lock b/yarn.lock index 5cea37269..a4634fdb2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2653,11 +2653,6 @@ delayed-stream@~1.0.0: resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= -detect-indent@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-7.0.0.tgz#cab58e6ab1129c669e2101181a6c677917d43577" - integrity sha512-/6kJlmVv6RDFPqaHC/ZDcU8bblYcoph2dUQ3kB47QqhkUEqXe3VZPELK9BaEMrC73qu+wn0AQ7iSteceN+yuMw== - detect-newline@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" @@ -3898,11 +3893,6 @@ is-plain-obj@^2.0.0: resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== -is-plain-obj@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-4.0.0.tgz#06c0999fd7574edf5a906ba5644ad0feb3a84d22" - integrity sha512-NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw== - is-potential-custom-element-name@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" @@ -5605,16 +5595,6 @@ read-pkg-up@^7.0.1: read-pkg "^5.2.0" type-fest "^0.8.1" -read-pkg@7.0.0, read-pkg@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-7.0.0.tgz#7009094a9cd58c7efc325d31f1f6cfce1928fa00" - integrity sha512-oG2cKegOo2gjy/hrAM+KFHD9IqKdQvWcpWBBxuHbaucziM9PY45EuF6YbenLF7tL9ekXgB6Lfruo9hwdHQZUrA== - dependencies: - "@types/normalize-package-data" "^2.4.1" - normalize-package-data "^3.0.2" - parse-json "^5.2.0" - type-fest "^2.0.0" - read-pkg@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" @@ -5634,6 +5614,16 @@ read-pkg@^5.2.0: parse-json "^5.0.0" type-fest "^0.6.0" +read-pkg@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-7.0.0.tgz#7009094a9cd58c7efc325d31f1f6cfce1928fa00" + integrity sha512-oG2cKegOo2gjy/hrAM+KFHD9IqKdQvWcpWBBxuHbaucziM9PY45EuF6YbenLF7tL9ekXgB6Lfruo9hwdHQZUrA== + dependencies: + "@types/normalize-package-data" "^2.4.1" + normalize-package-data "^3.0.2" + parse-json "^5.2.0" + type-fest "^2.0.0" + refa@^0.9.0: version "0.9.1" resolved "https://registry.yarnpkg.com/refa/-/refa-0.9.1.tgz#12731fce378d235731b1f73182b20083c8a75ca8" @@ -6021,13 +6011,6 @@ snapshot-diff@0.9.0: jest-snapshot "^27.0.4" pretty-format "^27.0.2" -sort-keys@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-5.0.0.tgz#5d775f8ae93ecc29bc7312bbf3acac4e36e3c446" - integrity sha512-Pdz01AvCAottHTPQGzndktFNdbRA75BgOfeT1hH+AMnJFv8lynkPi42rfeEhpx1saTEI3YNMWxfqu0sFD1G8pw== - dependencies: - is-plain-obj "^4.0.0" - source-map-support@^0.5.6: version "0.5.21" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" @@ -6788,7 +6771,7 @@ wrappy@1: resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= -write-file-atomic@^3.0.0, write-file-atomic@^3.0.3: +write-file-atomic@^3.0.0: version "3.0.3" resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== @@ -6798,25 +6781,6 @@ write-file-atomic@^3.0.0, write-file-atomic@^3.0.3: signal-exit "^3.0.2" typedarray-to-buffer "^3.1.5" -write-json-file@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/write-json-file/-/write-json-file-5.0.0.tgz#11c329a8ea9e8e23fb92a87cc27412a15f87708b" - integrity sha512-ddSsCLa4aQ3kI21BthINo4q905/wfhvQ3JL3774AcRjBaiQmfn5v4rw77jQ7T6CmAit9VOQO+FsLyPkwxoB1fw== - dependencies: - detect-indent "^7.0.0" - is-plain-obj "^4.0.0" - sort-keys "^5.0.0" - write-file-atomic "^3.0.3" - -write-pkg@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/write-pkg/-/write-pkg-5.0.0.tgz#b9fab4e78ee0e71b980867f2baff8b8564a77d26" - integrity sha512-ihflUwZ8WvVcXD2uhk4JAAe5+x9FT+0n4Z5b/OMZXBG8/hXCvSQXTYDf9raox0aqJGWRBipIE4rWSi6aCaiebw== - dependencies: - sort-keys "^5.0.0" - type-fest "^2.0.0" - write-json-file "^5.0.0" - ws@^7.4.6: version "7.5.6" resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.6.tgz#e59fc509fb15ddfb65487ee9765c5a51dec5fe7b"