{"id":21339860,"url":"https://github.com/webextensions/helpmate","last_synced_at":"2025-07-16T11:39:28.165Z","repository":{"id":33710469,"uuid":"37363893","full_name":"webextensions/helpmate","owner":"webextensions","description":"Helpmate - A collection of various helper functions for Browser and Node.js","archived":false,"fork":false,"pushed_at":"2024-09-21T09:23:06.000Z","size":1674,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":5,"default_branch":"main","last_synced_at":"2024-11-02T06:09:02.003Z","etag":null,"topics":["functions","helper","javascript","utils"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/webextensions.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":"2015-06-13T08:23:55.000Z","updated_at":"2024-09-21T09:23:18.000Z","dependencies_parsed_at":"2024-01-18T22:41:22.233Z","dependency_job_id":"48cdd984-8cbd-451c-9c3c-6ba3fca90811","html_url":"https://github.com/webextensions/helpmate","commit_stats":{"total_commits":62,"total_committers":4,"mean_commits":15.5,"dds":0.3548387096774194,"last_synced_commit":"d7807f28f30cd609376bb51cd52f81b0f9da418a"},"previous_names":[],"tags_count":39,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webextensions%2Fhelpmate","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webextensions%2Fhelpmate/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webextensions%2Fhelpmate/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webextensions%2Fhelpmate/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/webextensions","download_url":"https://codeload.github.com/webextensions/helpmate/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225825068,"owners_count":17529905,"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":["functions","helper","javascript","utils"],"created_at":"2024-11-22T00:47:46.672Z","updated_at":"2025-07-12T14:32:43.755Z","avatar_url":"https://github.com/webextensions.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# helpmate\nHelpmate - A collection of various helper functions for Browser and Node.js\n\n## Example Usages\n\n```js\n// Recommended:\nimport { retryNTimesWithDelay } from 'helpmate/dist/scheduler/retryNTimesWithDelay.js';\nconst { retryNTimesWithDelay } = require('helpmate/dist/scheduler/retryNTimesWithDelay.cjs');\n\n// Grouped:\nimport { scheduler } from 'helpmate/dist/scheduler/index.js';\nconst { scheduler } = require('helpmate/dist/scheduler/index.cjs');\n\n// All-in-one:\nimport { helpmate } from 'helpmate';\nconst { helpmate } = require('helpmate');\n```\n\n## List of available `import` / `require`\n\n```js\n// Load with \"import\" syntax:\n\nimport { sortArrayOfObjectsByProperty } from 'helpmate/dist/array/sortArrayOfObjectsByProperty.js';\nimport { array } from 'helpmate/dist/array/index.js';\n\nimport { eachOfLimitInOrder } from 'helpmate/dist/async/eachOfLimitInOrder.js';\nimport { async } from 'helpmate/dist/async/index.js';\n\nimport { copyToClipboard } from 'helpmate/dist/browser/copyToClipboard.js';\nimport { getBrowser } from 'helpmate/dist/browser/getBrowser.js';\nimport { safeLocalStorage } from 'helpmate/dist/browser/safeLocalStorage.js';\nimport { safeLocalStorageSimple } from 'helpmate/dist/browser/safeLocalStorageSimple.js';\nimport { browser } from 'helpmate/dist/browser/index.js';\n\nimport { tryCatch } from 'helpmate/dist/control/tryCatch.js';\nimport { control } from 'helpmate/dist/control/index.js';\n\nimport { alertDialog } from 'helpmate/dist/dom/alertDialog.js';\nimport { forceBlur } from 'helpmate/dist/dom/forceBlur.js';\nimport { dom } from 'helpmate/dist/dom/index.js';\n\nimport { isValidEmail } from 'helpmate/dist/forms/isValidEmail.js';\nimport { forms } from 'helpmate/dist/forms/index.js';\n\nimport { readFileLineByLineAsync } from 'helpmate/dist/fs/readFileLineByLineAsync.js';\nimport { updateFileIfRequired } from 'helpmate/dist/fs/updateFileIfRequired.js';\nimport { fs } from 'helpmate/dist/fs/index.js';\n\nimport { createUsePrevious } from 'helpmate/dist/hooks/createUsePrevious.js';\nimport { useMinHeight } from 'helpmate/dist/hooks/useMinHeight.js';\nimport { hooks } from 'helpmate/dist/hooks/index.js';\n\nimport { hashMergeProperties } from 'helpmate/dist/json/hashMergeProperties.js';\nimport { json } from 'helpmate/dist/json/index.js';\n\nimport { noteDown } from 'helpmate/dist/logger/noteDown.js';\nimport { logger } from 'helpmate/dist/logger/index.js';\n\nimport { getReadableRelativeTime } from 'helpmate/dist/misc/getReadableRelativeTime.js';\nimport { htmlEscape } from 'helpmate/dist/misc/htmlEscape.js';\nimport { humanReadableByteSize } from 'helpmate/dist/misc/humanReadableByteSize.js';\nimport { trackTime } from 'helpmate/dist/misc/trackTime.js';\nimport { misc } from 'helpmate/dist/misc/index.js';\n\nimport { occasionally } from 'helpmate/dist/scheduler/occasionally.js';\nimport { retryNTimesWithDelay } from 'helpmate/dist/scheduler/retryNTimesWithDelay.js';\nimport { timeout } from 'helpmate/dist/scheduler/timeout.js';\nimport { scheduler } from 'helpmate/dist/scheduler/index.js';\n\nimport { isValidUuidV4 } from 'helpmate/dist/uuid/isValidUuidV4.js';\nimport { randomUUID } from 'helpmate/dist/uuid/randomUUID.js';\nimport { uuid } from 'helpmate/dist/uuid/index.js';\n\nimport { isLoadedInDeveloperMode } from 'helpmate/dist/webextensions/isLoadedInDeveloperMode.js';\nimport { webextensions } from 'helpmate/dist/webextensions/index.js';\n\nimport { helpmate } from 'helpmate/dist/index.js';\nimport { helpmate } from 'helpmate';\n\n\n// Load with \"require\" syntax:\n\nconst { sortArrayOfObjectsByProperty } = require('helpmate/dist/array/sortArrayOfObjectsByProperty.cjs');\nconst { array } = require('helpmate/dist/array/index.cjs');\n\nconst { eachOfLimitInOrder } = require('helpmate/dist/async/eachOfLimitInOrder.cjs');\nconst { async } = require('helpmate/dist/async/index.cjs');\n\nconst { copyToClipboard } = require('helpmate/dist/browser/copyToClipboard.cjs');\nconst { getBrowser } = require('helpmate/dist/browser/getBrowser.cjs');\nconst { safeLocalStorage } = require('helpmate/dist/browser/safeLocalStorage.cjs');\nconst { safeLocalStorageSimple } = require('helpmate/dist/browser/safeLocalStorageSimple.cjs');\nconst { browser } = require('helpmate/dist/browser/index.cjs');\n\nconst { tryCatch } = require('helpmate/dist/control/tryCatch.cjs');\nconst { control } = require('helpmate/dist/control/index.cjs');\n\nconst { alertDialog } = require('helpmate/dist/dom/alertDialog.cjs');\nconst { forceBlur } = require('helpmate/dist/dom/forceBlur.cjs');\nconst { dom } = require('helpmate/dist/dom/index.cjs');\n\nconst { isValidEmail } = require('helpmate/dist/forms/isValidEmail.cjs');\nconst { forms } = require('helpmate/dist/forms/index.cjs');\n\nconst { readFileLineByLineAsync } = require('helpmate/dist/fs/readFileLineByLineAsync.cjs');\nconst { updateFileIfRequired } = require('helpmate/dist/fs/updateFileIfRequired.cjs');\nconst { fs } = require('helpmate/dist/fs/index.cjs');\n\nconst { createUsePrevious } = require('helpmate/dist/hooks/createUsePrevious.cjs');\nconst { useMinHeight } = require('helpmate/dist/hooks/useMinHeight.cjs');\nconst { hooks } = require('helpmate/dist/hooks/index.cjs');\n\nconst { hashMergeProperties } = require('helpmate/dist/json/hashMergeProperties.cjs');\nconst { json } = require('helpmate/dist/json/index.cjs');\n\nconst { noteDown } = require('helpmate/dist/logger/noteDown.cjs');\nconst { logger } = require('helpmate/dist/logger/index.cjs');\n\nconst { getReadableRelativeTime } = require('helpmate/dist/misc/getReadableRelativeTime.cjs');\nconst { htmlEscape } = require('helpmate/dist/misc/htmlEscape.cjs');\nconst { humanReadableByteSize } = require('helpmate/dist/misc/humanReadableByteSize.cjs');\nconst { trackTime } = require('helpmate/dist/misc/trackTime.cjs');\nconst { misc } = require('helpmate/dist/misc/index.cjs');\n\nconst { occasionally } = require('helpmate/dist/scheduler/occasionally.cjs');\nconst { retryNTimesWithDelay } = require('helpmate/dist/scheduler/retryNTimesWithDelay.cjs');\nconst { timeout } = require('helpmate/dist/scheduler/timeout.cjs');\nconst { scheduler } = require('helpmate/dist/scheduler/index.cjs');\n\nconst { isValidUuidV4 } = require('helpmate/dist/uuid/isValidUuidV4.cjs');\nconst { randomUUID } = require('helpmate/dist/uuid/randomUUID.cjs');\nconst { uuid } = require('helpmate/dist/uuid/index.cjs');\n\nconst { isLoadedInDeveloperMode } = require('helpmate/dist/webextensions/isLoadedInDeveloperMode.cjs');\nconst { webextensions } = require('helpmate/dist/webextensions/index.cjs');\n\nconst { helpmate } = require('helpmate/dist/index.cjs');\nconst { helpmate } = require('helpmate');\n```\n\n## List of files\n\n```\nsrc/array/sortArrayOfObjectsByProperty.js\nsrc/array/index.js\n\nsrc/async/eachOfLimitInOrder.js\nsrc/async/index.js\n\nsrc/browser/copyToClipboard.js\nsrc/browser/getBrowser.js\nsrc/browser/safeLocalStorage.js\nsrc/browser/safeLocalStorageSimple.js\nsrc/browser/index.js\n\nsrc/control/tryCatch.js\nsrc/control/index.js\n\nsrc/dom/alertDialog.js\nsrc/dom/forceBlur.js\nsrc/dom/index.js\n\nsrc/forms/isValidEmail.js\nsrc/forms/index.js\n\nsrc/fs/readFileLineByLineAsync.js\nsrc/fs/updateFileIfRequired.js\nsrc/fs/index.js\n\nsrc/hooks/createUsePrevious.js\nsrc/hooks/useMinHeight.js\nsrc/hooks/index.js\n\nsrc/json/hashMergeProperties.js\nsrc/json/index.js\n\nsrc/logger/noteDown.js\nsrc/logger/index.js\n\nsrc/misc/getReadableRelativeTime.js\nsrc/misc/htmlEscape.js\nsrc/misc/humanReadableByteSize.js\nsrc/misc/trackTime.js\nsrc/misc/index.js\n\nsrc/scheduler/occasionally.js\nsrc/scheduler/retryNTimesWithDelay.js\nsrc/scheduler/timeout.js\nsrc/scheduler/index.js\n\nsrc/uuid/isValidUuidV4.js\nsrc/uuid/randomUUID.js\nsrc/uuid/index.js\n\nsrc/webextensions/isLoadedInDeveloperMode.js\nsrc/webextensions/index.js\n\nsrc/index.js\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwebextensions%2Fhelpmate","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwebextensions%2Fhelpmate","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwebextensions%2Fhelpmate/lists"}