@batijs/cli 0.0.87 → 0.0.88

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/dist/boilerplates/@batijs/edgedb/files/$package.json.js +3 -3
  2. package/dist/boilerplates/@batijs/edgedb/{package-HMOHSPQH.js → package-Z3MWAXVW.js} +1 -1
  3. package/dist/boilerplates/@batijs/eslint/files/$package.json.js +17 -0
  4. package/dist/boilerplates/@batijs/eslint/files/.eslintignore +7 -0
  5. package/dist/boilerplates/@batijs/eslint/files/.eslintrc.json +10 -0
  6. package/dist/boilerplates/@batijs/eslint/package-6IZEDCMJ.js +61 -0
  7. package/dist/boilerplates/@batijs/express/files/$package.json.js +4 -4
  8. package/dist/boilerplates/@batijs/express/{package-LVAF3GMH.js → package-TAXLRPPG.js} +1 -1
  9. package/dist/boilerplates/@batijs/h3/files/$package.json.js +4 -4
  10. package/dist/boilerplates/@batijs/h3/{package-OCNH7HWJ.js → package-GAI6KFVK.js} +1 -1
  11. package/dist/boilerplates/@batijs/hattip/files/$package.json.js +4 -4
  12. package/dist/boilerplates/@batijs/hattip/files/$vite.config.ts.js +2 -2
  13. package/dist/boilerplates/@batijs/hattip/{package-FDRQH742.js → package-3BN33DJA.js} +1 -1
  14. package/dist/boilerplates/@batijs/prisma/files/$.env.js +2 -2
  15. package/dist/boilerplates/@batijs/prisma/files/$package.json.js +3 -3
  16. package/dist/boilerplates/@batijs/prisma/{package-JX35CIXF.js → package-5JR5MUIX.js} +1 -1
  17. package/dist/boilerplates/@batijs/react/files/$.eslintrc.json.js +16 -0
  18. package/dist/boilerplates/@batijs/react/files/$package.json.js +8 -3
  19. package/dist/boilerplates/@batijs/react/files/$tsconfig.json.js +2 -2
  20. package/dist/boilerplates/@batijs/react/files/$vite.config.ts.js +3 -3
  21. package/dist/boilerplates/@batijs/react/files/components/Link.tsx +8 -10
  22. package/dist/boilerplates/@batijs/react/files/layouts/LayoutDefault.tsx +1 -1
  23. package/dist/boilerplates/@batijs/react/files/pages/_error/+Page.tsx +1 -3
  24. package/dist/boilerplates/@batijs/react/files/pages/index/Counter.tsx +1 -3
  25. package/dist/boilerplates/@batijs/react/files/pages/star-wars/@id/+Page.tsx +1 -3
  26. package/dist/boilerplates/@batijs/react/files/pages/star-wars/@id/+onBeforeRender.ts +2 -4
  27. package/dist/boilerplates/@batijs/react/files/pages/star-wars/filterMovieData.ts +1 -5
  28. package/dist/boilerplates/@batijs/react/files/pages/star-wars/index/+Page.tsx +1 -3
  29. package/dist/boilerplates/@batijs/react/files/pages/star-wars/index/+onBeforeRender.ts +2 -5
  30. package/dist/boilerplates/@batijs/react/{package-5YB3UKUO.js → package-EYTH4VNP.js} +7 -3
  31. package/dist/boilerplates/@batijs/react-telefunc/files/database/todoItems.ts +2 -5
  32. package/dist/boilerplates/@batijs/react-telefunc/files/pages/todo/+config.h.ts +3 -1
  33. package/dist/boilerplates/@batijs/react-telefunc/files/pages/todo/+onBeforeRender.ts +1 -3
  34. package/dist/boilerplates/@batijs/react-telefunc/files/pages/todo/TodoList.telefunc.ts +2 -4
  35. package/dist/boilerplates/@batijs/shared/files/$index.html.js +2 -2
  36. package/dist/boilerplates/@batijs/solid/files/$.eslintrc.json.js +13 -0
  37. package/dist/boilerplates/@batijs/solid/files/$package.json.js +8 -3
  38. package/dist/boilerplates/@batijs/solid/files/$tsconfig.json.js +2 -2
  39. package/dist/boilerplates/@batijs/solid/files/$vite.config.ts.js +3 -3
  40. package/dist/boilerplates/@batijs/solid/files/layouts/HeadDefault.tsx +1 -1
  41. package/dist/boilerplates/@batijs/solid/files/pages/_error/+Page.tsx +17 -16
  42. package/dist/boilerplates/@batijs/solid/files/pages/star-wars/index/+Page.tsx +1 -1
  43. package/dist/boilerplates/@batijs/solid/files/pages/star-wars/index/+onBeforeRender.ts +3 -2
  44. package/dist/boilerplates/@batijs/solid/{package-BLWCB4NH.js → package-3SC4XVSR.js} +4 -3
  45. package/dist/boilerplates/@batijs/solid-telefunc/files/pages/todo/+Page.tsx +3 -4
  46. package/dist/boilerplates/@batijs/solid-telefunc/files/pages/todo/+onBeforeRender.ts +2 -2
  47. package/dist/boilerplates/@batijs/solid-telefunc/files/pages/todo/TodoList.tsx +3 -4
  48. package/dist/boilerplates/@batijs/tailwindcss/files/$package.json.js +3 -3
  49. package/dist/boilerplates/@batijs/tailwindcss/{package-34V34OFJ.js → package-GTN2QH7M.js} +1 -1
  50. package/dist/boilerplates/@batijs/telefunc/files/$package.json.js +3 -3
  51. package/dist/boilerplates/@batijs/telefunc/files/$vite.config.ts.js +2 -2
  52. package/dist/boilerplates/@batijs/telefunc/{package-LPS6TFJV.js → package-3G2SQFKV.js} +1 -1
  53. package/dist/boilerplates/@batijs/vercel/files/$package.json.js +3 -3
  54. package/dist/boilerplates/@batijs/vercel/files/$vite.config.ts.js +2 -2
  55. package/dist/boilerplates/@batijs/vercel/{package-EAL6NF5P.js → package-2NMHCJGC.js} +1 -1
  56. package/dist/boilerplates/@batijs/vue/files/$.eslintrc.json.js +16 -0
  57. package/dist/boilerplates/@batijs/vue/files/$package.json.js +15 -4
  58. package/dist/boilerplates/@batijs/vue/files/$tsconfig.json.js +2 -2
  59. package/dist/boilerplates/@batijs/vue/files/$vite.config.ts.js +2 -2
  60. package/dist/boilerplates/@batijs/vue/files/components/Counter.vue +2 -2
  61. package/dist/boilerplates/@batijs/vue/files/components/Link.vue +13 -11
  62. package/dist/boilerplates/@batijs/vue/files/components/Logo.vue +5 -1
  63. package/dist/boilerplates/@batijs/vue/files/layouts/HeadDefault.vue +9 -2
  64. package/dist/boilerplates/@batijs/vue/files/layouts/LayoutDefault.vue +9 -3
  65. package/dist/boilerplates/@batijs/vue/files/pages/star-wars/@id/+Page.vue +8 -3
  66. package/dist/boilerplates/@batijs/vue/files/pages/star-wars/index/+Page.vue +10 -2
  67. package/dist/boilerplates/@batijs/vue/files/pages/star-wars/index/+onBeforeRender.ts +3 -2
  68. package/dist/boilerplates/@batijs/vue/{package-HDC4A5UP.js → package-SEZV7AAY.js} +3 -2
  69. package/dist/boilerplates/@batijs/vue-telefunc/files/components/TodoList.vue +15 -4
  70. package/dist/boilerplates/@batijs/vue-telefunc/files/pages/todo/+Page.vue +3 -2
  71. package/dist/boilerplates/boilerplates.json +15 -1
  72. package/dist/index.js +84 -45
  73. package/package.json +4 -4
