diff --git a/.travis.yml b/.travis.yml index 33d383c..ab48905 100644 --- a/.travis.yml +++ b/.travis.yml @@ -15,5 +15,3 @@ script: - npm run check - npm run test - npm run build - # @TODO remove next command and `publishConfig` field in package.json when publishing as a public package in NPM registry - - if [[ $TRAVIS_BRANCH == "development" && $TRAVIS_EVENT_TYPE != "pull_request" ]]; then echo "publishing" ; curl -u${ARTIFACTORY_USER}:${ARTIFACTORY_PASSWORD} https://splitio.jfrog.io/artifactory/api/npm/auth >> ~/.npmrc ; npm publish --tag rc ; else echo "no publishing" ; fi diff --git a/CHANGES.txt b/CHANGES.txt new file mode 100644 index 0000000..16f65dc --- /dev/null +++ b/CHANGES.txt @@ -0,0 +1,2 @@ +0.0.1 (July 29, 2021) + - Initial public release. Check the official documentation for details: https://help.split.io/hc/en-us/articles/4406066357901 diff --git a/CONTRIBUTORS-GUIDE.md b/CONTRIBUTORS-GUIDE.md new file mode 100644 index 0000000..430b20c --- /dev/null +++ b/CONTRIBUTORS-GUIDE.md @@ -0,0 +1,47 @@ +# Contributing to the Split React Native SDK + +Split SDK is an open source project and we welcome feedback and contribution. The information below describes how to build the project with your changes, run the tests, and send the Pull Request(PR). + +## Development + +### Development process + +1. Fork the repository and create a topic branch from `development` branch. Please use a descriptive name for your branch. +2. While developing, use descriptive messages in your commits. Avoid short or meaningless sentences like: "fix bug". +3. Make sure to add tests for both positive and negative cases. +4. If your changes have any impact on the public API, make sure you update the TypeScript declaration files as well as it's related test file. +5. Run the linter script of the project and fix any issues you find. +6. Run the build script and make sure it runs with no errors. +7. Run all tests and make sure there are no failures. +8. `git push` your changes to GitHub within your topic branch. +9. Open a Pull Request(PR) from your forked repo and into the `development` branch of the original repository. +10. When creating your PR, please fill out all the fields of the PR template, as applicable, for the project. +11. Check for conflicts once the pull request is created to make sure your PR can be merged cleanly into `development`. +12. Keep an eye out for any feedback or comments from Split's SDK team. + +### Building the SDK + +The build is done with the command `npm run build`. Refer to [package.json](package.json) for more insight on the build script. + +### Running tests + +All tests can be run at once with the command `npm run test`. + +### Linting and other useful checks + +Consider running the linter and type check script (`npm run check`) and fixing any issues before pushing your changes. + +If you want to debug your changes consuming it from a test application, you could use the React Native App example at `/example` folder: + +```bash +cd example/ +npm install +npm run android # to run in an Android emulator +npm run ios # to run on a iOS emulator +``` + +Remember to check and follow the [React Native setting up guidelines](https://reactnative.dev/docs/environment-setup) before running the example. + +# Contact + +If you have any other questions or need to contact us directly in a private manner send us a note at sdks@split.io \ No newline at end of file diff --git a/README.md b/README.md index 6a33681..3d2e8f1 100644 --- a/README.md +++ b/README.md @@ -1 +1,78 @@ -# react-native-client \ No newline at end of file +# Split JavaScript SDK for React Native + +[![npm version](https://badge.fury.io/js/%40splitsoftware%2Fsplitio-react-native.svg)](https://badge.fury.io/js/%40splitsoftware%2Fsplitio) [![Build Status](https://travis-ci.com/splitio/react-native-client.svg?branch=main)](https://travis-ci.com/splitio/react-native-client) + +## Overview +This SDK is designed to work with Split, the platform for controlled rollouts, which serves features to your users via a Split feature flag to manage your complete customer experience. + +[![Twitter Follow](https://img.shields.io/twitter/follow/splitsoftware.svg?style=social&label=Follow&maxAge=1529000)](https://twitter.com/intent/follow?screen_name=splitsoftware) + +## Compatibility +The React Native SDK is a library for React Native applications. The library was build with native modules to support streaming in Android and iOS, and therefore it requires linking the native dependency in order to use streaming. For Expo applications, streaming is not supported by default but a polyfill can be used instead. Check our [public documentation](https://help.split.io/hc/en-us/articles/4406066357901) for installation details. + +## Getting started +Below is a simple App.jsx example that describes the instantiation and most basic usage of our SDK: +```javascript +// Import the SDK +import { SplitFactory } from '@splitsoftware/splitio-react-native'; + +// Instantiate the SDK +var factory = SplitFactory({ + core: { + authorizationKey: 'YOUR_SDK_API_KEY', + key: 'CUSTOMER_ID' + } +}); + +// Set a callback to listen for the SDK_READY event, to make sure the SDK is properly loaded before asking for a treatment +client.on(client.Event.SDK_READY, function() { + var treatment = client.getTreatment('SPLIT_NAME'); + if (treatment == 'on') { + // insert code here for on treatment + } else if (treatment == 'off') { + // insert code here for off treatment + } else { + // insert your control treatment code here + } +}); +``` + +Please refer to [React Native SDK](https://help.split.io/hc/en-us/articles/4406066357901) to learn about all the functionality provided by our SDK as well as specifics for configuration options available for tailoring it to your current application setup. + +## Submitting issues +The Split team monitors all issues submitted to this [issue tracker](https://github.com/splitio/react-native-client/issues). We encourage you to use this issue tracker to submit any bug reports, feedback, and feature enhancements. We'll do our best to respond in a timely manner. + +## Contributing +Please see [Contributors Guide](CONTRIBUTORS-GUIDE.md) to find all you need to submit a Pull Request (PR). + +## License +Licensed under the Apache License, Version 2.0. See: [Apache License](http://www.apache.org/licenses/). + +## About Split + +Split is the leading Feature Delivery Platform for engineering teams that want to confidently deploy features as fast as they can develop them. Split’s fine-grained management, real-time monitoring, and data-driven experimentation ensure that new features will improve the customer experience without breaking or degrading performance. Companies like Twilio, Salesforce, GoDaddy and WePay trust Split to power their feature delivery. + +To learn more about Split, contact hello@split.io, or get started with feature flags for free at https://www.split.io/signup. + +Split has built and maintains SDKs for: + +* .NET [Github](https://github.com/splitio/dotnet-client) [Docs](https://help.split.io/hc/en-us/articles/360020240172--NET-SDK) +* Android [Github](https://github.com/splitio/android-client) [Docs](https://help.split.io/hc/en-us/articles/360020343291-Android-SDK) +* GO [Github](https://github.com/splitio/go-client) [Docs](https://help.split.io/hc/en-us/articles/360020093652-Go-SDK) +* iOS [Github](https://github.com/splitio/ios-client) [Docs](https://help.split.io/hc/en-us/articles/360020401491-iOS-SDK) +* Java [Github](https://github.com/splitio/java-client) [Docs](https://help.split.io/hc/en-us/articles/360020405151-Java-SDK) +* Javascript [Github](https://github.com/splitio/javascript-client) [Docs](https://help.split.io/hc/en-us/articles/360020448791-JavaScript-SDK) +* Node [Github](https://github.com/splitio/javascript-client) [Docs](https://help.split.io/hc/en-us/articles/360020564931-Node-js-SDK) +* Javascript for Browser [Github](https://github.com/splitio/javascript-browser-client) [Docs](https://help.split.io/hc/en-us/articles/360058730852-Browser-SDK) +* Javascript for React Native [Github](https://github.com/splitio/react-native-client) [Docs](https://help.split.io/hc/en-us/articles/4406066357901) +* PHP [Github](https://github.com/splitio/php-client) [Docs](https://help.split.io/hc/en-us/articles/360020350372-PHP-SDK) +* Python [Github](https://github.com/splitio/python-client) [Docs](https://help.split.io/hc/en-us/articles/360020359652-Python-SDK) +* React [Github](https://github.com/splitio/react-client) [Docs](https://help.split.io/hc/en-us/articles/360038825091-React-SDK) +* Redux [Github](https://github.com/splitio/redux-client) [Docs](https://help.split.io/hc/en-us/articles/360038851551-Redux-SDK) +* Ruby [Github](https://github.com/splitio/ruby-client) [Docs](https://help.split.io/hc/en-us/articles/360020673251-Ruby-SDK) + +For a comprehensive list of open source projects visit our [Github page](https://github.com/splitio?utf8=%E2%9C%93&query=%20only%3Apublic%20). + +**Learn more about Split:** + +Visit [split.io/product](https://www.split.io/product) for an overview of Split, or visit our documentation at [help.split.io](http://help.split.io) for more detailed information. diff --git a/Split.podspec b/RNSplit.podspec similarity index 90% rename from Split.podspec rename to RNSplit.podspec index ad1948c..2024ced 100644 --- a/Split.podspec +++ b/RNSplit.podspec @@ -3,8 +3,8 @@ require "json" package = JSON.parse(File.read(File.join(__dir__, "package.json"))) Pod::Spec.new do |s| - s.name = "Split" - s.module_name = "Split" + s.name = "RNSplit" + s.module_name = "RNSplit" s.summary = package["description"] s.version = package["version"] s.author = package["author"] diff --git a/android/src/main/AndroidManifest.xml b/android/src/main/AndroidManifest.xml index 9585048..e7854c8 100644 --- a/android/src/main/AndroidManifest.xml +++ b/android/src/main/AndroidManifest.xml @@ -1,4 +1,4 @@ + package="io.split.rnsplit"> \ No newline at end of file diff --git a/android/src/main/java/com/github/jonnybgod/RNEventSource/RNEventSourceModule.java b/android/src/main/java/io/split/rnsplit/RNEventSourceModule.java similarity index 99% rename from android/src/main/java/com/github/jonnybgod/RNEventSource/RNEventSourceModule.java rename to android/src/main/java/io/split/rnsplit/RNEventSourceModule.java index b5c82ae..6985585 100644 --- a/android/src/main/java/com/github/jonnybgod/RNEventSource/RNEventSourceModule.java +++ b/android/src/main/java/io/split/rnsplit/RNEventSourceModule.java @@ -1,4 +1,4 @@ -package com.github.jonnybgod.RNEventSource; +package io.split.rnsplit; import java.io.IOException; diff --git a/android/src/main/java/com/github/jonnybgod/RNEventSource/RNEventSourcePackage.java b/android/src/main/java/io/split/rnsplit/RNSplitPackage.java similarity index 85% rename from android/src/main/java/com/github/jonnybgod/RNEventSource/RNEventSourcePackage.java rename to android/src/main/java/io/split/rnsplit/RNSplitPackage.java index 67bc65c..ae7c59c 100644 --- a/android/src/main/java/com/github/jonnybgod/RNEventSource/RNEventSourcePackage.java +++ b/android/src/main/java/io/split/rnsplit/RNSplitPackage.java @@ -1,4 +1,4 @@ -package com.github.jonnybgod.RNEventSource; +package io.split.rnsplit; import java.util.Arrays; import java.util.ArrayList; @@ -11,9 +11,9 @@ import com.facebook.react.uimanager.ViewManager; import com.facebook.react.bridge.JavaScriptModule; -public class RNEventSourcePackage implements ReactPackage { +public class RNSplitPackage implements ReactPackage { - public RNEventSourcePackage() {} + public RNSplitPackage() {} @Override public List createNativeModules( diff --git a/example/android/app/src/main/java/com/example/MainApplication.java b/example/android/app/src/main/java/com/example/MainApplication.java index efccbad..9bd282d 100644 --- a/example/android/app/src/main/java/com/example/MainApplication.java +++ b/example/android/app/src/main/java/com/example/MainApplication.java @@ -10,7 +10,7 @@ import com.facebook.soloader.SoLoader; import java.lang.reflect.InvocationTargetException; import java.util.List; -import com.github.jonnybgod.RNEventSource.RNEventSourcePackage; +import io.split.rnsplit.RNSplitPackage; public class MainApplication extends Application implements ReactApplication { @@ -27,7 +27,7 @@ protected List getPackages() { List packages = new PackageList(this).getPackages(); // Packages that cannot be autolinked yet can be added manually here, for example: // packages.add(new MyReactNativePackage()); - packages.add(new RNEventSourcePackage()); + packages.add(new RNSplitPackage()); return packages; } diff --git a/example/ios/Podfile b/example/ios/Podfile index 969144f..86851a1 100644 --- a/example/ios/Podfile +++ b/example/ios/Podfile @@ -17,7 +17,7 @@ target 'example' do # Pods for testing end - pod 'Split', :path => '../..' + pod 'RNSplit', :path => '../..' # Enables Flipper. # diff --git a/example/ios/Podfile.lock b/example/ios/Podfile.lock index b84fc8d..d9028bd 100644 --- a/example/ios/Podfile.lock +++ b/example/ios/Podfile.lock @@ -316,7 +316,7 @@ PODS: - React-cxxreact (= 0.64.1) - React-jsi (= 0.64.1) - React-perflogger (= 0.64.1) - - Split (0.0.1-beta.5): + - RNSplit (0.0.1-canary.2): - React - Yoga (1.14.0) - YogaKit (1.18.1): @@ -371,7 +371,7 @@ DEPENDENCIES: - React-RCTVibration (from `../node_modules/react-native/Libraries/Vibration`) - React-runtimeexecutor (from `../node_modules/react-native/ReactCommon/runtimeexecutor`) - ReactCommon/turbomodule/core (from `../node_modules/react-native/ReactCommon`) - - Split (from `../..`) + - RNSplit (from `../..`) - Yoga (from `../node_modules/react-native/ReactCommon/yoga`) SPEC REPOS: @@ -444,7 +444,7 @@ EXTERNAL SOURCES: :path: "../node_modules/react-native/ReactCommon/runtimeexecutor" ReactCommon: :path: "../node_modules/react-native/ReactCommon" - Split: + RNSplit: :path: "../.." Yoga: :path: "../node_modules/react-native/ReactCommon/yoga" @@ -488,10 +488,10 @@ SPEC CHECKSUMS: React-RCTVibration: 4b99a7f5c6c0abbc5256410cc5425fb8531986e1 React-runtimeexecutor: ff951a0c241bfaefc4940a3f1f1a229e7cb32fa6 ReactCommon: bedc99ed4dae329c4fcf128d0c31b9115e5365ca - Split: 10ecd4f342ba7f13472c961379e733ac8782098a + RNSplit: 428e2a7c18fd621ec3494d0e39b31bab158104d9 Yoga: a7de31c64fe738607e7a3803e3f591a4b1df7393 YogaKit: f782866e155069a2cca2517aafea43200b01fd5a -PODFILE CHECKSUM: b0666e27b6e3a8b7e47f93e272b1116fcf0a20e3 +PODFILE CHECKSUM: 446a3cfd56a34c58128e1c92cebd53fb2ce3971a COCOAPODS: 1.10.1 diff --git a/example/src/App.tsx b/example/src/App.tsx index 4943055..8927bfe 100644 --- a/example/src/App.tsx +++ b/example/src/App.tsx @@ -30,7 +30,7 @@ import { ReloadInstructions, } from 'react-native/Libraries/NewAppScreen'; -import { SplitFactory, DebugLogger } from 'splitio-react-native-private'; +import { SplitFactory, DebugLogger } from '@splitsoftware/splitio-react-native'; // Ignore Android JS timers warning. No need to worry about it: https://github.com/facebook/react-native/issues/12981#issuecomment-652745831 LogBox.ignoreLogs(['Setting a timer']); diff --git a/example/tsconfig.json b/example/tsconfig.json index 078e83e..809d60e 100644 --- a/example/tsconfig.json +++ b/example/tsconfig.json @@ -39,7 +39,7 @@ "moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */ "baseUrl": "./", /* Base directory to resolve non-absolute module names. */ "paths": { - "splitio-react-native-private": ["../"] + "@splitsoftware/splitio-react-native": ["../"] }, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */ // "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */ // "typeRoots": [], /* List of folders to include type definitions from. */ diff --git a/ios/RNEventSource.xcodeproj/project.pbxproj b/ios/RNEventSource.xcodeproj/project.pbxproj index bae23fa..51b7bac 100644 --- a/ios/RNEventSource.xcodeproj/project.pbxproj +++ b/ios/RNEventSource.xcodeproj/project.pbxproj @@ -11,19 +11,8 @@ 55C5EF221EA2A263005345B7 /* TRVSServerSentEvent.m in Sources */ = {isa = PBXBuildFile; fileRef = 55C5EF201EA2A263005345B7 /* TRVSServerSentEvent.m */; }; 911488971B28A9A700A81437 /* RNEventSource.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 911488961B28A9A700A81437 /* RNEventSource.h */; }; 911488991B28A9A700A81437 /* RNEventSource.m in Sources */ = {isa = PBXBuildFile; fileRef = 911488981B28A9A700A81437 /* RNEventSource.m */; }; - 9114889F1B28A9A700A81437 /* libRNEventSource.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 911488931B28A9A700A81437 /* libRNEventSource.a */; }; /* End PBXBuildFile section */ -/* Begin PBXContainerItemProxy section */ - 911488A01B28A9A700A81437 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 9114888B1B28A9A700A81437 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 911488921B28A9A700A81437; - remoteInfo = RNEventSource; - }; -/* End PBXContainerItemProxy section */ - /* Begin PBXCopyFilesBuildPhase section */ 911488911B28A9A700A81437 /* CopyFiles */ = { isa = PBXCopyFilesBuildPhase; @@ -46,8 +35,6 @@ 911488931B28A9A700A81437 /* libRNEventSource.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libRNEventSource.a; sourceTree = BUILT_PRODUCTS_DIR; }; 911488961B28A9A700A81437 /* RNEventSource.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RNEventSource.h; sourceTree = ""; }; 911488981B28A9A700A81437 /* RNEventSource.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RNEventSource.m; sourceTree = ""; }; - 9114889E1B28A9A700A81437 /* RNEventSourceTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RNEventSourceTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 911488A31B28A9A700A81437 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -58,14 +45,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 9114889B1B28A9A700A81437 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 9114889F1B28A9A700A81437 /* libRNEventSource.a in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ @@ -85,7 +64,6 @@ isa = PBXGroup; children = ( 911488951B28A9A700A81437 /* RNEventSource */, - 911488A21B28A9A700A81437 /* RNEventSourceTests */, 911488941B28A9A700A81437 /* Products */, ); sourceTree = ""; @@ -94,7 +72,6 @@ isa = PBXGroup; children = ( 911488931B28A9A700A81437 /* libRNEventSource.a */, - 9114889E1B28A9A700A81437 /* RNEventSourceTests.xctest */, ); name = Products; sourceTree = ""; @@ -109,14 +86,6 @@ path = RNEventSource; sourceTree = ""; }; - 911488A21B28A9A700A81437 /* RNEventSourceTests */ = { - isa = PBXGroup; - children = ( - 911488A31B28A9A700A81437 /* Info.plist */, - ); - path = RNEventSourceTests; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -137,24 +106,6 @@ productReference = 911488931B28A9A700A81437 /* libRNEventSource.a */; productType = "com.apple.product-type.library.static"; }; - 9114889D1B28A9A700A81437 /* RNEventSourceTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 911488A91B28A9A700A81437 /* Build configuration list for PBXNativeTarget "RNEventSourceTests" */; - buildPhases = ( - 9114889A1B28A9A700A81437 /* Sources */, - 9114889B1B28A9A700A81437 /* Frameworks */, - 9114889C1B28A9A700A81437 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - 911488A11B28A9A700A81437 /* PBXTargetDependency */, - ); - name = RNEventSourceTests; - productName = RNEventSourceTests; - productReference = 9114889E1B28A9A700A81437 /* RNEventSourceTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ @@ -167,9 +118,6 @@ 911488921B28A9A700A81437 = { CreatedOnToolsVersion = 7.0; }; - 9114889D1B28A9A700A81437 = { - CreatedOnToolsVersion = 7.0; - }; }; }; buildConfigurationList = 9114888E1B28A9A700A81437 /* Build configuration list for PBXProject "RNEventSource" */; @@ -177,6 +125,7 @@ developmentRegion = English; hasScannedForEncodings = 0; knownRegions = ( + English, en, ); mainGroup = 9114888A1B28A9A700A81437; @@ -185,21 +134,10 @@ projectRoot = ""; targets = ( 911488921B28A9A700A81437 /* RNEventSource */, - 9114889D1B28A9A700A81437 /* RNEventSourceTests */, ); }; /* End PBXProject section */ -/* Begin PBXResourcesBuildPhase section */ - 9114889C1B28A9A700A81437 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - /* Begin PBXSourcesBuildPhase section */ 9114888F1B28A9A700A81437 /* Sources */ = { isa = PBXSourcesBuildPhase; @@ -211,23 +149,8 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 9114889A1B28A9A700A81437 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; /* End PBXSourcesBuildPhase section */ -/* Begin PBXTargetDependency section */ - 911488A11B28A9A700A81437 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 911488921B28A9A700A81437 /* RNEventSource */; - targetProxy = 911488A01B28A9A700A81437 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - /* Begin XCBuildConfiguration section */ 911488A41B28A9A700A81437 /* Debug */ = { isa = XCBuildConfiguration; @@ -333,28 +256,6 @@ }; name = Release; }; - 911488AA1B28A9A700A81437 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - INFOPLIST_FILE = RNEventSourceTests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = pw.RNEventSourceTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Debug; - }; - 911488AB1B28A9A700A81437 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - INFOPLIST_FILE = RNEventSourceTests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = pw.RNEventSourceTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Release; - }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ @@ -376,15 +277,6 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 911488A91B28A9A700A81437 /* Build configuration list for PBXNativeTarget "RNEventSourceTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 911488AA1B28A9A700A81437 /* Debug */, - 911488AB1B28A9A700A81437 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; /* End XCConfigurationList section */ }; rootObject = 9114888B1B28A9A700A81437 /* Project object */; diff --git a/package-lock.json b/package-lock.json index bbbcde8..754f090 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { - "name": "splitio-react-native-private", - "version": "0.0.1-beta.5", + "name": "@splitsoftware/splitio-react-native", + "version": "0.0.1-canary.2", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index df796ac..5aba7e9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { - "name": "splitio-react-native-private", - "version": "0.0.1-beta.5", + "name": "@splitsoftware/splitio-react-native", + "version": "0.0.1-canary.2", "description": "Split SDK for React Native", "main": "lib/commonjs/index", "module": "lib/module/index", @@ -8,12 +8,16 @@ "react-native": "lib/module/index", "source": "src/index", "files": [ + "README.md", + "CONTRIBUTORS-GUIDE.md", + "LICENSE", + "CHANGES.txt", "src", "lib", "types", "android", "ios", - "Split.podspec", + "RNSplit.podspec", "!android/build", "!ios/build", "!**/__tests__", @@ -48,9 +52,6 @@ "url": "https://github.com/splitio/react-native-client/issues" }, "homepage": "https://github.com/splitio/react-native-client#readme", - "publishConfig": { - "registry": "https://splitio.jfrog.io/artifactory/api/npm/npm-split/" - }, "dependencies": { "@splitsoftware/splitio-commons": "0.1.1-canary.12" }, diff --git a/src/settings/defaults.ts b/src/settings/defaults.ts index ad309be..5c662ee 100644 --- a/src/settings/defaults.ts +++ b/src/settings/defaults.ts @@ -1,4 +1,4 @@ -const packageVersion = '0.0.1-beta.5'; +const packageVersion = '0.0.1-canary.2'; export const defaults = { startup: { diff --git a/types/index.d.ts b/types/index.d.ts index 3d8fdb8..f72384d 100644 --- a/types/index.d.ts +++ b/types/index.d.ts @@ -9,35 +9,35 @@ declare module JsSdk { /** * Split.io sdk factory function. * The settings parameter should be an object that complies with the SplitIO.IReactNativeSettings. - * For more information read the corresponding article: @see {@link https://help.split.io/hc/en-us/articles/@TODO#configuration} + * For more information read the corresponding article: @see {@link https://help.split.io/hc/en-us/articles/4406066357901#configuration} */ export function SplitFactory(settings: SplitIO.IReactNativeSettings): SplitIO.ISDK; /** * Creates a logger instance that enables descriptive log messages with DEBUG log level when passed in the factory settings. * - * @see {@link https://help.split.io/hc/en-us/articles/@TODO#logging} + * @see {@link https://help.split.io/hc/en-us/articles/4406066357901#logging} */ export function DebugLogger(): SplitIO.ILogger; /** * Creates a logger instance that enables descriptive log messages with INFO log level when passed in the factory settings. * - * @see {@link https://help.split.io/hc/en-us/articles/@TODO#logging} + * @see {@link https://help.split.io/hc/en-us/articles/4406066357901#logging} */ export function InfoLogger(): SplitIO.ILogger; /** * Creates a logger instance that enables descriptive log messages with WARN log level when passed in the factory settings. * - * @see {@link https://help.split.io/hc/en-us/articles/@TODO#logging} + * @see {@link https://help.split.io/hc/en-us/articles/4406066357901#logging} */ export function WarnLogger(): SplitIO.ILogger; /** * Creates a logger instance that enables descriptive log messages with ERROR log level when passed in the factory settings. * - * @see {@link https://help.split.io/hc/en-us/articles/@TODO#logging} + * @see {@link https://help.split.io/hc/en-us/articles/4406066357901#logging} */ export function ErrorLogger(): SplitIO.ILogger; } diff --git a/types/splitio.d.ts b/types/splitio.d.ts index 634fdba..dc0916d 100644 --- a/types/splitio.d.ts +++ b/types/splitio.d.ts @@ -2,8 +2,6 @@ // Project: http://www.split.io/ // Definitions by: Nico Zelaya -/// - export as namespace SplitIO; export = SplitIO; @@ -117,7 +115,7 @@ interface ISharedSettings { /** * Boolean value to indicate whether the logger should be enabled or disabled by default, or a Logger object. * Passing a logger object is required to get descriptive log messages. Otherwise most logs will print with message codes. - * @see {@link https://help.split.io/hc/en-us/articles/360058730852#logging} + * @see {@link https://help.split.io/hc/en-us/articles/4406066357901#logging} * * @property {boolean | ILogger} debug * @default false @@ -300,7 +298,7 @@ declare namespace SplitIO { /** * Split attributes should be on object with values of type string or number (dates should be sent as millis since epoch). * @typedef {Object.} Attributes - * @see {@link https://help.split.io/hc/en-us/articles/360058730852#attribute-syntax} + * @see {@link https://help.split.io/hc/en-us/articles/4406066357901#attribute-syntax} */ type Attributes = { [attributeName: string]: string | number | boolean | Array @@ -308,7 +306,7 @@ declare namespace SplitIO { /** * Split properties should be an object with values of type string, number, boolean or null. Size limit of ~31kb. * @typedef {Object.} Attributes - * @see {@link https://help.split.io/hc/en-us/articles/360058730852#track + * @see {@link https://help.split.io/hc/en-us/articles/4406066357901#track */ type Properties = { [propertyName: string]: string | number | boolean | null @@ -429,7 +427,7 @@ declare namespace SplitIO { * Impression listener interface. This is the interface that needs to be implemented * by the element you provide to the SDK as impression listener. * @interface IImpressionListener - * @see {@link https://help.split.io/hc/en-us/articles/360058730852#listener} + * @see {@link https://help.split.io/hc/en-us/articles/4406066357901#listener} */ interface IImpressionListener { logImpression(data: SplitIO.ImpressionData): void @@ -541,7 +539,7 @@ declare namespace SplitIO { * Settings interface for SDK instances created on React Native. * @interface IReactNativeSettings * @extends ISharedSettings - * @see {@link https://help.split.io/hc/en-us/articles/360058730852#configuration} + * @see {@link https://help.split.io/hc/en-us/articles/4406066357901#configuration} */ interface IReactNativeSettings extends ISharedSettings { /** @@ -645,6 +643,7 @@ declare namespace SplitIO { /** * Defines the factory function to instanciate the storage. If not provided, the default IN MEMORY storage is used. * @property {Object} storage + * @todo at the moment there are not storages to plug in React Native SDK. */ storage?: StorageSyncFactory, /** @@ -656,6 +655,7 @@ declare namespace SplitIO { /** * Defines an optional list of factory functions used to instantiate SDK integrations. * @property {Object} integrations + * @todo at the moment there are not integrations to plug in React Native SDK. */ integrations?: IntegrationFactory[], }