fix types
parent
d5d6f9e5f0
commit
fb0eebe8c4
@ -1,5 +1,6 @@
|
||||
{
|
||||
"editor.codeActionsOnSave": {
|
||||
"source.organizeImports": true
|
||||
}
|
||||
},
|
||||
"typescript.tsdk": "node_modules/typescript/lib"
|
||||
}
|
||||
|
@ -1,90 +0,0 @@
|
||||
import fs from "fs";
|
||||
import path from "path";
|
||||
import { $, cd } from "zx";
|
||||
|
||||
let tailwindConfig = `module.exports = {
|
||||
content: ["./src/**/*.{html,js,jsx,ts,tsx}"],
|
||||
theme: {
|
||||
extend: {}
|
||||
},
|
||||
plugins: []
|
||||
};
|
||||
`;
|
||||
|
||||
let postcssConfig = `module.exports = {
|
||||
plugins: {
|
||||
tailwindcss: {},
|
||||
autoprefixer: {},
|
||||
},
|
||||
}
|
||||
`;
|
||||
|
||||
let tailwindCSS = `@tailwind base;
|
||||
@tailwind components;
|
||||
@tailwind utilities;`;
|
||||
|
||||
export default async function main(vite) {
|
||||
cd(vite.root);
|
||||
if (fs.existsSync(path.join(vite.root, ".git"))) {
|
||||
await $`git add -A`;
|
||||
}
|
||||
|
||||
let pkgJSON = JSON.parse(fs.readFileSync(path.join(vite.root, "package.json")).toString());
|
||||
|
||||
pkgJSON.devDependencies = {
|
||||
...pkgJSON.devDependencies,
|
||||
"solid-mdx": "*",
|
||||
"@mdx-js/rollup": "*"
|
||||
};
|
||||
|
||||
fs.writeFileSync(path.join(vite.root, "package.json"), JSON.stringify(pkgJSON, null, 2));
|
||||
// fs.writeFileSync(path.join(vite.root, "vite.config"), tailwindConfig);
|
||||
|
||||
let config, vitep;
|
||||
for (var vitePath of ["vite.config.js", "vite.config.ts"]) {
|
||||
console.log(path.resolve(vite.root, vitePath));
|
||||
if (fs.existsSync(path.resolve(vite.root, vitePath))) {
|
||||
console.log("here", vitePath);
|
||||
vitep = vitePath;
|
||||
config = fs.readFileSync(path.resolve(vite.root, vitePath)).toString();
|
||||
}
|
||||
}
|
||||
|
||||
if (!config) {
|
||||
console.error("Could not find vite.config");
|
||||
return;
|
||||
}
|
||||
|
||||
// replace solid() with solid({ extensions: [".mdx", ".md"] })
|
||||
config = config
|
||||
.replace(`solid({`, `solid({ extensions: [".mdx", ".md"], `)
|
||||
.replace(`solid()`, `solid({ extensions: [".mdx", ".md"] })`)
|
||||
.replace(
|
||||
`plugins: [`,
|
||||
`plugins: [
|
||||
{
|
||||
...(await import("@mdx-js/rollup")).default({
|
||||
jsx: true,
|
||||
jsxImportSource: "solid-js",
|
||||
providerImportSource: "solid-mdx"
|
||||
}),
|
||||
enforce: "pre"
|
||||
},`
|
||||
);
|
||||
|
||||
console.log(config);
|
||||
|
||||
fs.writeFileSync(path.resolve(vite.root, vitep), config);
|
||||
await $`npx prettier -w ${vitep}`;
|
||||
|
||||
// let newConfig = config.replace(
|
||||
// fs.writeFileSync(path.join(vite.root, "postcss.config.cjs"), postcssConfig);
|
||||
// fs.writeFileSync(path.join(vite.root, "src", "tailwind.css"), tailwindCSS);
|
||||
// let root = path.join(vite.root, "src", "root.tsx");
|
||||
// fs.writeFileSync(
|
||||
// root,
|
||||
// fs.readFileSync(root).toString().replace("import", 'import "./tailwind.css";\nimport')
|
||||
// );
|
||||
|
||||
await $`npx @antfu/ni`;
|
||||
}
|
@ -1,68 +0,0 @@
|
||||
import fs from "fs";
|
||||
import path from "path";
|
||||
import { $, cd } from "zx";
|
||||
|
||||
export default async function main(vite) {
|
||||
cd(vite.root);
|
||||
if (fs.existsSync(path.join(vite.root, ".git"))) {
|
||||
await $`git add -A`;
|
||||
}
|
||||
|
||||
let pkgJSON = JSON.parse(fs.readFileSync(path.join(vite.root, "package.json")).toString());
|
||||
|
||||
pkgJSON.devDependencies = {
|
||||
...pkgJSON.devDependencies,
|
||||
playwright: "1.19.2",
|
||||
"@playwright/test": "^1.18.1",
|
||||
"npm-run-all": "latest",
|
||||
"start-server-and-test": "latest",
|
||||
"cross-env": "latest"
|
||||
};
|
||||
|
||||
pkgJSON.scripts = {
|
||||
...pkgJSON.scripts,
|
||||
"start-server-and-test": "start-server-and-test build-and-start http://localhost:3000 test:e2e",
|
||||
"build-and-start": "npm run build && npm run start",
|
||||
"test:e2e": "npm-run-all -p test:e2e:*",
|
||||
"test:e2e:js": "playwright test e2e/*.mjs",
|
||||
"test:e2e:no-js": "cross-env DISABLE_JAVASCRIPT=true playwright test e2e/*.mjs"
|
||||
};
|
||||
|
||||
fs.writeFileSync(path.join(vite.root, "package.json"), JSON.stringify(pkgJSON, null, 2));
|
||||
|
||||
fs.mkdirSync(path.join(vite.root, "e2e"), { recursive: true });
|
||||
let specPath = path.join(vite.root, "e2e", "index.spec.mjs");
|
||||
fs.writeFileSync(
|
||||
specPath,
|
||||
`
|
||||
import { test, expect } from "@playwright/test";
|
||||
|
||||
test("basic login test", async ({ browser }) => {
|
||||
let appURL = new URL(process.env.TEST_HOST ?? "http://localhost:3000/").href;
|
||||
const context = await browser.newContext({
|
||||
javaScriptEnabled: !process.env.DISABLE_JAVASCRIPT
|
||||
});
|
||||
|
||||
const page = await context.newPage();
|
||||
|
||||
// go to home
|
||||
await page.goto(appURL);
|
||||
expect(page.url()).toBe(appURL);
|
||||
});
|
||||
`
|
||||
);
|
||||
// fs.writeFileSync(path.resolve(vite.root, vitep), config);
|
||||
await $`npx prettier -w ${specPath}`;
|
||||
|
||||
// let newConfig = config.replace(
|
||||
// fs.writeFileSync(path.join(vite.root, "postcss.config.cjs"), postcssConfig);
|
||||
// fs.writeFileSync(path.join(vite.root, "src", "tailwind.css"), tailwindCSS);
|
||||
// let root = path.join(vite.root, "src", "root.tsx");
|
||||
// fs.writeFileSync(
|
||||
// root,
|
||||
// fs.readFileSync(root).toString().replace("import", 'import "./tailwind.css";\nimport')
|
||||
// );
|
||||
|
||||
await $`npx @antfu/ni`;
|
||||
await $`npx playwright install`;
|
||||
}
|
@ -1,52 +0,0 @@
|
||||
import fs from "fs";
|
||||
import path from "path";
|
||||
import { $, cd } from "zx";
|
||||
|
||||
let tailwindConfig = `module.exports = {
|
||||
content: ["./src/**/*.{html,js,jsx,ts,tsx}"],
|
||||
theme: {
|
||||
extend: {}
|
||||
},
|
||||
plugins: []
|
||||
};
|
||||
`;
|
||||
|
||||
let postcssConfig = `module.exports = {
|
||||
plugins: {
|
||||
tailwindcss: {},
|
||||
autoprefixer: {},
|
||||
},
|
||||
}
|
||||
`;
|
||||
|
||||
let tailwindCSS = `@tailwind base;
|
||||
@tailwind components;
|
||||
@tailwind utilities;`;
|
||||
|
||||
export default async function main(vite) {
|
||||
cd(vite.root);
|
||||
if (fs.existsSync(path.join(vite.root, ".git"))) {
|
||||
await $`git add -A`;
|
||||
}
|
||||
|
||||
let pkgJSON = JSON.parse(fs.readFileSync(path.join(vite.root, "package.json")).toString());
|
||||
|
||||
pkgJSON.devDependencies = {
|
||||
...pkgJSON.devDependencies,
|
||||
tailwindcss: "*",
|
||||
autoprefixer: "*",
|
||||
postcss: "*"
|
||||
};
|
||||
|
||||
fs.writeFileSync(path.join(vite.root, "package.json"), JSON.stringify(pkgJSON, null, 2));
|
||||
fs.writeFileSync(path.join(vite.root, "tailwind.config.cjs"), tailwindConfig);
|
||||
fs.writeFileSync(path.join(vite.root, "postcss.config.cjs"), postcssConfig);
|
||||
fs.writeFileSync(path.join(vite.root, "src", "tailwind.css"), tailwindCSS);
|
||||
let root = path.join(vite.root, "src", "root.tsx");
|
||||
fs.writeFileSync(
|
||||
root,
|
||||
fs.readFileSync(root).toString().replace("import", 'import "./tailwind.css";\nimport')
|
||||
);
|
||||
|
||||
await $`npx @antfu/ni`;
|
||||
}
|
@ -1,112 +0,0 @@
|
||||
import fs from "fs";
|
||||
import path from "path";
|
||||
import { $, cd } from "zx";
|
||||
|
||||
let fixJestDom = `import fs from 'fs';
|
||||
import path from 'path';
|
||||
|
||||
const typesPath = path.resolve('node_modules', '@types', 'testing-library__jest-dom', 'index.d.ts');
|
||||
const refMatcher = /[\\r\\n]+\\/\\/\\/ <reference types="jest" \\/>/;
|
||||
|
||||
fs.readFile(typesPath, 'utf8', (err, data) => {
|
||||
if (err) throw err;
|
||||
|
||||
fs.writeFile(
|
||||
typesPath,
|
||||
data.replace(refMatcher, ''),
|
||||
'utf8',
|
||||
function(err) {
|
||||
if (err) throw err;
|
||||
}
|
||||
);
|
||||
});
|
||||
`;
|
||||
|
||||
export default async function main(vite) {
|
||||
cd(vite.root);
|
||||
if (fs.existsSync(path.join(vite.root, ".git"))) {
|
||||
await $`git add -A`;
|
||||
}
|
||||
|
||||
let pkgJSON = JSON.parse(fs.readFileSync(path.join(vite.root, "package.json")).toString());
|
||||
|
||||
pkgJSON.devDependencies = {
|
||||
...pkgJSON.devDependencies,
|
||||
"@testing-library/jest-dom": "^5.16.2",
|
||||
"@types/testing-library__jest-dom": "^5.14.3",
|
||||
"solid-testing-library": "^0.3.0",
|
||||
jsdom: "^19.0.0",
|
||||
vitest: "^0.6.1"
|
||||
};
|
||||
|
||||
pkgJSON.scripts = {
|
||||
...pkgJSON.scripts,
|
||||
postinstall: "node ./fix-jest-dom.mjs",
|
||||
"test:unit": "vitest"
|
||||
};
|
||||
|
||||
fs.writeFileSync(path.join(vite.root, "package.json"), JSON.stringify(pkgJSON, null, 2));
|
||||
fs.writeFileSync(
|
||||
path.join(vite.root, "setupVitest.ts"),
|
||||
`import '@testing-library/jest-dom';
|
||||
`
|
||||
);
|
||||
fs.writeFileSync(path.join(vite.root, "fix-jest-dom.mjs"), fixJestDom);
|
||||
|
||||
let config, vitep;
|
||||
for (var vitePath of ["vite.config.js", "vite.config.ts"]) {
|
||||
console.log(path.resolve(vite.root, vitePath));
|
||||
if (fs.existsSync(path.resolve(vite.root, vitePath))) {
|
||||
console.log("here", vitePath);
|
||||
vitep = vitePath;
|
||||
config = fs.readFileSync(path.resolve(vite.root, vitePath)).toString();
|
||||
}
|
||||
}
|
||||
|
||||
if (!config) {
|
||||
console.error("Could not find vite.config");
|
||||
return;
|
||||
}
|
||||
|
||||
config = config.replace(
|
||||
`plugins: [`,
|
||||
`test: {
|
||||
exclude: ["node_modules", "e2e"],
|
||||
globals: true,
|
||||
setupFiles: process.env.TEST_ENV === 'server' ? undefined : './setupVitest.ts',
|
||||
environment: "jsdom",
|
||||
transformMode:
|
||||
process.env.TEST_ENV === "server"
|
||||
? {
|
||||
ssr: [/.[tj]sx?$/]
|
||||
}
|
||||
: {
|
||||
web: [/.[tj]sx?$/]
|
||||
},
|
||||
// solid needs to be inline to work around
|
||||
// a resolution issue in vitest:
|
||||
deps: {
|
||||
inline: [/solid-js/]
|
||||
}
|
||||
// if you have few tests, try commenting one
|
||||
// or both out to improve performance:
|
||||
// threads: false,
|
||||
// isolate: false,
|
||||
},
|
||||
build: {
|
||||
target: "esnext",
|
||||
polyfillDynamicImport: false
|
||||
},
|
||||
resolve: {
|
||||
conditions: process.env.TEST_ENV === "server" ? [] : ["development", "browser"]
|
||||
},
|
||||
plugins: [`
|
||||
);
|
||||
|
||||
console.log(config);
|
||||
|
||||
fs.writeFileSync(path.resolve(vite.root, vitep), config);
|
||||
await $`npx prettier -w ${vitep}`;
|
||||
|
||||
await $`npx @antfu/ni`;
|
||||
}
|
Loading…
Reference in New Issue