{"id":18764461,"url":"https://github.com/theintern/common","last_synced_at":"2025-04-13T04:33:32.630Z","repository":{"id":32982888,"uuid":"145163989","full_name":"theintern/common","owner":"theintern","description":"Common functionality for Intern projects","archived":false,"fork":false,"pushed_at":"2023-03-04T02:47:36.000Z","size":1419,"stargazers_count":2,"open_issues_count":7,"forks_count":2,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-03-26T21:47:17.748Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/theintern.png","metadata":{"files":{"readme":"README.md","changelog":null,"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":"2018-08-17T20:30:53.000Z","updated_at":"2021-07-12T19:24:22.000Z","dependencies_parsed_at":"2024-06-18T21:22:25.818Z","dependency_job_id":"3db3e8db-e6f2-4b2b-aac7-d38befb84125","html_url":"https://github.com/theintern/common","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theintern%2Fcommon","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theintern%2Fcommon/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theintern%2Fcommon/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theintern%2Fcommon/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/theintern","download_url":"https://codeload.github.com/theintern/common/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248664694,"owners_count":21142012,"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":[],"created_at":"2024-11-07T18:29:54.386Z","updated_at":"2025-04-13T04:33:32.336Z","avatar_url":"https://github.com/theintern.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# intern-common\n\nThis repository contains common library code used by Intern projects. It's\nessentially a subset of [@dojo/core](https://github.com/dojo/core) and\n[@dojo/shim](https://github.com/dojo/shim), extracted to prevent circular\ndependencies between Dojo and Intern.\n\nWhile the implementations of `Task`, `Evented`, and the various utility\nfunctions are very similar (and in some cases the same as) their @dojo\ncounterparts, there are a few differences. Probably the most significant is with\nthe `request` module, which uses a simpler API that Dojo's `request` and is\nbacked by [axios](https://github.com/axios/axios).\n\n## Usage\n\nThis package exports its public interface through its base import:\n\n```js\nimport { Task, Evented, request } from '@theintern/common';\n```\n\n## Features\n\nThe following concrete exports are provided:\n\n- **Evented:** Base class for event emitters\n- **Task:** Cancellable promise\n- **global:** Pointer to the global object (e.g., `window`)\n- **request:** Simple network request module\n- **createHandle:** Create a handle that can be used to cleanup resources\n- **createCompositeHandle:** Create an aggregate Handle\n- **deepMixin:** Deeply one or more objects into a target object\n- **duplicate:** Deep copy an object\n- **partial:** Create a function from a base function by binding one or more\n  arguments of the base function to given values\n\n## Development\n\nThe development flow is standard:\n\n1.  `npm install`\n2.  `npm run build` (or `npm run watch`)\n3.  `npm test` to run tests\n\nThe build process creates four webpack bundles in `_build/`: one is the\ndistributable `index.js`, two are for unit tests (browser and Node), and one is\nfor integration tests.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftheintern%2Fcommon","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftheintern%2Fcommon","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftheintern%2Fcommon/lists"}