@@ -1,18 +1,19 @@
1
+ import { Show } from "solid-js";
2
+
1
3
  export default function Page(props: { is404: boolean; errorInfo?: string }) {
2
- if (props.is404) {
3
- return (
4
- <>
5
- <h1>404 Page Not Found</h1>
6
- <p>This page could not be found.</p>
7
- <p>{props.errorInfo}</p>
8
- </>
9
- );
10
- } else {
11
- return (
12
- <>
13
- <h1>500 Internal Server Error</h1>
14
- <p>Something went wrong.</p>
15
- </>
16
- );
17
- }
4
+ return (
5
+ <Show
6
+ when={props.is404}
7
+ fallback={
8
+ <>
9
+ <h1>500 Internal Server Error</h1>
10
+ <p>Something went wrong.</p>
11
+ </>
12
+ }
13
+ >
14
+ <h1>404 Page Not Found</h1>
15
+ <p>This page could not be found.</p>
16
+ <p>{props.errorInfo}</p>
17
+ </Show>
18
+ );
18
19
  }
@@ -7,7 +7,7 @@ export default function Page(props: { movies: Movie[] }) {
7
7
  <h1>Star Wars Movies</h1>
8
8
  <ol>
9
9
  <For each={props.movies}>
10
- {(movie, i) => (
10
+ {(movie) => (
11
11
  <li>
12
12
  <a href={`/star-wars/${movie.id}`}>{movie.title}</a> ({movie.release_date})
13
13
  </li>
@@ -1,9 +1,9 @@
1
- export default onBeforeRender;
2
-
3
1
  import fetch from "cross-fetch";
4
2
  //import { filterMovieData } from '../filterMovieData'
5
3
  import type { Movie, MovieDetails } from "../types";
6
4
 
5
+ export default onBeforeRender;
6
+
7
7
  // export { prerender }
8
8
 
9
9
  async function onBeforeRender() {
@@ -23,6 +23,7 @@ async function onBeforeRender() {
23
23
 
24
24
  async function getStarWarsMovies(): Promise<MovieDetails[]> {
25
25
  const response = await fetch("https://star-wars.brillout.com/api/films.json");
26
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
26
27
  let movies: MovieDetails[] = ((await response.json()) as any).results;
27
28
  movies = movies.map((movie: MovieDetails, i: number) => ({
28
29
  ...movie,
@@ -1,7 +1,7 @@
1
1
  // package.json
2
2
  var name = "@batijs/solid";
3
3
  var private2 = true;
4
- var version = "0.0.87";
4
+ var version = "0.0.88";
5
5
  var description = "";
6
6
  var type = "module";
7
7
  var scripts = {
@@ -14,14 +14,15 @@ var devDependencies = {
14
14
  "@batijs/tsup": "workspace:*",
15
15
  "@types/node": "^16.18.40",
16
16
  "cross-fetch": "^4.0.0",
17
+ "eslint-plugin-solid": "^0.13.0",
17
18
  "solid-js": "^1.7.12",
18
19
  tailwindcss: "^3.3.3",
19
20
  tsup: "^7.2.0",
20
21
  typescript: "^5.2.2",
22
+ vike: "^0.4.143",
21
23
  "vike-solid": "^0.2.1",
22
24
  vite: "^4.4.11",
23
- "vite-plugin-solid": "^2.7.0",
24
- vike: "^0.4.143"
25
+ "vite-plugin-solid": "^2.7.0"
25
26
  };
26
27
  var dependencies = {
27
28
  "@batijs/core": "workspace:*"
@@ -1,13 +1,12 @@
1
1
  import { createSignal } from "solid-js";
2
-
3
- import { TodoList } from "./TodoList";
4
2
  import type { TodoItem } from "../../database/todoItems";
3
+ import { TodoList } from "./TodoList";
5
4
 
6
- export default function Page({ todoItemsInitial }: { todoItemsInitial: TodoItem[] }) {
5
+ export default function Page(props: { initialTodoItems: TodoItem[] }) {
7
6
  return (
8
7
  <>
9
8
  <h1>To-do List</h1>
10
- <TodoList todoItemsInitial={todoItemsInitial} />
9
+ <TodoList initialTodoItems={props.initialTodoItems} />
11
10
  <Counter />
12
11
  </>
13
12
  );
@@ -4,11 +4,11 @@ export default onBeforeRender;
4
4
  import { todoItems } from "../../database/todoItems";
5
5
 
6
6
  function onBeforeRender() {
7
- const todoItemsInitial = todoItems;
7
+ const initialTodoItems = todoItems;
8
8
  return {
9
9
  pageContext: {
10
10
  pageProps: {
11
- todoItemsInitial,
11
+ initialTodoItems,
12
12
  },
13
13
  },
14
14
  };
@@ -1,10 +1,9 @@
1
1
  import { createSignal, For, untrack } from "solid-js";
2
-
3
- import { onNewTodo } from "./TodoList.telefunc.js";
4
2
  import type { TodoItem } from "../../database/todoItems.js";
3
+ import { onNewTodo } from "./TodoList.telefunc.js";
5
4
 
6
- export function TodoList({ todoItemsInitial }: { todoItemsInitial: TodoItem[] }) {
7
- const [todoItems, setTodoItems] = createSignal(todoItemsInitial);
5
+ export function TodoList(props: { initialTodoItems: TodoItem[] }) {
6
+ const [todoItems, setTodoItems] = createSignal(props.initialTodoItems);
8
7
  const [draft, setDraft] = createSignal("");
9
8
  return (
10
9
  <>
@@ -1,8 +1,8 @@
1
1
  // files/$package.json.ts
2
2
  import { addDependency, loadAsJson } from "@batijs/core";
3
- async function getPackageJson(currentContent, meta) {
4
- const packageJson = await loadAsJson(currentContent);
5
- return addDependency(packageJson, await import("../package-34V34OFJ.js"), {
3
+ async function getPackageJson(props) {
4
+ const packageJson = await loadAsJson(props);
5
+ return addDependency(packageJson, await import("../package-GTN2QH7M.js"), {
6
6
  devDependencies: ["tailwindcss", "postcss", "autoprefixer"]
7
7
  });
8
8
  }
@@ -1,7 +1,7 @@
1
1
  // package.json
2
2
  var name = "@batijs/tailwindcss";
3
3
  var private2 = true;
4
- var version = "0.0.87";
4
+ var version = "0.0.88";
5
5
  var description = "";
6
6
  var type = "module";
7
7
  var scripts = {
@@ -1,8 +1,8 @@
1
1
  // files/$package.json.ts
2
2
  import { addDependency, loadAsJson } from "@batijs/core";
3
- async function getPackageJson(currentContent) {
4
- const packageJson = await loadAsJson(currentContent);
5
- return addDependency(packageJson, await import("../package-LPS6TFJV.js"), {
3
+ async function getPackageJson(props) {
4
+ const packageJson = await loadAsJson(props);
5
+ return addDependency(packageJson, await import("../package-3G2SQFKV.js"), {
6
6
  dependencies: ["telefunc"]
7
7
  });
8
8
  }
@@ -1,7 +1,7 @@
1
1
  // files/$vite.config.ts.ts
2
2
  import { addVitePlugin, loadAsMagicast } from "@batijs/core";
3
- async function getViteConfig(currentContent) {
4
- const mod = await loadAsMagicast(currentContent);
3
+ async function getViteConfig(props) {
4
+ const mod = await loadAsMagicast(props);
5
5
  addVitePlugin(mod, {
6
6
  from: "telefunc/vite",
7
7
  constructor: "telefunc",
@@ -1,7 +1,7 @@
1
1
  // package.json
2
2
  var name = "@batijs/telefunc";
3
3
  var private2 = true;
4
- var version = "0.0.87";
4
+ var version = "0.0.88";
5
5
  var description = "";
6
6
  var type = "module";
7
7
  var scripts = {
@@ -1,8 +1,8 @@
1
1
  // files/$package.json.ts
2
2
  import { addDependency, loadAsJson } from "@batijs/core";
3
- async function getPackageJson(currentContent) {
4
- const packageJson = await loadAsJson(currentContent);
5
- return addDependency(packageJson, await import("../package-EAL6NF5P.js"), {
3
+ async function getPackageJson(props) {
4
+ const packageJson = await loadAsJson(props);
5
+ return addDependency(packageJson, await import("../package-2NMHCJGC.js"), {
6
6
  dependencies: ["vite-plugin-vercel", "@vite-plugin-vercel/vike"]
7
7
  });
8
8
  }
@@ -1,7 +1,7 @@
1
1
  // files/$vite.config.ts.ts
2
2
  import { addVitePlugin, loadAsMagicast } from "@batijs/core";
3
- async function getViteConfig(currentContent) {
4
- const mod = await loadAsMagicast(currentContent);
3
+ async function getViteConfig(props) {
4
+ const mod = await loadAsMagicast(props);
5
5
  addVitePlugin(mod, {
6
6
  from: "vite-plugin-vercel",
7
7
  constructor: "vercel"
@@ -1,7 +1,7 @@
1
1
  // package.json
2
2
  var name = "@batijs/vercel";
3
3
  var private2 = true;
4
- var version = "0.0.87";
4
+ var version = "0.0.88";
5
5
  var description = "";
6
6
  var type = "module";
7
7
  var scripts = {
@@ -0,0 +1,16 @@
1
+ // files/$.eslintrc.json.ts
2
+ import { loadAsJson } from "@batijs/core";
3
+ async function getEslintConfig(props) {
4
+ if (!props.meta.BATI_MODULES?.includes("tool:eslint"))
5
+ return;
6
+ const eslintConfig = await loadAsJson(props);
7
+ eslintConfig.extends.push("plugin:vue/vue3-recommended");
8
+ eslintConfig.parser = "vue-eslint-parser";
9
+ eslintConfig.parserOptions.parser = "@typescript-eslint/parser";
10
+ eslintConfig.rules ?? (eslintConfig.rules = {});
11
+ eslintConfig.rules["vue/multi-word-component-names"] = "off";
12
+ return eslintConfig;
13
+ }
14
+ export {
15
+ getEslintConfig as default
16
+ };
@@ -1,8 +1,19 @@
1
1
  // files/$package.json.ts
2
- import { addDependency, loadAsJson } from "@batijs/core";
3
- async function getPackageJson(currentContent) {
4
- const packageJson = await loadAsJson(currentContent);
5
- return addDependency(packageJson, await import("../package-HDC4A5UP.js"), {
2
+ import { addDependency, loadAsJson, setScripts } from "@batijs/core";
3
+ async function getPackageJson(props) {
4
+ const packageJson = await loadAsJson(props);
5
+ if (props.meta.BATI_MODULES?.includes("tool:eslint")) {
6
+ setScripts(packageJson, {
7
+ lint: {
8
+ value: "eslint --ext .js,.jsx,.ts,.tsx,.vue .",
9
+ precedence: 20
10
+ }
11
+ });
12
+ addDependency(packageJson, await import("../package-SEZV7AAY.js"), {
13
+ devDependencies: ["eslint-plugin-vue"]
14
+ });
15
+ }
16
+ return addDependency(packageJson, await import("../package-SEZV7AAY.js"), {
6
17
  devDependencies: ["vite"],
7
18
  dependencies: [
8
19
  "@vitejs/plugin-vue",
@@ -1,7 +1,7 @@
1
1
  // files/$tsconfig.json.ts
2
2
  import { loadAsJson } from "@batijs/core";
3
- async function getTsConfig(currentContent) {
4
- const tsConfig = await loadAsJson(currentContent);
3
+ async function getTsConfig(props) {
4
+ const tsConfig = await loadAsJson(props);
5
5
  tsConfig.compilerOptions.jsx = "preserve";
6
6
  tsConfig.compilerOptions.jsxImportSource = "vue";
7
7
  tsConfig.compilerOptions.types = [...tsConfig.compilerOptions.types ?? [], "vike-vue"];
@@ -1,7 +1,7 @@
1
1
  // files/$vite.config.ts.ts
2
2
  import { addVitePlugin, loadAsMagicast } from "@batijs/core";
3
- async function getViteConfig(currentContent) {
4
- const mod = await loadAsMagicast(currentContent);
3
+ async function getViteConfig(props) {
4
+ const mod = await loadAsMagicast(props);
5
5
  addVitePlugin(mod, {
6
6
  from: "vike/plugin",
7
7
  constructor: "ssr"
@@ -4,7 +4,7 @@
4
4
  <button
5
5
  type="button"
6
6
  {{{ @if (it.import.meta.BATI_MODULES?.includes("uikit:tailwindcss")) }}}
7
- class="inline-block border border-black rounded bg-gray-200 px-2 py-1 text-xs font-medium uppercase leading-normal"
7
+ class="inline-block border border-black rounded bg-gray-200 px-2 py-1 text-xs font-medium uppercase leading-normal"
8
8
  {{{ /if }}}
9
9
  @click="state.count++"
10
10
  >
@@ -15,7 +15,7 @@
15
15
  <script lang="ts">
16
16
  import { reactive } from 'vue'
17
17
  export default {
18
- setup(props) {
18
+ setup() {
19
19
  const state = reactive({ count: 0 })
20
20
  return {
21
21
  state
@@ -3,6 +3,19 @@
3
3
  <slot />
4
4
  </a>
5
5
  </template>
6
+
7
+ <script lang="ts" setup>
8
+ import { usePageContext } from "vike-vue/usePageContext";
9
+ import { computed, useAttrs } from "vue";
10
+
11
+ const pageContext = usePageContext();
12
+ const { href } = useAttrs();
13
+ const isActive = computed(() => {
14
+ const { urlPathname } = pageContext;
15
+ return href === "/" ? urlPathname === href : urlPathname.startsWith(href);
16
+ });
17
+ </script>
18
+
6
19
  <style scoped>
7
20
  a {
8
21
  padding: 2px 10px;
@@ -12,14 +25,3 @@ a.active {
12
25
  background-color: #eee;
13
26
  }
14
27
  </style>
15
- <script lang="ts" setup>
16
- import { useAttrs, computed } from 'vue'
17
- import { usePageContext } from 'vike-vue/usePageContext'
18
-
19
- const pageContext = usePageContext()
20
- const { href } = useAttrs()
21
- const isActive = computed(() => {
22
- const { urlPathname } = pageContext
23
- return href === '/' ? urlPathname === href : urlPathname.startsWith(href)
24
- })
25
- </script>
@@ -12,7 +12,11 @@
12
12
  {{{ /if }}}
13
13
  >
14
14
  <a href="/">
15
- <img src="../assets/logo.svg" height="64" width="64" />
15
+ <img
16
+ src="../assets/logo.svg"
17
+ height="64"
18
+ width="64"
19
+ >
16
20
  </a>
17
21
  </div>
18
22
  </template>
@@ -3,10 +3,17 @@
3
3
  <!-- Default <head> (can be overridden by pages) -->
4
4
 
5
5
  <template>
6
- <meta name="viewport" content="width=device-width, initial-scale=1" />
6
+ <meta
7
+ name="viewport"
8
+ content="width=device-width, initial-scale=1"
9
+ >
7
10
  {{{ @if (it.import.meta.BATI_MODULES?.includes("analytics:plausible.io")) }}}
8
11
  <!-- See https://plausible.io/docs/plausible-script -->
9
12
  <!-- TODO: update data-domain -->
10
- <script defer data-domain="yourdomain.com" src="https://plausible.io/js/script.js"></script>
13
+ <script
14
+ defer
15
+ data-domain="yourdomain.com"
16
+ src="https://plausible.io/js/script.js"
17
+ />
11
18
  {{{ /if }}}
12
19
  </template>
@@ -5,11 +5,17 @@
5
5
  <div class="layout">
6
6
  <Sidebar>
7
7
  <Logo />
8
- <Link href="/">Welcome</Link>
8
+ <Link href="/">
9
+ Welcome
10
+ </Link>
9
11
  {{{ @if (it.import.meta.BATI_MODULES?.includes("rpc:telefunc")) }}}
10
- <Link href="/todo">Todo</Link>
12
+ <Link href="/todo">
13
+ Todo
14
+ </Link>
11
15
  {{{ /if }}}
12
- <Link href="/star-wars">Data Fetching</Link>
16
+ <Link href="/star-wars">
17
+ Data Fetching
18
+ </Link>
13
19
  </Sidebar>
14
20
  <Content><slot /></Content>
15
21
  </div>
@@ -1,12 +1,17 @@
1
1
  <template>
2
2
  <h1>{{ movie.title }}</h1>
3
3
  Release Date: {{ movie.release_date }}
4
- <br />
4
+ <br>
5
5
  Director: {{ movie.director }}
6
- <br />
6
+ <br>
7
7
  Producer: {{ movie.producer }}
8
8
  </template>
9
9
 
10
10
  <script lang="ts" setup>
11
- defineProps(['movie'])
11
+ defineProps({
12
+ movies: {
13
+ type: Array,
14
+ required: true,
15
+ },
16
+ })
12
17
  </script>
@@ -1,7 +1,10 @@
1
1
  <template>
2
2
  <h1>Star Wars Movies</h1>
3
3
  <ol>
4
- <li v-for="item in movies" :key="item.id">
4
+ <li
5
+ v-for="item in movies"
6
+ :key="item.id"
7
+ >
5
8
  <a :href="'/star-wars/' + item.id">{{ item.title }}</a> ({{ item.release_date }})
6
9
  </li>
7
10
  </ol>
@@ -9,5 +12,10 @@
9
12
  </template>
10
13
 
11
14
  <script lang="ts" setup>
12
- defineProps(['movies'])
15
+ defineProps({
16
+ movies: {
17
+ type: Array,
18
+ required: true,
19
+ },
20
+ })
13
21
  </script>
@@ -1,9 +1,9 @@
1
- export default onBeforeRender;
2
-
3
1
  import fetch from "cross-fetch";
4
2
  //import { filterMovieData } from '../filterMovieData'
5
3
  import type { Movie, MovieDetails } from "../types";
6
4
 
5
+ export default onBeforeRender;
6
+
7
7
  // export { prerender }
8
8
 
9
9
  async function onBeforeRender() {
@@ -23,6 +23,7 @@ async function onBeforeRender() {
23
23
 
24
24
  async function getStarWarsMovies(): Promise<MovieDetails[]> {
25
25
  const response = await fetch("https://star-wars.brillout.com/api/films.json");
26
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
26
27
  let movies: MovieDetails[] = ((await response.json()) as any).results;
27
28
  movies = movies.map((movie: MovieDetails, i: number) => ({
28
29
  ...movie,
@@ -1,7 +1,7 @@
1
1
  // package.json
2
2
  var name = "@batijs/vue";
3
3
  var private2 = true;
4
- var version = "0.0.87";
4
+ var version = "0.0.88";
5
5
  var description = "";
6
6
  var type = "module";
7
7
  var scripts = {
@@ -17,13 +17,14 @@ var devDependencies = {
17
17
  "@vue/compiler-sfc": "^3.3.4",
18
18
  "@vue/server-renderer": "^3.3.4",
19
19
  "cross-fetch": "^4.0.0",
20
+ "eslint-plugin-vue": "^9.17.0",
20
21
  tailwindcss: "^3.3.3",
21
22
  tsup: "^7.2.0",
22
23
  typescript: "^5.2.2",
23
24
  "unplugin-vue-markdown": "^0.24.3",
25
+ vike: "^0.4.143",
24
26
  "vike-vue": "^0.4.0",
25
27
  vite: "^4.4.11",
26
- vike: "^0.4.143",
27
28
  vue: "^3.3.4"
28
29
  };
29
30
  var dependencies = {
@@ -1,18 +1,29 @@
1
1
  <template>
2
2
  <ul>
3
- <li v-for="item in todoItems">{{ item.text }}</li>
3
+ <li
4
+ v-for="item in todoItems"
5
+ :key="item.text"
6
+ >
7
+ {{ item.text }}
8
+ </li>
4
9
  <li>
5
10
  <form @submit.prevent="submitDraft()">
6
- <input type="text" v-model="draft" />{{ " " }}
7
- <button type="submit">Add to-do</button>
11
+ <input
12
+ v-model="draft"
13
+ type="text"
14
+ >{{ " " }}
15
+ <button type="submit">
16
+ Add to-do
17
+ </button>
8
18
  </form>
9
19
  </li>
10
20
  </ul>
11
21
  </template>
12
22
 
13
23
  <script lang="ts" setup>
24
+ import { ref, useAttrs } from "vue";
14
25
  import { onNewTodo } from "./TodoList.telefunc.js";
15
- import { ref, useAttrs } from 'vue';
26
+
16
27
  const { todoItemsInitial } = useAttrs();
17
28
 
18
29
  const todoItems = ref(todoItemsInitial);
@@ -1,13 +1,14 @@
1
1
  <template>
2
2
  <div>
3
3
  <h1>To-do List</h1>
4
- <TodoList :todoItemsInitial="todoItemsInitial" />
4
+ <TodoList :todo-items-initial="todoItemsInitial" />
5
5
  <Counter />
6
6
  </div>
7
7
  </template>
8
8
 
9
9
  <script lang="ts" setup>
10
- import { useAttrs } from 'vue';
10
+ import { useAttrs } from "vue";
11
+
11
12
  const { todoItemsInitial } = useAttrs();
12
13
  </script>
13
14
 
@@ -22,6 +22,18 @@
22
22
  "hooks"
23
23
  ]
24
24
  },
25
+ {
26
+ "config": {
27
+ "flag": "eslint",
28
+ "name": "ESLint",
29
+ "homepage": "https://eslint.org"
30
+ },
31
+ "folder": "@batijs/eslint",
32
+ "description": "",
33
+ "subfolders": [
34
+ "files"
35
+ ]
36
+ },
25
37
  {
26
38
  "config": {
27
39
  "flag": "express",
@@ -107,7 +119,9 @@
107
119
  ]
108
120
  },
109
121
  {
110
- "config": {},
122
+ "config": {
123
+ "enforce": "pre"
124
+ },
111
125
  "folder": "@batijs/shared",
112
126
  "description": "",
113
127
  "subfolders": [