Skip to content

feat(react-native-appsflyer): complete definition #42158

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged

Conversation

fabianlee1211
Copy link
Contributor

@fabianlee1211 fabianlee1211 commented Feb 6, 2020

Please fill in this template.

  • Use a meaningful title for the pull request. Include the name of the package modified.
  • Test the change in your own code. (Compile and run.)
  • Add or edit tests to reflect the change. (Run with npm test.)
  • Follow the advice from the readme.
  • Avoid common mistakes.
  • Run npm run lint package-name (or tsc if no tslint.json is present).

Select one of these and delete the others:

If adding a new definition:

  • The package does not already provide its own types, or cannot have its .d.ts files generated via --declaration
  • If this is for an NPM package, match the name. If not, do not conflict with the name of an NPM package.
  • Create it with dts-gen --dt, not by basing it on an existing project.
  • Represents shape of module/library correctly
  • tslint.json should be present and it shouldn't have any additional or disabling of rules. Just content as { "extends": "dtslint/dt.json" }. If for reason the some rule need to be disabled, disable it for that line using // tslint:disable-next-line [ruleName] and not for whole package so that the need for disabling can be reviewed.
  • tsconfig.json should have noImplicitAny, noImplicitThis, strictNullChecks, and strictFunctionTypes set to true.

Hello there,

This is a package definition for React Native AppsFlyer.

Package: https://www.npmjs.com/package/react-native-appsflyer
Source: https://github.com/AppsFlyerSDK/react-native-appsflyer

Cheers!

@typescript-bot
Copy link
Contributor

👋 Hi there! I’ve run some quick measurements against master and your PR. These metrics should help the humans reviewing this PR gauge whether it might negatively affect compile times or editor responsiveness for users who install these typings.

Let’s review the numbers, shall we?

These typings are for a package that doesn’t yet exist on master, so I don’t have anything to compare against yet! In the future, I’ll be able to compare PRs to react-native-appsflyer with its source on master.

Comparison details 📊
Batch compilation
Type count 2219
Assignability cache size 120
Language service measurements
Samples taken 53
Identifiers in tests 53
getCompletionsAtPosition
    Mean duration (ms) 83.2
    Mean CV 24.7%
    Worst duration (ms) 118.2
    Worst identifier appsFlyer
getQuickInfoAtPosition
    Mean duration (ms) 83.7
    Mean CV 24.7%
    Worst duration (ms) 109.7
    Worst identifier getAppsFlyerUID
System information
Node version v12.14.1
CPU count 2
CPU speed 2.397 GHz
CPU model Intel(R) Xeon(R) CPU E5-2673 v3 @ 2.40GHz
CPU Architecture x64
Memory 6.8 GiB
Platform linux
Release 4.15.0-1066-azure

@typescript-bot typescript-bot added New Definition This PR creates a new definition package. Awaiting reviewer feedback labels Feb 6, 2020
@typescript-bot
Copy link
Contributor

typescript-bot commented Feb 6, 2020

@fabianlee1211 Thank you for submitting this PR!

Because this is a new definition, a DefinitelyTyped maintainer will be reviewing this PR in the next few days once the Travis CI build passes.

In the meantime, if the build fails or a merge conflict occurs, I'll let you know. Have a nice day!

function setDeviceTrackingDisabled(isDeviceTrackingDisabled: boolean, success?: SuccessCallback): void;
}

export default appsFlyer;
Copy link
Contributor

Choose a reason for hiding this comment

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

I'm not familiar at all with what exporting a default namespace is supposed to do (I didn't think it was even supported). Can you help me out? Thanks!

Copy link
Contributor Author

@fabianlee1211 fabianlee1211 Feb 9, 2020

Choose a reason for hiding this comment

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

I'll be honest that I'm not an expert in TS, I referenced other libraries here and came up with writing it this way.

The way I think of it was to follow how the library is implemented, which is just a bunch of methods attached to a JS object. I was trying to do the same with namespace so that it follows how the library APIs are used i.e appsFlyer.<method>.

Thanks for reviewing though! I'm learning along the way.

About supporting export default namespace, I suppose it is related to this PR.
microsoft/TypeScript#18628

@sandersn sandersn merged commit b2732e5 into DefinitelyTyped:master Feb 10, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
New Definition This PR creates a new definition package.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants