{"id":25059541,"url":"https://github.com/pekochan069/astro-datastar","last_synced_at":"2025-05-07T13:41:41.681Z","repository":{"id":275590051,"uuid":"926546956","full_name":"pekochan069/astro-datastar","owner":"pekochan069","description":"Datastar integration for Astro","archived":false,"fork":false,"pushed_at":"2025-02-11T13:54:44.000Z","size":65,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-01T10:07:07.542Z","etag":null,"topics":["astro","astro-integration","datastar"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pekochan069.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-02-03T13:00:24.000Z","updated_at":"2025-03-14T22:12:39.000Z","dependencies_parsed_at":null,"dependency_job_id":"020f4af3-7df2-47c9-b867-9f291241ebf0","html_url":"https://github.com/pekochan069/astro-datastar","commit_stats":null,"previous_names":["pekochan069/astro-datastar"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pekochan069%2Fastro-datastar","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pekochan069%2Fastro-datastar/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pekochan069%2Fastro-datastar/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pekochan069%2Fastro-datastar/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pekochan069","download_url":"https://codeload.github.com/pekochan069/astro-datastar/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252889133,"owners_count":21820121,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["astro","astro-integration","datastar"],"created_at":"2025-02-06T15:34:44.336Z","updated_at":"2025-05-07T13:41:41.661Z","avatar_url":"https://github.com/pekochan069.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# astro-datastar\n\nThis astro integration lets you use [Datastar](https://data-star.dev/) in your project.\n\n## How to use\n\nFirst install `datastar` and `astro-datastar` packages.\n\n```sh\nnpm install @pekochan069/astro-datastar\n```\n\n```sh\nbun add @pekochan069/astro-datastar\n```\n\n```sh\npnpm add @pekochan069/astro-datastar\n```\n\n```sh\ndeno add npm:@starfederation/datastar npm:@pekochan069/astro-datastar\n```\n\n```sh\nyarn add @pekochan069/astro-datastar\n```\n\nAfter installation, you need to add `astro-datastar` to your Astro configuration file.\n\n```diff\n  // astro.config.mjs\n  import { defineConfig } from \"astro/config\";\n+ import datastar from \"@pekochan069/astro-datastar\";\n\n  // https://astro.build/config\n  export default defineConfig({\n+   integrations: [datastar()],\n                   ^^^^^^^^^^\n  });\n```\n\n## Configuration\n\n### plugins\n\nYou can specify which plugins to be included using `plugins` options.\n\n```diff\n  // astro.config.mjs\n  import { defineConfig } from \"astro/config\";\n  import datastar from \"@pekochan069/astro-datastar\";\n\n  // https://astro.build/config\n  export default defineConfig({\n    integrations: [datastar({\n+     plugins: [\"on\", \"clipboard\"],\n      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n    })],\n  });\n```\n\n### noDefaultPlugins\n\nBy default, `astro-datastar` uses `datastar` bundle which includes all official plugins. If you set `noDefaultPlugins` to `true`, then `astro-datastar` will load `datastar-core` bundle instead, which doesn't include any plugins.\n\n```diff\n  // astro.config.mjs\n  import { defineConfig } from \"astro/config\";\n  import datastar from \"@pekochan069/astro-datastar\";\n\n  // https://astro.build/config\n  export default defineConfig({\n    integrations: [datastar({\n+     noDefaultPlugin: true,\n      ^^^^^^^^^^^^^^^^^^^^^^\n    })],\n  });\n```\n\n### entrypoint\n\nSimilar to [@astrojs/alpinejs](https://github.com/withastro/astro/tree/main/packages/integrations/alpinejs), `astro-datastar` supports custom entrypoint. With custom entrypoint, you have full control over which plugins are included, use custom plugins, etc.\n\n```diff\n  // astro.config.mjs\n  import { defineConfig } from \"astro/config\";\n  import datastar from \"@pekochan069/astro-datastar\";\n\n  // https://astro.build/config\n  export default defineConfig({\n    integrations: [datastar({\n+     entrypoint: \"/script/to/entrypoint.js\",\n      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n    })],\n  });\n```\n\n```js\n// script/to/entrypoint.js\nfunction customPlugin() {\n    ...\n}\n\nexport default (datastar) {\n  datastar.load(\n    customPlugin,\n  )\n}\n```\n\nIf you set `noDefaultPlugins` to `true`, you can modify the snippet below to include only you are actually using.\n\n```js\n// entrypoint.js\nimport { DELETE } from \"/node_modules/@starfederation/datastar/dist/plugins/official/backend/actions/delete\";\nimport { GET } from \"/node_modules/@starfederation/datastar/dist/plugins/official/backend/actions/get\";\nimport { PATCH } from \"/node_modules/@starfederation/datastar/dist/plugins/official/backend/actions/patch\";\nimport { POST } from \"/node_modules/@starfederation/datastar/dist/plugins/official/backend/actions/post\";\nimport { PUT } from \"/node_modules/@starfederation/datastar/dist/plugins/official/backend/actions/put\";\nimport { Indicator } from \"/node_modules/@starfederation/datastar/dist/plugins/official/backend/attributes/indicator\";\nimport { ExecuteScript } from \"/node_modules/@starfederation/datastar/dist/plugins/official/backend/watchers/executeScript\";\nimport { MergeFragments } from \"/node_modules/@starfederation/datastar/dist/plugins/official/backend/watchers/mergeFragments\";\nimport { MergeSignals } from \"/node_modules/@starfederation/datastar/dist/plugins/official/backend/watchers/mergeSignals\";\nimport { RemoveFragments } from \"/node_modules/@starfederation/datastar/dist/plugins/official/backend/watchers/removeFragments\";\nimport { RemoveSignals } from \"/node_modules/@starfederation/datastar/dist/plugins/official/backend/watchers/removeSignals\";\nimport { Clipboard } from \"/node_modules/@starfederation/datastar/dist/plugins/official/browser/actions/clipboard\";\nimport { CustomValidity } from \"/node_modules/@starfederation/datastar/dist/plugins/official/browser/attributes/customValidity\";\nimport { Intersects } from \"/node_modules/@starfederation/datastar/dist/plugins/official/browser/attributes/intersects\";\nimport { Persist } from \"/node_modules/@starfederation/datastar/dist/plugins/official/browser/attributes/persist\";\nimport { ReplaceUrl } from \"/node_modules/@starfederation/datastar/dist/plugins/official/browser/attributes/replaceUrl\";\nimport { ScrollIntoView } from \"/node_modules/@starfederation/datastar/dist/plugins/official/browser/attributes/scrollIntoView\";\nimport { Show } from \"/node_modules/@starfederation/datastar/dist/plugins/official/browser/attributes/show\";\nimport { ViewTransition } from \"/node_modules/@starfederation/datastar/dist/plugins/official/browser/attributes/viewTransition\";\nimport { Attr } from \"/node_modules/@starfederation/datastar/dist/plugins/official/dom/attributes/attr\";\nimport { Bind } from \"/node_modules/@starfederation/datastar/dist/plugins/official/dom/attributes/bind\";\nimport { Class } from \"/node_modules/@starfederation/datastar/dist/plugins/official/dom/attributes/class\";\nimport { On } from \"/node_modules/@starfederation/datastar/dist/plugins/official/dom/attributes/on\";\nimport { Ref } from \"/node_modules/@starfederation/datastar/dist/plugins/official/dom/attributes/ref\";\nimport { Text } from \"/node_modules/@starfederation/datastar/dist/plugins/official/dom/attributes/text\";\nimport { Fit } from \"/node_modules/@starfederation/datastar/dist/plugins/official/logic/actions/fit\";\nimport { SetAll } from \"/node_modules/@starfederation/datastar/dist/plugins/official/logic/actions/setAll\";\nimport { ToggleAll } from \"/node_modules/@starfederation/datastar/dist/plugins/official/logic/actions/toggleAll\";\n\nexport default (datastar) =\u003e {\n  datastar.load(\n    DELETE,\n    GET,\n    PATCH,\n    POST,\n    PUT,\n    Indicator,\n    ExecuteScript,\n    MergeFragments,\n    MergeSignals,\n    RemoveFragments,\n    RemoveSignals,\n    Clipboard,\n    CustomValidity,\n    Intersects,\n    Persist,\n    ReplaceUrl,\n    ScrollIntoView,\n    Show,\n    ViewTransition,\n    Attr,\n    Bind,\n    Class,\n    On,\n    Ref,\n    Text,\n    Fit,\n    SetAll,\n    ToggleAll,\n  );\n};\n```\n\n- [Astro Alpine Doc](https://docs.astro.build/en/guides/integrations-guide/alpinejs/#entrypoint)\n\n## Astro\n\nentrypoint part was copied from astro's alpine integration. Huge Thanks to the Astro team for creating such a wonderful framework!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpekochan069%2Fastro-datastar","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpekochan069%2Fastro-datastar","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpekochan069%2Fastro-datastar/lists"}