Skip to main content
Glama
deno_distribution.bzl2.23 kB
"""Hermetic Deno toolchain distribution rules using S3 artifacts. Downloads pre-packaged Deno toolchains from si-artifacts-prod. Much simpler than the original - no complex extraction needed. """ load( "@prelude-si//toolchains:common.bzl", "create_distribution_provider", "create_download_distribution_function", "get_toolchain_checksum", "host_target", "target_to_os_arch", ) load( "@prelude-si//toolchains:extraction.bzl", "ToolchainExtractionInfo", ) # Deno version checksums for our S3 artifacts _DENO_S3_CHECKSUMS = { "2.2.12": { "linux": { "x86_64": "084d318f605f0d302ea2503b00082cfd97559f3a24286eb2970971344918a8cc", "aarch64": "2f1450598f09eff5a7457cb78a0bc32e8e61bd1b505f6f1893a2f5cbc845e4d1", }, "darwin": { "x86_64": "e5d4e8a4c53b7bc9812ea980d5c4a43c514811c3e92a6668d8771460c801934f", "aarch64": "bb7d95749f71863d89e03031cbc2f163af7259825d9feb95c6de3ac4cf3e8f60", }, }, } # Create provider using shared utility DenoDistributionInfo = create_distribution_provider({ "deno": provider_field(typing.Any, default = None), }) def _deno_field_mapper(ctx: AnalysisContext, extraction): """Map extraction to Deno-specific provider fields.""" return { "version": ctx.attrs.version, "target": ctx.attrs.target, "deno": cmd_args(extraction.bin_dir, "/deno", delimiter = ""), } def _deno_distribution_impl(ctx: AnalysisContext) -> list[Provider]: """Create Deno distribution from extracted S3 toolchain.""" extraction = ctx.attrs.extraction[ToolchainExtractionInfo] return [ DefaultInfo(), DenoDistributionInfo(**_deno_field_mapper(ctx, extraction)), ] deno_distribution = rule( impl = _deno_distribution_impl, attrs = { "version": attrs.string(), "target": attrs.string(), "extraction": attrs.dep(providers = [ToolchainExtractionInfo]), }, ) # Create download function using shared utility download_deno_distribution = create_download_distribution_function( family = "deno", checksums_dict = _DENO_S3_CHECKSUMS, distribution_rule = deno_distribution, toolchain_name = "Deno", )

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/systeminit/si'

If you have feedback or need assistance with the MCP directory API, please join our Discord server