Skip to content

feat: Ditch bluebird, lodash and plist#173

Merged
mykola-mokhnach merged 3 commits intoappium:masterfrom
mykola-mokhnach:deps
Apr 27, 2026
Merged

feat: Ditch bluebird, lodash and plist#173
mykola-mokhnach merged 3 commits intoappium:masterfrom
mykola-mokhnach:deps

Conversation

@mykola-mokhnach
Copy link
Copy Markdown
Contributor

No description provided.

@mykola-mokhnach mykola-mokhnach merged commit a7c88ca into appium:master Apr 27, 2026
9 checks passed
@mykola-mokhnach mykola-mokhnach deleted the deps branch April 27, 2026 15:54
github-actions Bot pushed a commit that referenced this pull request Apr 27, 2026
## [6.2.0](v6.1.10...v6.2.0) (2026-04-27)

### Features

* Ditch bluebird, lodash and plist ([#173](#173)) ([a7c88ca](a7c88ca))
@github-actions
Copy link
Copy Markdown

🎉 This PR is included in version 6.2.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR removes direct dependencies on bluebird, lodash, and plist by replacing their usages with native APIs and in-house helpers, and migrates the test suite to TypeScript.

Changes:

  • Remove bluebird, lodash, and plist from package.json and replace usages in lib/ with native equivalents.
  • Introduce a local memoize helper and replace lodash memoization in lib/xcode.ts.
  • Convert unit/e2e tests from JS to TS and update mocha/tsconfig configuration accordingly.

Reviewed changes

Copilot reviewed 7 out of 8 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
tsconfig.json Adds mocha types and includes tests in the TS project.
package.json Removes deps/types and updates mocha globs to run *-specs.ts.
lib/helpers.ts Removes lodash/bluebird usage; adds memoize; switches to Promise.all and native string trimming.
lib/xcode.ts Replaces lodash helpers/memoize with local implementations.
test/unit/index-specs.ts Switches chai usage from dynamic import/should to expect.
test/unit/helpers-specs.ts Adds unit tests for the new memoize helper.
test/e2e/xcode-specs.ts Replaces JS e2e specs with TypeScript + chai-as-promised.
test/e2e/xcode-specs.js Removes the old JS e2e specs.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread lib/helpers.ts
Comment on lines +14 to +24
export function memoize<Args extends unknown[], Result>(
fn: (...args: Args) => Result,
): (...args: Args) => Result {
const cache = new Map<string, Result>();
return (...args: Args): Result => {
const key = JSON.stringify(args);
if (!cache.has(key)) {
cache.set(key, fn(...args));
}
return cache.get(key) as Result;
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants