From fd029475a0b9ebeba2a930fd154ee8bb446c2333 Mon Sep 17 00:00:00 2001 From: "F. Levi" <55688616+flevi29@users.noreply.github.com> Date: Mon, 27 Jan 2025 10:14:50 +0200 Subject: [PATCH 1/6] Improve playgrounds --- playgrounds/javascript/.gitignore | 24 -- playgrounds/javascript/README.md | 17 - playgrounds/javascript/index.html | 20 +- playgrounds/javascript/package.json | 14 - playgrounds/javascript/src/app.css | 51 --- playgrounds/javascript/src/app.js | 60 ---- playgrounds/javascript/src/main.ts | 41 +++ playgrounds/javascript/src/meilisearch.ts | 49 +++ .../javascript/src/{index.css => style.css} | 6 - playgrounds/javascript/src/vite-env.d.ts | 1 + playgrounds/javascript/yarn.lock | 327 ------------------ 11 files changed, 95 insertions(+), 515 deletions(-) delete mode 100644 playgrounds/javascript/.gitignore delete mode 100644 playgrounds/javascript/README.md delete mode 100644 playgrounds/javascript/package.json delete mode 100644 playgrounds/javascript/src/app.css delete mode 100644 playgrounds/javascript/src/app.js create mode 100644 playgrounds/javascript/src/main.ts create mode 100644 playgrounds/javascript/src/meilisearch.ts rename playgrounds/javascript/src/{index.css => style.css} (80%) create mode 100644 playgrounds/javascript/src/vite-env.d.ts delete mode 100644 playgrounds/javascript/yarn.lock diff --git a/playgrounds/javascript/.gitignore b/playgrounds/javascript/.gitignore deleted file mode 100644 index a547bf36d..000000000 --- a/playgrounds/javascript/.gitignore +++ /dev/null @@ -1,24 +0,0 @@ -# Logs -logs -*.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* -pnpm-debug.log* -lerna-debug.log* - -node_modules -dist -dist-ssr -*.local - -# Editor directories and files -.vscode/* -!.vscode/extensions.json -.idea -.DS_Store -*.suo -*.ntvs* -*.njsproj -*.sln -*.sw? diff --git a/playgrounds/javascript/README.md b/playgrounds/javascript/README.md deleted file mode 100644 index 0feaec030..000000000 --- a/playgrounds/javascript/README.md +++ /dev/null @@ -1,17 +0,0 @@ -# Meilisearch JavaScript playground - -This is an example vanilla JavaScript project using [Vite](https://vite.dev) and the [Yarn](https://classic.yarnpkg.com/en/docs/install) package manager. - -## Development - -Install the dependencies: - -```bash -yarn -``` - -Run the app in development: - -```bash -yarn dev -``` diff --git a/playgrounds/javascript/index.html b/playgrounds/javascript/index.html index 268c0806e..edc95cb4a 100644 --- a/playgrounds/javascript/index.html +++ b/playgrounds/javascript/index.html @@ -1,24 +1,12 @@ - - - + + Meilisearch + Vite -

Meilisearch + Vite

-

Errors:

-
- -

Movies index:

-
-

Search response:

