Change plugin export style to named export (#12741)

This commit is contained in:
fisker Cheung authored and GitHub committed 2022-04-29 12:54:33 +08:00
1 parent 851eab5349
commit fccf19503c
17 files changed
+280 -339

No files matched your search

-3
View File
@@ -20,9 +20,6 @@ module.exports = {
"unicorn",
"@typescript-eslint",
],
settings: {
"import/internal-regex": "^linguist-languages/",
},
rules: {
"@typescript-eslint/prefer-ts-expect-error": "error",
"arrow-body-style": ["error", "as-needed"],
+10 -6
View File
@@ -18,12 +18,16 @@ export default function esbuildPluginEvaluate() {
data = data.default;
}
const json = JSON.stringify(data, (_, v) => {
if (typeof v === "function") {
throw new TypeError("Cannot evaluate functions.");
}
return v;
});
const json = JSON.stringify(
data,
(_, v) => {
if (typeof v === "function") {
throw new TypeError("Cannot evaluate functions.");
}
return v;
},
2
);
return { loader: "json", contents: json };
});
+4 -45
View File
@@ -1,49 +1,8 @@
import { createRequire } from "node:module";
import createLanguage from "../utils/create-language.js";
import printer from "./printer-postcss.js";
import options from "./options.js";
import parsers from "./parsers.js";
const require = createRequire(import.meta.url);
const languages = [
createLanguage(require("linguist-languages/data/CSS.json"), (data) => ({
since: "1.4.0",
parsers: ["css"],
vscodeLanguageIds: ["css"],
extensions: [
...data.extensions,
// `WeiXin Style Sheets`(Weixin Mini Programs)
// https://developers.weixin.qq.com/miniprogram/en/dev/framework/view/wxs/
".wxss",
],
})),
createLanguage(require("linguist-languages/data/PostCSS.json"), () => ({
since: "1.4.0",
parsers: ["css"],
vscodeLanguageIds: ["postcss"],
})),
createLanguage(require("linguist-languages/data/Less.json"), () => ({
since: "1.4.0",
parsers: ["less"],
vscodeLanguageIds: ["less"],
})),
createLanguage(require("linguist-languages/data/SCSS.json"), () => ({
since: "1.4.0",
parsers: ["scss"],
vscodeLanguageIds: ["scss"],
})),
];
const printers = {
export const printers = {
postcss: printer,
};
const language = {
languages,
options,
printers,
parsers,
};
export default language;
export { default as languages } from "./languages.evaluate.js";
export { default as options } from "./options.js";
export { default as parsers } from "./parsers.js";
+33
View File
@@ -0,0 +1,33 @@
import linguistLanguages from "linguist-languages";
import createLanguage from "../utils/create-language.js";
const languages = [
createLanguage(linguistLanguages.CSS, (data) => ({
since: "1.4.0",
parsers: ["css"],
vscodeLanguageIds: ["css"],
extensions: [
...data.extensions,
// `WeiXin Style Sheets`(Weixin Mini Programs)
// https://developers.weixin.qq.com/miniprogram/en/dev/framework/view/wxs/
".wxss",
],
})),
createLanguage(linguistLanguages.PostCSS, () => ({
since: "1.4.0",
parsers: ["css"],
vscodeLanguageIds: ["postcss"],
})),
createLanguage(linguistLanguages.Less, () => ({
since: "1.4.0",
parsers: ["less"],
vscodeLanguageIds: ["less"],
})),
createLanguage(linguistLanguages.SCSS, () => ({
since: "1.4.0",
parsers: ["scss"],
vscodeLanguageIds: ["scss"],
})),
];
export default languages;
+4 -24
View File
@@ -1,28 +1,8 @@
import { createRequire } from "node:module";
import createLanguage from "../utils/create-language.js";
import printer from "./printer-graphql.js";
import options from "./options.js";
import parsers from "./parsers.js";
const require = createRequire(import.meta.url);
const languages = [
createLanguage(require("linguist-languages/data/GraphQL.json"), () => ({
since: "1.5.0",
parsers: ["graphql"],
vscodeLanguageIds: ["graphql"],
})),
];
const printers = {
export const printers = {
graphql: printer,
};
const language = {
languages,
options,
printers,
parsers,
};
export default language;
export { default as languages } from "./languages.evaluate.js";
export { default as options } from "./options.js";
export { default as parsers } from "./parsers.js";
@@ -0,0 +1,12 @@
import linguistLanguages from "linguist-languages";
import createLanguage from "../utils/create-language.js";
const languages = [
createLanguage(linguistLanguages.GraphQL, () => ({
since: "1.5.0",
parsers: ["graphql"],
vscodeLanguageIds: ["graphql"],
})),
];
export default languages;
+3 -22
View File
@@ -1,26 +1,7 @@
import { createRequire } from "node:module";
import createLanguage from "../utils/create-language.js";
import printer from "./printer-glimmer.js";
import parsers from "./parsers.js";
const require = createRequire(import.meta.url);
const languages = [
createLanguage(require("linguist-languages/data/Handlebars.json"), () => ({
since: "2.3.0",
parsers: ["glimmer"],
vscodeLanguageIds: ["handlebars"],
})),
];
const printers = {
export const printers = {
glimmer: printer,
};
const language = {
languages,
printers,
parsers,
};
export default language;
export { default as languages } from "./languages.evaluate.js";
export { default as parsers } from "./parsers.js";
@@ -0,0 +1,12 @@
import linguistLanguages from "linguist-languages";
import createLanguage from "../utils/create-language.js";
const languages = [
createLanguage(linguistLanguages.Handlebars, () => ({
since: "2.3.0",
parsers: ["glimmer"],
vscodeLanguageIds: ["handlebars"],
})),
];
export default languages;
+4 -49
View File
@@ -1,53 +1,8 @@
import { createRequire } from "node:module";
import createLanguage from "../utils/create-language.js";
import printer from "./printer-html.js";
import options from "./options.js";
import parsers from "./parsers.js";
const require = createRequire(import.meta.url);
const languages = [
createLanguage(require("linguist-languages/data/HTML.json"), () => ({
name: "Angular",
since: "1.15.0",
parsers: ["angular"],
vscodeLanguageIds: ["html"],
extensions: [".component.html"],
filenames: [],
})),
createLanguage(require("linguist-languages/data/HTML.json"), (data) => ({
since: "1.15.0",
parsers: ["html"],
vscodeLanguageIds: ["html"],
extensions: [
...data.extensions,
".mjml", // MJML is considered XML in Linguist but it should be formatted as HTML
],
})),
createLanguage(require("linguist-languages/data/HTML.json"), () => ({
name: "Lightning Web Components",
since: "1.17.0",
parsers: ["lwc"],
vscodeLanguageIds: ["html"],
extensions: [],
filenames: [],
})),
createLanguage(require("linguist-languages/data/Vue.json"), () => ({
since: "1.10.0",
parsers: ["vue"],
vscodeLanguageIds: ["vue"],
})),
];
const printers = {
export const printers = {
html: printer,
};
const language = {
languages,
printers,
options,
parsers,
};
export default language;
export { default as languages } from "./languages.evaluate.js";
export { default as options } from "./options.js";
export { default as parsers } from "./parsers.js";
+37
View File
@@ -0,0 +1,37 @@
import linguistLanguages from "linguist-languages";
import createLanguage from "../utils/create-language.js";
const languages = [
createLanguage(linguistLanguages.HTML, () => ({
name: "Angular",
since: "1.15.0",
parsers: ["angular"],
vscodeLanguageIds: ["html"],
extensions: [".component.html"],
filenames: [],
})),
createLanguage(linguistLanguages.HTML, (data) => ({
since: "1.15.0",
parsers: ["html"],
vscodeLanguageIds: ["html"],
extensions: [
...data.extensions,
".mjml", // MJML is considered XML in Linguist but it should be formatted as HTML
],
})),
createLanguage(linguistLanguages.HTML, () => ({
name: "Lightning Web Components",
since: "1.17.0",
parsers: ["lwc"],
vscodeLanguageIds: ["html"],
extensions: [],
filenames: [],
})),
createLanguage(linguistLanguages.Vue, () => ({
since: "1.10.0",
parsers: ["vue"],
vscodeLanguageIds: ["vue"],
})),
];
export default languages;
+4 -122
View File
@@ -1,128 +1,10 @@
import { createRequire } from "node:module";
import createLanguage from "../utils/create-language.js";
import estreePrinter from "./printer-estree.js";
import estreeJsonPrinter from "./printer-estree-json.js";
import options from "./options.js";
import parsers from "./parse/parsers.js";
const require = createRequire(import.meta.url);
const languages = [
createLanguage(
require("linguist-languages/data/JavaScript.json"),
(data) => ({
since: "0.0.0",
parsers: [
"babel",
"acorn",
"espree",
"meriyah",
"babel-flow",
"babel-ts",
"flow",
"typescript",
],
vscodeLanguageIds: ["javascript", "mongo"],
interpreters: [
...data.interpreters,
// https://github.com/google/zx
"zx",
],
extensions: [
...data.extensions.filter((extension) => extension !== ".jsx"),
// WeiXin Script (Weixin Mini Programs)
// https://developers.weixin.qq.com/miniprogram/en/dev/framework/view/wxs/
".wxs",
],
})
),
createLanguage(require("linguist-languages/data/JavaScript.json"), () => ({
name: "Flow",
since: "0.0.0",
parsers: ["flow", "babel-flow"],
vscodeLanguageIds: ["javascript"],
aliases: [],
filenames: [],
extensions: [".js.flow"],
})),
createLanguage(require("linguist-languages/data/JavaScript.json"), () => ({
name: "JSX",
since: "0.0.0",
parsers: [
"babel",
"babel-flow",
"babel-ts",
"flow",
"typescript",
"espree",
"meriyah",
],
vscodeLanguageIds: ["javascriptreact"],
aliases: undefined,
filenames: undefined,
extensions: [".jsx"],
group: "JavaScript",
interpreters: undefined,
tmScope: "source.js.jsx",
aceMode: "javascript",
codemirrorMode: "jsx",
codemirrorMimeType: "text/jsx",
color: undefined,
})),
createLanguage(
require("linguist-languages/data/TypeScript.json"),
(data) => ({
since: "1.4.0",
parsers: ["typescript", "babel-ts"],
vscodeLanguageIds: ["typescript"],
extensions: [...data.extensions, ".mts", ".cts"],
})
),
createLanguage(require("linguist-languages/data/TSX.json"), () => ({
since: "1.4.0",
parsers: ["typescript", "babel-ts"],
vscodeLanguageIds: ["typescriptreact"],
})),
createLanguage(require("linguist-languages/data/JSON.json"), () => ({
name: "JSON.stringify",
since: "1.13.0",
parsers: ["json-stringify"],
vscodeLanguageIds: ["json"],
extensions: [".importmap"], // .json file defaults to json instead of json-stringify
filenames: ["package.json", "package-lock.json", "composer.json"],
})),
createLanguage(require("linguist-languages/data/JSON.json"), (data) => ({
since: "1.5.0",
parsers: ["json"],
vscodeLanguageIds: ["json"],
extensions: data.extensions.filter((extension) => extension !== ".jsonl"),
})),
createLanguage(
require("linguist-languages/data/JSON with Comments.json"),
(data) => ({
since: "1.5.0",
parsers: ["json"],
vscodeLanguageIds: ["jsonc"],
filenames: [...data.filenames, ".eslintrc", ".swcrc"],
})
),
createLanguage(require("linguist-languages/data/JSON5.json"), () => ({
since: "1.13.0",
parsers: ["json5"],
vscodeLanguageIds: ["json5"],
})),
];
const printers = {
export const printers = {
estree: estreePrinter,
"estree-json": estreeJsonPrinter,
};
const language = {
languages,
options,
printers,
parsers,
};
export default language;
export { default as languages } from "./languages.evaluate.js";
export { default as options } from "./options.js";
export { default as parsers } from "./parse/parsers.js";
+101
View File
@@ -0,0 +1,101 @@
import linguistLanguages from "linguist-languages";
import createLanguage from "../utils/create-language.js";
const languages = [
createLanguage(linguistLanguages.JavaScript, (data) => ({
since: "0.0.0",
parsers: [
"babel",
"acorn",
"espree",
"meriyah",
"babel-flow",
"babel-ts",
"flow",
"typescript",
],
vscodeLanguageIds: ["javascript", "mongo"],
interpreters: [
...data.interpreters,
// https://github.com/google/zx
"zx",
],
extensions: [
...data.extensions.filter((extension) => extension !== ".jsx"),
// WeiXin Script (Weixin Mini Programs)
// https://developers.weixin.qq.com/miniprogram/en/dev/framework/view/wxs/
".wxs",
],
})),
createLanguage(linguistLanguages.JavaScript, () => ({
name: "Flow",
since: "0.0.0",
parsers: ["flow", "babel-flow"],
vscodeLanguageIds: ["javascript"],
aliases: [],
filenames: [],
extensions: [".js.flow"],
})),
createLanguage(linguistLanguages.JavaScript, () => ({
name: "JSX",
since: "0.0.0",
parsers: [
"babel",
"babel-flow",
"babel-ts",
"flow",
"typescript",
"espree",
"meriyah",
],
vscodeLanguageIds: ["javascriptreact"],
aliases: undefined,
filenames: undefined,
extensions: [".jsx"],
group: "JavaScript",
interpreters: undefined,
tmScope: "source.js.jsx",
aceMode: "javascript",
codemirrorMode: "jsx",
codemirrorMimeType: "text/jsx",
color: undefined,
})),
createLanguage(linguistLanguages.TypeScript, (data) => ({
since: "1.4.0",
parsers: ["typescript", "babel-ts"],
vscodeLanguageIds: ["typescript"],
extensions: [...data.extensions, ".mts", ".cts"],
})),
createLanguage(linguistLanguages.TSX, () => ({
since: "1.4.0",
parsers: ["typescript", "babel-ts"],
vscodeLanguageIds: ["typescriptreact"],
})),
createLanguage(linguistLanguages.JSON, () => ({
name: "JSON.stringify",
since: "1.13.0",
parsers: ["json-stringify"],
vscodeLanguageIds: ["json"],
extensions: [".importmap"], // .json file defaults to json instead of json-stringify
filenames: ["package.json", "package-lock.json", "composer.json"],
})),
createLanguage(linguistLanguages.JSON, (data) => ({
since: "1.5.0",
parsers: ["json"],
vscodeLanguageIds: ["json"],
extensions: data.extensions.filter((extension) => extension !== ".jsonl"),
})),
createLanguage(linguistLanguages["JSON with Comments"], (data) => ({
since: "1.5.0",
parsers: ["json"],
vscodeLanguageIds: ["jsonc"],
filenames: [...data.filenames, ".eslintrc", ".swcrc"],
})),
createLanguage(linguistLanguages.JSON5, () => ({
since: "1.13.0",
parsers: ["json5"],
vscodeLanguageIds: ["json5"],
})),
];
export default languages;
+4 -34
View File
@@ -1,38 +1,8 @@
import { createRequire } from "node:module";
import createLanguage from "../utils/create-language.js";
import printer from "./printer-markdown.js";
import options from "./options.js";
import parsers from "./parsers.js";
const require = createRequire(import.meta.url);
const languages = [
createLanguage(require("linguist-languages/data/Markdown.json"), (data) => ({
since: "1.8.0",
parsers: ["markdown"],
vscodeLanguageIds: ["markdown"],
filenames: [...data.filenames, "README"],
extensions: data.extensions.filter((extension) => extension !== ".mdx"),
})),
createLanguage(require("linguist-languages/data/Markdown.json"), () => ({
name: "MDX",
since: "1.15.0",
parsers: ["mdx"],
vscodeLanguageIds: ["mdx"],
filenames: [],
extensions: [".mdx"],
})),
];
const printers = {
export const printers = {
mdast: printer,
};
const language = {
languages,
options,
printers,
parsers,
};
export default language;
export { default as languages } from "./languages.evaluate.js";
export { default as options } from "./options.js";
export { default as parsers } from "./parsers.js";
@@ -0,0 +1,22 @@
import linguistLanguages from "linguist-languages";
import createLanguage from "../utils/create-language.js";
const languages = [
createLanguage(linguistLanguages.Markdown, (data) => ({
since: "1.8.0",
parsers: ["markdown"],
vscodeLanguageIds: ["markdown"],
filenames: [...data.filenames, "README"],
extensions: data.extensions.filter((extension) => extension !== ".mdx"),
})),
createLanguage(linguistLanguages.Markdown, () => ({
name: "MDX",
since: "1.15.0",
parsers: ["mdx"],
vscodeLanguageIds: ["mdx"],
filenames: [],
extensions: [".mdx"],
})),
];
export default languages;
+5 -27
View File
@@ -1,30 +1,8 @@
import { createRequire } from "node:module";
import createLanguage from "../utils/create-language.js";
import printer from "./printer-yaml.js";
import options from "./options.js";
import parsers from "./parsers.js";
const require = createRequire(import.meta.url);
const languages = [
createLanguage(require("linguist-languages/data/YAML.json"), (data) => ({
since: "1.14.0",
parsers: ["yaml"],
vscodeLanguageIds: ["yaml", "ansible", "home-assistant"],
// yarn.lock is not YAML: https://github.com/yarnpkg/yarn/issues/5629
filenames: [
...data.filenames.filter((filename) => filename !== "yarn.lock"),
".prettierrc",
".stylelintrc",
],
})),
];
const language = {
languages,
printers: { yaml: printer },
options,
parsers,
export const printers = {
yaml: printer,
};
export default language;
export { default as languages } from "./languages.evaluate.js";
export { default as options } from "./options.js";
export { default as parsers } from "./parsers.js";
+18
View File
@@ -0,0 +1,18 @@
import linguistLanguages from "linguist-languages";
import createLanguage from "../utils/create-language.js";
const languages = [
createLanguage(linguistLanguages.YAML, (data) => ({
since: "1.14.0",
parsers: ["yaml"],
vscodeLanguageIds: ["yaml", "ansible", "home-assistant"],
// yarn.lock is not YAML: https://github.com/yarnpkg/yarn/issues/5629
filenames: [
...data.filenames.filter((filename) => filename !== "yarn.lock"),
".prettierrc",
".stylelintrc",
],
})),
];
export default languages;
+7 -7
View File
@@ -1,10 +1,10 @@
import js from "./language-js/index.js";
import css from "./language-css/index.js";
import handlebars from "./language-handlebars/index.js";
import graphql from "./language-graphql/index.js";
import markdown from "./language-markdown/index.js";
import html from "./language-html/index.js";
import yaml from "./language-yaml/index.js";
import * as js from "./language-js/index.js";
import * as css from "./language-css/index.js";
import * as handlebars from "./language-handlebars/index.js";
import * as graphql from "./language-graphql/index.js";
import * as markdown from "./language-markdown/index.js";
import * as html from "./language-html/index.js";
import * as yaml from "./language-yaml/index.js";
// We need to list the parsers and getters so we can load them only when necessary.
const languages = [