{"id":16529440,"url":"https://github.com/brandonkal/deno-lib","last_synced_at":"2025-06-21T21:05:29.590Z","repository":{"id":71105112,"uuid":"233455863","full_name":"brandonkal/deno-lib","owner":"brandonkal","description":"A large collection of useful Typescript libraries for Deno","archived":false,"fork":false,"pushed_at":"2024-06-14T18:59:00.000Z","size":1248,"stargazers_count":10,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-24T11:49:56.618Z","etag":null,"topics":["dedent","deno","deno-lib","kubernetes","merge","promises","typescript-libraries","utils","yaml","yaml-tag"],"latest_commit_sha":null,"homepage":"https://deno.land/x/lib/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/brandonkal.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2020-01-12T20:43:48.000Z","updated_at":"2025-03-17T05:24:50.000Z","dependencies_parsed_at":"2024-06-21T15:29:59.668Z","dependency_job_id":null,"html_url":"https://github.com/brandonkal/deno-lib","commit_stats":{"total_commits":288,"total_committers":1,"mean_commits":288.0,"dds":0.0,"last_synced_commit":"66600c0a8eb44366d0d34d0ff4e6745b945bb49e"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/brandonkal/deno-lib","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brandonkal%2Fdeno-lib","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brandonkal%2Fdeno-lib/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brandonkal%2Fdeno-lib/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brandonkal%2Fdeno-lib/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/brandonkal","download_url":"https://codeload.github.com/brandonkal/deno-lib/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brandonkal%2Fdeno-lib/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261193094,"owners_count":23122905,"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":["dedent","deno","deno-lib","kubernetes","merge","promises","typescript-libraries","utils","yaml","yaml-tag"],"created_at":"2024-10-11T17:44:51.079Z","updated_at":"2025-06-21T21:05:24.575Z","avatar_url":"https://github.com/brandonkal.png","language":"TypeScript","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"readme":"# Deno lib\n\nA large collection of useful Typescript libraries for Deno.\nEach utility is provided in its own file at the root.\n\nThis monorepo also includes a few related npm modules to make working with Deno better.\n\n## Usage\n\nCheck the license information for the functionality you want. If permitted, import the functions you need.\n\n```ts\nimport * as yamlTag from 'https://x.kite.run/lib/yaml-tag.ts'\n```\n\nThis library used to be available at `deno.land/x/lib`.\nAfter the Deno team decided to break import URLs, the canonical import domain came into being.\n\n\u003c!--Included Utilites section is generated by doc-gen.ts and cleaned up by hand--\u003e\n\n## Included Utilities\n\n### abort-iterator.ts\n\nCreates an iterator that is abortable. Based on the npm package by the same name\n\n### archieml.js\n\nParse a string of text as ArchieML.\n\n### args.ts\n\nUtilities for parsing CLI arguments.\n\n### debug.ts\n\nDebugging utility for Deno. Ported from the npm package by the same name.\n\n### dedent.ts\n\nDedent is a tagged template literal function.\nIt is used by yaml-tag.ts and has tests to ensure consistency with a whitespace-sensitive content.\n\n### doc-gen.ts\n\nParse File-level JSDoc from a folder of TS/JS files for document generation\n\n### drone.ts\n\nTypeScript types for Drone CI configuration.\n\n### emittery.ts\n\nSimple and modern async event emitter\nPorted from the node module@0.7.1\n\n### function.ts\n\nKite™️ Support for OpenFaaS Functions.\n\n### go.ts\n\nSimplified async error handling in TypeScript.\n\n### hash-object.ts\n\nTake a JavaScript object and compute a sha256 hash of it for comparison.\n\n### http-cache-semantics.ts\n\nParses Cache-Control and other headers. Helps building correct HTTP caches and proxies.\nPorted from the npm package by the same name. Code optained via the BSD-2 license. See attribution below.\n\n### karabiner.ts\n\nA library and DSL to generate karabiner.json config. Can result in a 30x line reduction.\n\n1. Call rule()\n2. Call out()\n\n### kite.ts\n\nKite™️ is a Simplified Config Generation Library\nGround Rules:\n\n1. No async code. Ever.\n2. No console.log\n3. post-processors cannot generate new objects\n4. Everything is a function. Export it as default and optionally call make() if import.meta.main\n5. Contract: All module functions should be a function that accepts or ignores one object argument.\n6. make() should always be in scope for all config gen modules.\n\n### kubernetes.ts\n\nKubernetes Config Generation Library\nRefer to kite.ts for more info.\n\n### kx.ts\n\nkx is a simplified Kubernetes Config SDK for Kite.\n\n### magic-string.js\n\nManipulate strings like a wizard\nNOTE: This is the ES bundle with the sourcemap-codec import corrected.\nSource is available at\nhttps://cdn.jsdelivr.net/npm/magic-string@0.25.6/dist/magic-string.es.js\n\n### md5-apache.ts\n\nA port of npm/apache-md5 for use with htpasswd.\nPortions of this work were obtained via the MIT License. Copyright (c) Gevorg Harutyunyan.\n\n### merge.ts\n\nProvides generic object merging functions. Useful for config generation.\nPortions of this work were obtained via the Apache 2.0 License.\nThat original work is Copyright 2020, jk authors.\n\n### proxymise.ts\n\nChainable Promise Proxy utility.\nProxymise allows for method and property chaining without need for intermediate\nthen() or await for cleaner and simpler code.\n@see https://github.com/kozhevnikov/proxymise\n\n### quokka-shim.ts\n\nA shim for test functions when running Deno code.\nConsider using @brandonkal/deno-quokka and babel-plugin-deno npm packages for\na more robust debugging experience.\n\n### reload.ts\n\nCLI to reload Deno files as required. Pass number of commits to have the files reloaded.\n\n### resolve-object.ts\n\nRecursively resolve any promises in an object to form a resulting JSON structure.\n\n### resolve-promise-object.ts\n\nRecursively resolve any promises in an object to form a resulting JSON structure.\n\n### retry.ts\n\nRetry an async function for exponential backoff. With a retryFetch implementation.\n\n### runtypes.ts\n\nA Deno port of the great RunTypes library. Use TypeScript in the runtime.\nPort introduces loose conversion. This means a check() call may\nmodify if a property required.\nPrimitives should be assigned to themselves.\n\"false\" | \"true\" \u003e boolean\n\"null\" \u003e null\n\"42\" \u003e 42\nSee https://github.com/brandonkal/runtypes\n\n### shellbox.ts\n\nUtilities to sandbox subprocess commands\n\n### sourcemap-codec.ts\n\nEncode/decode sourcemap mappings\n\n### testutils.ts\n\nUtilities for testing. Replicates expect from Jest.\n\n### to_aml.js\n\nConverts JSON structure to ArchieML text string.\n\n### unraw.ts\n\nUndo `String.raw`.\nConvert raw escape sequences to their respective characters.\n\n### utils.ts\n\nA collection of useful small functions in one location.\n\n### yaml-formatter.ts\n\nParses YAML or JSON input and prints out YAML documents with a stable object sort.\nIdeal for converting JSON to YAML.\nUseful as a lightweight CLI or as a formatting function.\n\n### yaml-tag.ts\n\nWrite YAML within TypeScript programs for cleaner and more concise code.\nThis module provides the following exports:\n\n- y (yaml text tagged template function)\n- printYaml (JS Object Array to YAML multi-document text)\n\n## Others\n\n### @brandonkal/deno-quokka\n\nThis npm module provides basic Quokka.js support for executing Deno files. This helps speed up development of Deno libraries such as `yaml-tag.ts`.\n\n### babel-plugin-deno\n\nThis npm module rewrites imports to use the cache directory.\n\nIt can be used in combination with `@brandonkal/deno-quokka` for an interactive REPL for some Deno-flavored TypeScript code.\n\n### npm/register.js\n\nDebug a Deno program via Node.\n\n## Contributions Welcome\n\nContributions or requests for focused utilities are encouraged.\n\n## License\n\n© 2020 Brandon Kalinowski (@brandonkal). All rights reserved.\n\nNot all files are released under a permissive open source license (though many are).\nIn particular, the modules in the `kite` directory do not carry an open-source license.\n\nSee individual file headers for license information.\nFiles without headers are © Brandon Kalinowski (@brandonkal). All rights reserved.\n\nIf a file contains no specified license, no license has been provided.\n\n### Why\n\nIt's simple really. Each module in this repository could have been released in its own repository.\nIn the npm world, that would mean a seperate _package_. Each of those would contain their own license.\nWith Deno, files are modules. The file is the distributed content. There is no \"minification\" step.\nTherefore, it is smarter to specify license information inside the files.\nIt would be silly to provide a blanket license over the entire repository contents as that would require that a single license would apply to _all files_.\n\nThis approach also makes automation of license compliance simpler. The rules above are simple. You can use `doc-gen.ts` or another JSDoc parser to scan the file's structured header block for all your imports.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrandonkal%2Fdeno-lib","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbrandonkal%2Fdeno-lib","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrandonkal%2Fdeno-lib/lists"}