-
- - +
+ diff --git a/playgrounds/javascript/package.json b/playgrounds/javascript/package.json deleted file mode 100644 index f510020bb..000000000 --- a/playgrounds/javascript/package.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "name": "meilisearch-js-playground", - "version": "0.2.0", - "description": "Meilisearch playground written with Vite", - "type": "module", - "scripts": { - "dev": "vite", - "build": "vite build", - "preview": "vite preview" - }, - "devDependencies": { - "vite": "^6.0.9" - } -} diff --git a/playgrounds/javascript/src/app.css b/playgrounds/javascript/src/app.css deleted file mode 100644 index 544a84abc..000000000 --- a/playgrounds/javascript/src/app.css +++ /dev/null @@ -1,51 +0,0 @@ -body { - font-family: sans-serif; - padding: 1em; -} - -.ais-ClearRefinements { - margin: 1em 0; -} - -.ais-SearchBox { - margin: 1em 0; -} - -.ais-Pagination { - margin-top: 1em; -} - -.left-panel { - float: left; - width: 200px; -} - -.right-panel { - margin-left: 210px; -} - -.ais-InstantSearch { - max-width: 960px; - overflow: hidden; - margin: 0 auto; -} - -.ais-Hits-item { - margin-bottom: 1em; - width: calc(50% - 1rem); -} - -.ais-Hits-item img { - margin-right: 1em; - width: 100%; - height: 100%; - margin-bottom: 0.5em; -} - -.hit-name { - margin-bottom: 0.5em; -} - -.hit-info { - font-size: 90%; -} diff --git a/playgrounds/javascript/src/app.js b/playgrounds/javascript/src/app.js deleted file mode 100644 index d0fc2a205..000000000 --- a/playgrounds/javascript/src/app.js +++ /dev/null @@ -1,60 +0,0 @@ -import { Meilisearch } from "../../../src"; - -const config = { - host: "http://127.0.0.1:7700", - apiKey: "masterKey", -}; - -const client = new Meilisearch(config); -const indexUid = "movies"; - -const addDataset = async () => { - await client.deleteIndex(indexUid); - const { taskUid } = await client.createIndex(indexUid); - await client.index(indexUid).waitForTask(taskUid); - - const documents = await client.index(indexUid).getDocuments(); - - const dataset = [ - { id: 1, title: "Carol", genres: ["Romance", "Drama"] }, - { id: 2, title: "Wonder Woman", genres: ["Action", "Adventure"] }, - { id: 3, title: "Life of Pi", genres: ["Adventure", "Drama"] }, - { - id: 4, - title: "Mad Max: Fury Road", - genres: ["Adventure", "Science Fiction"], - }, - { id: 5, title: "Moana", genres: ["Fantasy", "Action"] }, - { id: 6, title: "Philadelphia", genres: ["Drama"] }, - ]; - if (documents.results.length === 0) { - const { taskUid } = await client.index(indexUid).addDocuments(dataset); - await client.index(indexUid).waitForTask(taskUid); - } -}; - -(async () => { - try { - await addDataset(); - const indexes = await client.getRawIndexes(); - document.querySelector(".indexes").innerText = JSON.stringify( - indexes, - null, - 1, - ); - const resp = await client.index(indexUid).search("", { - attributesToHighlight: ["title"], - }); - console.log({ resp }); - console.log({ hit: resp.hits[0] }); - document.querySelector(".hits").innerText = JSON.stringify( - resp.hits.map((hit) => hit.title), - null, - 1, - ); - document.querySelector(".errors_title").style.display = "none"; - } catch (e) { - console.error(e); - document.querySelector(".errors").innerText = JSON.stringify(e, null, 1); - } -})(); diff --git a/playgrounds/javascript/src/main.ts b/playgrounds/javascript/src/main.ts new file mode 100644 index 000000000..4c24c0577 --- /dev/null +++ b/playgrounds/javascript/src/main.ts @@ -0,0 +1,41 @@ +import "./style.css"; +import { addDocuments, getAllHits, getSearchResponse } from "./meilisearch.js"; + +document.querySelector("#app")!.innerHTML = ` +
+

Meilisearch + Vite

+ +

Documents:

+
-
+ +

Search response:

+
-
+ +

Errors:

+
None
+
+`; + +function getErrorMessage(error: unknown): string { + if (!(error instanceof Error)) { + return JSON.stringify(error); + } + + const message = String(error); + + if (error.cause === undefined) { + return message; + } + + return `${message}\nCaused by ${getErrorMessage(error.cause)}`; +} + +try { + await addDocuments(); + await getAllHits(document.querySelector("#hits")!); + await getSearchResponse(document.querySelector("#response")!); +} catch (error) { + console.error(error); + document.querySelector("#errors")!.innerText = + getErrorMessage(error); +} diff --git a/playgrounds/javascript/src/meilisearch.ts b/playgrounds/javascript/src/meilisearch.ts new file mode 100644 index 000000000..2dba394bb --- /dev/null +++ b/playgrounds/javascript/src/meilisearch.ts @@ -0,0 +1,49 @@ +import { Index, Meilisearch } from "../../../src/index.js"; + +const client = new Meilisearch({ + host: "http://127.0.0.1:7700", + apiKey: "masterKey", +}); +const indexUid = "movies"; +const index = client.index<{ id: number; title: string; genres: string[] }>( + indexUid, +); + +export async function addDocuments(): Promise { + await client.deleteIndexIfExists(indexUid); + + const task1 = await client.createIndex(indexUid); + await client.waitForTask(task1.taskUid); + + const task2 = await index.addDocuments([ + { id: 1, title: "Carol", genres: ["Romance", "Drama"] }, + { id: 2, title: "Wonder Woman", genres: ["Action", "Adventure"] }, + { id: 3, title: "Life of Pi", genres: ["Adventure", "Drama"] }, + { + id: 4, + title: "Mad Max: Fury Road", + genres: ["Adventure", "Science Fiction"], + }, + { id: 5, title: "Moana", genres: ["Fantasy", "Action"] }, + { id: 6, title: "Philadelphia", genres: ["Drama"] }, + ]); + + await client.index(indexUid).waitForTask(task2.taskUid); +} + +export async function getAllHits(element: HTMLDivElement): Promise { + const documents = await index.getDocuments(); + + element.innerText = JSON.stringify(documents, null, 4); +} + +export async function getSearchResponse(element: HTMLDivElement) { + const params: Parameters = [ + "philoudelphia", + { attributesToHighlight: ["title"] }, + ]; + + const response = await client.index(indexUid).search(...params); + + element.innerText = `PARAMETERS: ${JSON.stringify(params, null, 4)}\nRESPONSE: ${JSON.stringify(response, null, 4)}`; +} diff --git a/playgrounds/javascript/src/index.css b/playgrounds/javascript/src/style.css similarity index 80% rename from playgrounds/javascript/src/index.css rename to playgrounds/javascript/src/style.css index 30475b7b8..ddf6145e9 100644 --- a/playgrounds/javascript/src/index.css +++ b/playgrounds/javascript/src/style.css @@ -1,9 +1,3 @@ -body, -h1 { - margin: 0; - padding: 0; -} - body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; diff --git a/playgrounds/javascript/src/vite-env.d.ts b/playgrounds/javascript/src/vite-env.d.ts new file mode 100644 index 000000000..11f02fe2a --- /dev/null +++ b/playgrounds/javascript/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/playgrounds/javascript/yarn.lock b/playgrounds/javascript/yarn.lock deleted file mode 100644 index b12d3744b..000000000 --- a/playgrounds/javascript/yarn.lock +++ /dev/null @@ -1,327 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@esbuild/aix-ppc64@0.24.2": - version "0.24.2" - resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.24.2.tgz#38848d3e25afe842a7943643cbcd387cc6e13461" - integrity sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA== - -"@esbuild/android-arm64@0.24.2": - version "0.24.2" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.24.2.tgz#f592957ae8b5643129fa889c79e69cd8669bb894" - integrity sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg== - -"@esbuild/android-arm@0.24.2": - version "0.24.2" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.24.2.tgz#72d8a2063aa630308af486a7e5cbcd1e134335b3" - integrity sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q== - -"@esbuild/android-x64@0.24.2": - version "0.24.2" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.24.2.tgz#9a7713504d5f04792f33be9c197a882b2d88febb" - integrity sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw== - -"@esbuild/darwin-arm64@0.24.2": - version "0.24.2" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.24.2.tgz#02ae04ad8ebffd6e2ea096181b3366816b2b5936" - integrity sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA== - -"@esbuild/darwin-x64@0.24.2": - version "0.24.2" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.24.2.tgz#9ec312bc29c60e1b6cecadc82bd504d8adaa19e9" - integrity sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA== - -"@esbuild/freebsd-arm64@0.24.2": - version "0.24.2" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.2.tgz#5e82f44cb4906d6aebf24497d6a068cfc152fa00" - integrity sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg== - -"@esbuild/freebsd-x64@0.24.2": - version "0.24.2" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.24.2.tgz#3fb1ce92f276168b75074b4e51aa0d8141ecce7f" - integrity sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q== - -"@esbuild/linux-arm64@0.24.2": - version "0.24.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.24.2.tgz#856b632d79eb80aec0864381efd29de8fd0b1f43" - integrity sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg== - -"@esbuild/linux-arm@0.24.2": - version "0.24.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.24.2.tgz#c846b4694dc5a75d1444f52257ccc5659021b736" - integrity sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA== - -"@esbuild/linux-ia32@0.24.2": - version "0.24.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.24.2.tgz#f8a16615a78826ccbb6566fab9a9606cfd4a37d5" - integrity sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw== - -"@esbuild/linux-loong64@0.24.2": - version "0.24.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.24.2.tgz#1c451538c765bf14913512c76ed8a351e18b09fc" - integrity sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ== - -"@esbuild/linux-mips64el@0.24.2": - version "0.24.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.24.2.tgz#0846edeefbc3d8d50645c51869cc64401d9239cb" - integrity sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw== - -"@esbuild/linux-ppc64@0.24.2": - version "0.24.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.24.2.tgz#8e3fc54505671d193337a36dfd4c1a23b8a41412" - integrity sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw== - -"@esbuild/linux-riscv64@0.24.2": - version "0.24.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.24.2.tgz#6a1e92096d5e68f7bb10a0d64bb5b6d1daf9a694" - integrity sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q== - -"@esbuild/linux-s390x@0.24.2": - version "0.24.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.24.2.tgz#ab18e56e66f7a3c49cb97d337cd0a6fea28a8577" - integrity sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw== - -"@esbuild/linux-x64@0.24.2": - version "0.24.2" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.24.2.tgz#8140c9b40da634d380b0b29c837a0b4267aff38f" - integrity sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q== - -"@esbuild/netbsd-arm64@0.24.2": - version "0.24.2" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.24.2.tgz#65f19161432bafb3981f5f20a7ff45abb2e708e6" - integrity sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw== - -"@esbuild/netbsd-x64@0.24.2": - version "0.24.2" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.24.2.tgz#7a3a97d77abfd11765a72f1c6f9b18f5396bcc40" - integrity sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw== - -"@esbuild/openbsd-arm64@0.24.2": - version "0.24.2" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.2.tgz#58b00238dd8f123bfff68d3acc53a6ee369af89f" - integrity sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A== - -"@esbuild/openbsd-x64@0.24.2": - version "0.24.2" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.24.2.tgz#0ac843fda0feb85a93e288842936c21a00a8a205" - integrity sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA== - -"@esbuild/sunos-x64@0.24.2": - version "0.24.2" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.24.2.tgz#8b7aa895e07828d36c422a4404cc2ecf27fb15c6" - integrity sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig== - -"@esbuild/win32-arm64@0.24.2": - version "0.24.2" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.24.2.tgz#c023afb647cabf0c3ed13f0eddfc4f1d61c66a85" - integrity sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ== - -"@esbuild/win32-ia32@0.24.2": - version "0.24.2" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.24.2.tgz#96c356132d2dda990098c8b8b951209c3cd743c2" - integrity sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA== - -"@esbuild/win32-x64@0.24.2": - version "0.24.2" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.24.2.tgz#34aa0b52d0fbb1a654b596acfa595f0c7b77a77b" - integrity sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg== - -"@rollup/rollup-android-arm-eabi@4.29.2": - version "4.29.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.29.2.tgz#d4c3965f18ebf567a99154f93bcf283fd527e2a9" - integrity sha512-s/8RiF4bdmGnc/J0N7lHAr5ZFJj+NdJqJ/Hj29K+c4lEdoVlukzvWXB9XpWZCdakVT0YAw8iyIqUP2iFRz5/jA== - -"@rollup/rollup-android-arm64@4.29.2": - version "4.29.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.29.2.tgz#cbc7e636a7aab984161fc045039bf3c6abb50083" - integrity sha512-mKRlVj1KsKWyEOwR6nwpmzakq6SgZXW4NUHNWlYSiyncJpuXk7wdLzuKdWsRoR1WLbWsZBKvsUCdCTIAqRn9cA== - -"@rollup/rollup-darwin-arm64@4.29.2": - version "4.29.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.29.2.tgz#d084c6120f96749a7ddc5ef81d8740f2525abb6e" - integrity sha512-vJX+vennGwygmutk7N333lvQ/yKVAHnGoBS2xMRQgXWW8tvn46YWuTDOpKroSPR9BEW0Gqdga2DHqz8Pwk6X5w== - -"@rollup/rollup-darwin-x64@4.29.2": - version "4.29.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.29.2.tgz#1393f12d5722cc39b8c014aedd4b4da8043929a9" - integrity sha512-e2rW9ng5O6+Mt3ht8fH0ljfjgSCC6ffmOipiLUgAnlK86CHIaiCdHCzHzmTkMj6vEkqAiRJ7ss6Ibn56B+RE5w== - -"@rollup/rollup-freebsd-arm64@4.29.2": - version "4.29.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.29.2.tgz#1c11650970c4b52d7fb077f5a4a6e16ba5e6db4f" - integrity sha512-/xdNwZe+KesG6XJCK043EjEDZTacCtL4yurMZRLESIgHQdvtNyul3iz2Ab03ZJG0pQKbFTu681i+4ETMF9uE/Q== - -"@rollup/rollup-freebsd-x64@4.29.2": - version "4.29.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.29.2.tgz#d3d79a2b96e81475571cb9bb414910450bcebe04" - integrity sha512-eXKvpThGzREuAbc6qxnArHh8l8W4AyTcL8IfEnmx+bcnmaSGgjyAHbzZvHZI2csJ+e0MYddl7DX0X7g3sAuXDQ== - -"@rollup/rollup-linux-arm-gnueabihf@4.29.2": - version "4.29.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.29.2.tgz#14a39257111abbc38412805c9162819d3bb248c1" - integrity sha512-h4VgxxmzmtXLLYNDaUcQevCmPYX6zSj4SwKuzY7SR5YlnCBYsmvfYORXgiU8axhkFCDtQF3RW5LIXT8B14Qykg== - -"@rollup/rollup-linux-arm-musleabihf@4.29.2": - version "4.29.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.29.2.tgz#64304812643515c0ed83cdaf4fde034c35dbc776" - integrity sha512-EObwZ45eMmWZQ1w4N7qy4+G1lKHm6mcOwDa+P2+61qxWu1PtQJ/lz2CNJ7W3CkfgN0FQ7cBUy2tk6D5yR4KeXw== - -"@rollup/rollup-linux-arm64-gnu@4.29.2": - version "4.29.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.29.2.tgz#60d457954c288c168049aadb304c204d8a680236" - integrity sha512-Z7zXVHEXg1elbbYiP/29pPwlJtLeXzjrj4241/kCcECds8Zg9fDfURWbZHRIKrEriAPS8wnVtdl4ZJBvZr325w== - -"@rollup/rollup-linux-arm64-musl@4.29.2": - version "4.29.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.29.2.tgz#17deb5058243bc5599164a9e0a899b0902310fca" - integrity sha512-TF4kxkPq+SudS/r4zGPf0G08Bl7+NZcFrUSR3484WwsHgGgJyPQRLCNrQ/R5J6VzxfEeQR9XRpc8m2t7lD6SEQ== - -"@rollup/rollup-linux-loongarch64-gnu@4.29.2": - version "4.29.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.29.2.tgz#5c65dd6557fda1f45c285cfeb4c5eda4c868341d" - integrity sha512-kO9Fv5zZuyj2zB2af4KA29QF6t7YSxKrY7sxZXfw8koDQj9bx5Tk5RjH+kWKFKok0wLGTi4bG117h31N+TIBEg== - -"@rollup/rollup-linux-powerpc64le-gnu@4.29.2": - version "4.29.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.29.2.tgz#33e45cac222fa6d09891f73bfb2d5d027ec34989" - integrity sha512-gIh776X7UCBaetVJGdjXPFurGsdWwHHinwRnC5JlLADU8Yk0EdS/Y+dMO264OjJFo7MXQ5PX4xVFbxrwK8zLqA== - -"@rollup/rollup-linux-riscv64-gnu@4.29.2": - version "4.29.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.29.2.tgz#1edee7a06538597720c4bf8178367d4b5651717d" - integrity sha512-YgikssQ5UNq1GoFKZydMEkhKbjlUq7G3h8j6yWXLBF24KyoA5BcMtaOUAXq5sydPmOPEqB6kCyJpyifSpCfQ0w== - -"@rollup/rollup-linux-s390x-gnu@4.29.2": - version "4.29.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.29.2.tgz#0ad4aaae2fd89c3607b743c63514c4561905672b" - integrity sha512-9ouIR2vFWCyL0Z50dfnon5nOrpDdkTG9lNDs7MRaienQKlTyHcDxplmk3IbhFlutpifBSBr2H4rVILwmMLcaMA== - -"@rollup/rollup-linux-x64-gnu@4.29.2": - version "4.29.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.29.2.tgz#ae27f8d26c02d8ce6f84275860e99678b9f3e932" - integrity sha512-ckBBNRN/F+NoSUDENDIJ2U9UWmIODgwDB/vEXCPOMcsco1niTkxTXa6D2Y/pvCnpzaidvY2qVxGzLilNs9BSzw== - -"@rollup/rollup-linux-x64-musl@4.29.2": - version "4.29.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.29.2.tgz#24ff1a64dddd75c489bd8714bcb5a659769d3e4a" - integrity sha512-jycl1wL4AgM2aBFJFlpll/kGvAjhK8GSbEmFT5v3KC3rP/b5xZ1KQmv0vQQ8Bzb2ieFQ0kZFPRMbre/l3Bu9JA== - -"@rollup/rollup-win32-arm64-msvc@4.29.2": - version "4.29.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.29.2.tgz#7c56efd576618db251909e21818d473cbcf96786" - integrity sha512-S2V0LlcOiYkNGlRAWZwwUdNgdZBfvsDHW0wYosYFV3c7aKgEVcbonetZXsHv7jRTTX+oY5nDYT4W6B1oUpMNOg== - -"@rollup/rollup-win32-ia32-msvc@4.29.2": - version "4.29.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.29.2.tgz#0b77e11129b04bb5b9bfff4b011d084a975190e0" - integrity sha512-pW8kioj9H5f/UujdoX2atFlXNQ9aCfAxFRaa+mhczwcsusm6gGrSo4z0SLvqLF5LwFqFTjiLCCzGkNK/LE0utQ== - -"@rollup/rollup-win32-x64-msvc@4.29.2": - version "4.29.2" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.29.2.tgz#dc89d92418ae2efa1d70e071c686cffbcf788147" - integrity sha512-p6fTArexECPf6KnOHvJXRpAEq0ON1CBtzG/EY4zw08kCHk/kivBc5vUEtnCFNCHOpJZ2ne77fxwRLIKD4wuW2Q== - -"@types/estree@1.0.6": - version "1.0.6" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.6.tgz#628effeeae2064a1b4e79f78e81d87b7e5fc7b50" - integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw== - -esbuild@^0.24.2: - version "0.24.2" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.24.2.tgz#b5b55bee7de017bff5fb8a4e3e44f2ebe2c3567d" - integrity sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA== - optionalDependencies: - "@esbuild/aix-ppc64" "0.24.2" - "@esbuild/android-arm" "0.24.2" - "@esbuild/android-arm64" "0.24.2" - "@esbuild/android-x64" "0.24.2" - "@esbuild/darwin-arm64" "0.24.2" - "@esbuild/darwin-x64" "0.24.2" - "@esbuild/freebsd-arm64" "0.24.2" - "@esbuild/freebsd-x64" "0.24.2" - "@esbuild/linux-arm" "0.24.2" - "@esbuild/linux-arm64" "0.24.2" - "@esbuild/linux-ia32" "0.24.2" - "@esbuild/linux-loong64" "0.24.2" - "@esbuild/linux-mips64el" "0.24.2" - "@esbuild/linux-ppc64" "0.24.2" - "@esbuild/linux-riscv64" "0.24.2" - "@esbuild/linux-s390x" "0.24.2" - "@esbuild/linux-x64" "0.24.2" - "@esbuild/netbsd-arm64" "0.24.2" - "@esbuild/netbsd-x64" "0.24.2" - "@esbuild/openbsd-arm64" "0.24.2" - "@esbuild/openbsd-x64" "0.24.2" - "@esbuild/sunos-x64" "0.24.2" - "@esbuild/win32-arm64" "0.24.2" - "@esbuild/win32-ia32" "0.24.2" - "@esbuild/win32-x64" "0.24.2" - -fsevents@~2.3.2, fsevents@~2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" - integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== - -nanoid@^3.3.7: - version "3.3.8" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.8.tgz#b1be3030bee36aaff18bacb375e5cce521684baf" - integrity sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w== - -picocolors@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" - integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== - -postcss@^8.4.49: - version "8.4.49" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.49.tgz#4ea479048ab059ab3ae61d082190fabfd994fe19" - integrity sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA== - dependencies: - nanoid "^3.3.7" - picocolors "^1.1.1" - source-map-js "^1.2.1" - -rollup@^4.23.0: - version "4.29.2" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.29.2.tgz#ff1555fd27fc20599a9b8f90527f0f43a1738e7f" - integrity sha512-tJXpsEkzsEzyAKIaB3qv3IuvTVcTN7qBw1jL4SPPXM3vzDrJgiLGFY6+HodgFaUHAJ2RYJ94zV5MKRJCoQzQeA== - dependencies: - "@types/estree" "1.0.6" - optionalDependencies: - "@rollup/rollup-android-arm-eabi" "4.29.2" - "@rollup/rollup-android-arm64" "4.29.2" - "@rollup/rollup-darwin-arm64" "4.29.2" - "@rollup/rollup-darwin-x64" "4.29.2" - "@rollup/rollup-freebsd-arm64" "4.29.2" - "@rollup/rollup-freebsd-x64" "4.29.2" - "@rollup/rollup-linux-arm-gnueabihf" "4.29.2" - "@rollup/rollup-linux-arm-musleabihf" "4.29.2" - "@rollup/rollup-linux-arm64-gnu" "4.29.2" - "@rollup/rollup-linux-arm64-musl" "4.29.2" - "@rollup/rollup-linux-loongarch64-gnu" "4.29.2" - "@rollup/rollup-linux-powerpc64le-gnu" "4.29.2" - "@rollup/rollup-linux-riscv64-gnu" "4.29.2" - "@rollup/rollup-linux-s390x-gnu" "4.29.2" - "@rollup/rollup-linux-x64-gnu" "4.29.2" - "@rollup/rollup-linux-x64-musl" "4.29.2" - "@rollup/rollup-win32-arm64-msvc" "4.29.2" - "@rollup/rollup-win32-ia32-msvc" "4.29.2" - "@rollup/rollup-win32-x64-msvc" "4.29.2" - fsevents "~2.3.2" - -source-map-js@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46" - integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA== - -vite@^6.0.9: - version "6.0.9" - resolved "https://registry.yarnpkg.com/vite/-/vite-6.0.9.tgz#0a830b767ef7aa762360b56bdef955c1395dc1ee" - integrity sha512-MSgUxHcaXLtnBPktkbUSoQUANApKYuxZ6DrbVENlIorbhL2dZydTLaZ01tjUoE3szeFzlFk9ANOKk0xurh4MKA== - dependencies: - esbuild "^0.24.2" - postcss "^8.4.49" - rollup "^4.23.0" - optionalDependencies: - fsevents "~2.3.3" From 92d9193c778a4ab6bd804d6503a759ca87ecbd9c Mon Sep 17 00:00:00 2001 From: "F. Levi" <55688616+flevi29@users.noreply.github.com> Date: Mon, 27 Jan 2025 21:35:29 +0200 Subject: [PATCH 2/6] Forgot to add script --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 2d0388437..abfbeafef 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,7 @@ "url": "https://github.com/meilisearch/meilisearch-js" }, "scripts": { - "playground:javascript": "yarn --cwd ./playgrounds/javascript && yarn --cwd ./playgrounds/javascript dev", + "playground:javascript": "vite serve playgrounds/javascript --open", "build:docs": "typedoc", "build": "vite build && tsc -p tsconfig.build.json && vite --mode production-umd build", "postbuild": "node scripts/build.js", From c172a3064b47b24193fd4ff141261f1ef623d911 Mon Sep 17 00:00:00 2001 From: "F. Levi" <55688616+flevi29@users.noreply.github.com> Date: Mon, 27 Jan 2025 21:43:52 +0200 Subject: [PATCH 3/6] Mention in README.md --- README.md | 2 ++ playgrounds/javascript/src/meilisearch.ts | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 2a37f1642..e61440496 100644 --- a/README.md +++ b/README.md @@ -132,6 +132,8 @@ const client = new MeiliSearch({ ## 🚀 Getting started +Take a look at the [playground](./playgrounds/javascript/src/meilisearch.ts) for a concrete example. + ### Add documents ```js diff --git a/playgrounds/javascript/src/meilisearch.ts b/playgrounds/javascript/src/meilisearch.ts index 2dba394bb..0e315f976 100644 --- a/playgrounds/javascript/src/meilisearch.ts +++ b/playgrounds/javascript/src/meilisearch.ts @@ -45,5 +45,7 @@ export async function getSearchResponse(element: HTMLDivElement) { const response = await client.index(indexUid).search(...params); - element.innerText = `PARAMETERS: ${JSON.stringify(params, null, 4)}\nRESPONSE: ${JSON.stringify(response, null, 4)}`; + element.innerText = + `PARAMETERS: ${JSON.stringify(params, null, 4)}` + + `\nRESPONSE: ${JSON.stringify(response, null, 4)}`; } From 6de9a07db3bbb40ca6eb3a47cb34ec9496db08ab Mon Sep 17 00:00:00 2001 From: "F. Levi" <55688616+flevi29@users.noreply.github.com> Date: Wed, 29 Jan 2025 10:46:25 +0200 Subject: [PATCH 4/6] Add README and package.json to playground --- .gitignore | 1 + playgrounds/javascript/README.md | 18 ++++++++++++++++++ playgrounds/javascript/package.json | 15 +++++++++++++++ 3 files changed, 34 insertions(+) create mode 100644 playgrounds/javascript/README.md create mode 100644 playgrounds/javascript/package.json diff --git a/.gitignore b/.gitignore index 2814bdb2b..868fe3fb0 100644 --- a/.gitignore +++ b/.gitignore @@ -132,3 +132,4 @@ package .idea dist_default_export_in_index no_default_export_in_index +playgrounds/javascript/yarn.lock diff --git a/playgrounds/javascript/README.md b/playgrounds/javascript/README.md new file mode 100644 index 000000000..915f2d931 --- /dev/null +++ b/playgrounds/javascript/README.md @@ -0,0 +1,18 @@ +# Meilisearch JavaScript playground + +This is an example vanilla JavaScript project using [Vite](https://vite.dev) and +the [Yarn](https://classic.yarnpkg.com/en/docs/install) package manager. + +## Development + +Install the dependencies: + +```bash +yarn +``` + +Run the app in development: + +```bash +yarn dev +``` diff --git a/playgrounds/javascript/package.json b/playgrounds/javascript/package.json new file mode 100644 index 000000000..278c252c0 --- /dev/null +++ b/playgrounds/javascript/package.json @@ -0,0 +1,15 @@ +{ + "name": "vite-starter", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview" + }, + "devDependencies": { + "vite": "^6.0.11" + } + } + \ No newline at end of file From 4cef7a4634a71d9db34649d9df63d6bbda4316f2 Mon Sep 17 00:00:00 2001 From: "F. Levi" <55688616+flevi29@users.noreply.github.com> Date: Wed, 29 Jan 2025 10:48:34 +0200 Subject: [PATCH 5/6] Format package.json --- playgrounds/javascript/package.json | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/playgrounds/javascript/package.json b/playgrounds/javascript/package.json index 278c252c0..fcb6aede2 100644 --- a/playgrounds/javascript/package.json +++ b/playgrounds/javascript/package.json @@ -1,15 +1,14 @@ { - "name": "vite-starter", - "private": true, - "version": "0.0.0", - "type": "module", - "scripts": { - "dev": "vite", - "build": "vite build", - "preview": "vite preview" - }, - "devDependencies": { - "vite": "^6.0.11" - } + "name": "vite-starter", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview" + }, + "devDependencies": { + "vite": "^6.0.11" } - \ No newline at end of file +} From 4b36fec545f5ad1eaa82cfa58569cbb88d71e933 Mon Sep 17 00:00:00 2001 From: "F. Levi" <55688616+flevi29@users.noreply.github.com> Date: Wed, 29 Jan 2025 10:49:28 +0200 Subject: [PATCH 6/6] Add proper package name --- playgrounds/javascript/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/playgrounds/javascript/package.json b/playgrounds/javascript/package.json index fcb6aede2..1060bd8ac 100644 --- a/playgrounds/javascript/package.json +++ b/playgrounds/javascript/package.json @@ -1,5 +1,5 @@ { - "name": "vite-starter", + "name": "meilisearch-js-playground", "private": true, "version": "0.0.0", "type": "module",