site/node_modules/micromorph/package.json
2024-10-14 08:09:33 +02:00

35 lines
2.1 KiB
JSON

{
"name": "micromorph",
"version": "0.4.5",
"main": "./index.mjs",
"types": "./types.d.ts",
"exports": {
".": "./index.mjs",
"./spa": "./dist/spa.js",
"./nav": "./dist/nav.js"
},
"files": [
"index.mjs",
"index.d.ts",
"spa.d.ts",
"nav.d.ts",
"dist/"
],
"packageManager": "pnpm@6.32.3",
"devDependencies": {
"@changesets/cli": "^2.22.0",
"esbuild": "^0.14.14"
},
"volta": {
"node": "18.16.0"
},
"license": "MIT",
"scripts": {
"build": "pnpm run build:index && pnpm run build:spa && pnpm run build:nav",
"build:index": "esbuild src/index.ts --bundle --format=esm --target=es2020 --outfile=dist/index.js --minify",
"build:spa": "esbuild src/spa.ts --bundle --format=esm --target=es2020 --outfile=dist/spa.js --minify",
"build:nav": "esbuild src/nav.ts --bundle --format=esm --target=es2020 --outfile=dist/nav.js --minify",
"demo": "pnpm --filter demo run build && pnpm --filter demo run preview"
},
"readme": "# 🤏 micromorph\n\nA very tiny library for diffing live DOM nodes.\n\nExtremely handy when used in conjunction with the [`DOMParser`](https://developer.mozilla.org/en-US/docs/Web/API/DOMParser) API.\n\n---\n\n## Use Cases\n\n#### Want to update one node to match another?\n\nDiff them efficiently and only sync changes between the two nodes.\n\n```js\nimport diff from 'micromorph';\n\ndiff(fromNode, toNode);\n```\n\n#### Want to update the current `document` to match a new `document`, maybe from a string?\n\nMicromorph is smart enough to handle full document diffing while avoiding FOUC.\n\n```js\nimport diff from 'micromorph';\nconst p = new DOMParser();\n\nconst newDoc = p.parseFromString(`<h1>Hello world!</h1>`, 'text/html');\n\ndiff(document, newDoc);\n```\n\n#### Want to turn your MPA into an SPA?\n\nWith the `/nav` entrypoint, Micromorph automatically converts your MPA into a SPA while only re-rendering content that has changed.\n\n```js\nimport listen from 'micromorph/nav';\n\nlisten();\n```\n\nFor browsers that don't support the `Navigation` API, the `/spa` entrypoint can be used.\n\n\n```js\nimport listen from 'micromorph/spa';\n\nlisten();\n```\n"
}