Skip to content
This repository was archived by the owner on Jul 10, 2024. It is now read-only.

Commit b94a450

Browse files
committed
Example project is now TypeScript
1 parent 4cccd8f commit b94a450

File tree

8 files changed

+106
-20
lines changed

8 files changed

+106
-20
lines changed
Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
1-
import React, { Component, useState } from 'react';
2-
import { Platform, StyleSheet, Text, View } from 'react-native';
1+
import React, { useState } from 'react';
2+
import { StyleSheet, View, Text } from 'react-native';
33
import { AudioEngine } from 'react-native-audio-engine';
44

55
export const App = () => {
6-
const [message, setMessage] = useState();
6+
const [message, setMessage] = useState<string | undefined>();
77

88
AudioEngine.sampleMethod('howdy!', 123, message => {
99
setMessage(message);
1010
});
1111

1212
return (
1313
<View style={styles.container}>
14-
<Text>{message || 'Waiting for NativeModule...'}</Text>
14+
<Text>{message ?? 'Waiting for NativeModule...'}</Text>
1515
</View>
1616
);
1717
};
@@ -23,14 +23,4 @@ const styles = StyleSheet.create({
2323
alignItems: 'center',
2424
backgroundColor: '#F5FCFF',
2525
},
26-
welcome: {
27-
fontSize: 20,
28-
textAlign: 'center',
29-
margin: 10,
30-
},
31-
instructions: {
32-
textAlign: 'center',
33-
color: '#333333',
34-
marginBottom: 5,
35-
},
3626
});

example/__tests__/App-test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,5 @@ import App from '../App';
66
import renderer from 'react-test-renderer';
77

88
it('renders correctly', () => {
9-
renderer.create(<App />);
9+
renderer.create(<App />);
1010
});

example/ios/Podfile.lock

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ PODS:
182182
- React-cxxreact (= 0.61.5)
183183
- React-jsi (= 0.61.5)
184184
- React-jsinspector (0.61.5)
185-
- react-native-audio-engine (0.0.1):
185+
- react-native-audio-engine (0.0.2):
186186
- React
187187
- React-RCTActionSheet (0.61.5):
188188
- React-Core/RCTActionSheetHeaders (= 0.61.5)
@@ -326,7 +326,7 @@ SPEC CHECKSUMS:
326326
React-jsi: cb2cd74d7ccf4cffb071a46833613edc79cdf8f7
327327
React-jsiexecutor: d5525f9ed5f782fdbacb64b9b01a43a9323d2386
328328
React-jsinspector: fa0ecc501688c3c4c34f28834a76302233e29dc0
329-
react-native-audio-engine: 9b9790ee7a001e73e02a46ed21f82368dd2c8eb0
329+
react-native-audio-engine: 7067a8933ca0ae59d1016e3e76c6b4f9efa63515
330330
React-RCTActionSheet: 600b4d10e3aea0913b5a92256d2719c0cdd26d76
331331
React-RCTAnimation: 791a87558389c80908ed06cc5dfc5e7920dfa360
332332
React-RCTBlob: d89293cc0236d9cb0933d85e430b0bbe81ad1d72

example/jest.config.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
module.exports = {
2+
preset: 'react-native',
3+
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node'],
4+
};

example/package.json

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,17 @@
2121
"@babel/core": "^7.8.6",
2222
"@babel/runtime": "^7.8.4",
2323
"@react-native-community/eslint-config": "^0.0.7",
24+
"@types/jest": "^25.1.3",
25+
"@types/react": "^16.9.23",
26+
"@types/react-native": "^0.61.17",
27+
"@types/react-test-renderer": "^16.9.2",
2428
"babel-jest": "^25.1.0",
2529
"eslint": "^6.8.0",
2630
"jest": "^25.1.0",
2731
"metro-react-native-babel-preset": "^0.58.0",
28-
"react-test-renderer": "16.9.0"
32+
"react-test-renderer": "16.9.0",
33+
"typescript": "^3.8.3"
34+
2935
},
3036
"jest": {
3137
"preset": "react-native"

example/yarn.lock

Lines changed: 46 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1113,11 +1113,46 @@
11131113
"@types/istanbul-lib-coverage" "*"
11141114
"@types/istanbul-lib-report" "*"
11151115

1116+
"@types/jest@^25.1.3":
1117+
version "25.1.3"
1118+
resolved "https://registry.yarnpkg.com/@types/jest/-/jest-25.1.3.tgz#9b0b5addebccfb631175870be8ba62182f1bc35a"
1119+
integrity sha512-jqargqzyJWgWAJCXX96LBGR/Ei7wQcZBvRv0PLEu9ZByMfcs23keUJrKv9FMR6YZf9YCbfqDqgmY+JUBsnqhrg==
1120+
dependencies:
1121+
jest-diff "^25.1.0"
1122+
pretty-format "^25.1.0"
1123+
11161124
"@types/json-schema@^7.0.3":
11171125
version "7.0.4"
11181126
resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.4.tgz#38fd73ddfd9b55abb1e1b2ed578cb55bd7b7d339"
11191127
integrity sha512-8+KAKzEvSUdeo+kmqnKrqgeE+LcA0tjYWFY7RPProVYwnqDjukzO+3b6dLD56rYX5TdWejnEOLJYOIeh4CXKuA==
11201128

1129+
"@types/prop-types@*":
1130+
version "15.7.3"
1131+
resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.3.tgz#2ab0d5da2e5815f94b0b9d4b95d1e5f243ab2ca7"
1132+
integrity sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==
1133+
1134+
"@types/react-native@^0.61.17":
1135+
version "0.61.17"
1136+
resolved "https://registry.yarnpkg.com/@types/react-native/-/react-native-0.61.17.tgz#5994af207c2339d498ebd8bd427c68074ce9e744"
1137+
integrity sha512-12qKZz/ob56lglVRAIDgqDchcyO0g5lZtrjxCTQDNJv8HFHZMcZx78+/CjKsu3LGs6KbajkZ1+0htqiaxr5JVA==
1138+
dependencies:
1139+
"@types/react" "*"
1140+
1141+
"@types/react-test-renderer@^16.9.2":
1142+
version "16.9.2"
1143+
resolved "https://registry.yarnpkg.com/@types/react-test-renderer/-/react-test-renderer-16.9.2.tgz#e1c408831e8183e5ad748fdece02214a7c2ab6c5"
1144+
integrity sha512-4eJr1JFLIAlWhzDkBCkhrOIWOvOxcCAfQh+jiKg7l/nNZcCIL2MHl2dZhogIFKyHzedVWHaVP1Yydq/Ruu4agw==
1145+
dependencies:
1146+
"@types/react" "*"
1147+
1148+
"@types/react@*", "@types/react@^16.9.23":
1149+
version "16.9.23"
1150+
resolved "https://registry.yarnpkg.com/@types/react/-/react-16.9.23.tgz#1a66c6d468ba11a8943ad958a8cb3e737568271c"
1151+
integrity sha512-SsGVT4E7L2wLN3tPYLiF20hmZTPGuzaayVunfgXzUn1x4uHVsKH6QDJQ/TdpHqwsTLd4CwrmQ2vOgxN7gE24gw==
1152+
dependencies:
1153+
"@types/prop-types" "*"
1154+
csstype "^2.2.0"
1155+
11211156
"@types/stack-utils@^1.0.1":
11221157
version "1.0.1"
11231158
resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-1.0.1.tgz#0a851d3bd96498fa25c33ab7278ed3bd65f06c3e"
@@ -2096,6 +2131,11 @@ cssstyle@^2.0.0:
20962131
dependencies:
20972132
cssom "~0.3.6"
20982133

2134+
csstype@^2.2.0:
2135+
version "2.6.9"
2136+
resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.9.tgz#05141d0cd557a56b8891394c1911c40c8a98d098"
2137+
integrity sha512-xz39Sb4+OaTsULgUERcCk+TJj8ylkL4aSVDQiX/ksxbELSqwkgt4d4RD7fovIdgJGSuNYqwZEiVjYY5l0ask+Q==
2138+
20992139
dashdash@^1.12.0:
21002140
version "1.14.1"
21012141
resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
@@ -5429,7 +5469,7 @@ react-is@^16.12.0, react-is@^16.8.1, react-is@^16.8.4, react-is@^16.9.0:
54295469
integrity sha512-GFMtL0vHkiBv9HluwNZTggSn/sCyEt9n02aM0dSAjGGyqyNlAyftYm4phPxdvCigG15JreC5biwxCgTAJZ7yAA==
54305470

54315471
"react-native-audio-engine@file:..":
5432-
version "0.0.1"
5472+
version "0.0.2"
54335473

54345474
54355475
version "0.61.5"
@@ -6531,6 +6571,11 @@ typedarray@^0.0.6:
65316571
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
65326572
integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
65336573

6574+
typescript@^3.8.3:
6575+
version "3.8.3"
6576+
resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.8.3.tgz#409eb8544ea0335711205869ec458ab109ee1061"
6577+
integrity sha512-MYlEfn5VrLNsgudQTVJeNaQFUAI7DkhnOjdpAp4T+ku1TfQClewlbSuTVHiA+8skNBgaf02TL/kLOvig4y3G8w==
6578+
65346579
ua-parser-js@^0.7.18:
65356580
version "0.7.21"
65366581
resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.21.tgz#853cf9ce93f642f67174273cc34565ae6f308777"

ios/AudioEngine.m

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,54 @@
11
#import "AudioEngine.h"
2+
#import <AVKit/AVKit.h>
3+
4+
@interface AudioEngine()
5+
6+
@property (nonatomic, strong) AVAudioEngine *engine;
7+
@property (nonatomic, strong) AVAudioMixerNode *mixer;
8+
9+
@end
210

311
@implementation AudioEngine
412

13+
- (instancetype)init
14+
{
15+
self = [super init];
16+
if (self) {
17+
self.engine = [[AVAudioEngine alloc] init];
18+
self.mixer = [[AVAudioMixerNode alloc] init];
19+
}
20+
return self;
21+
}
22+
23+
+ (BOOL)requiresMainQueueSetup
24+
{
25+
return YES;
26+
}
27+
528
RCT_EXPORT_MODULE()
629

30+
RCT_EXPORT_METHOD(pause)
31+
{
32+
[self.engine pause];
33+
}
34+
35+
RCT_EXPORT_METHOD(stop)
36+
{
37+
[self.engine stop];
38+
}
39+
40+
RCT_EXPORT_METHOD(addTrack:(NSString *)uri)
41+
{
42+
AVAudioPlayerNode *node = [[AVAudioPlayerNode alloc] init];
43+
[self.engine attachNode:node];
44+
[self.engine connect:node to:self.mixer format:nil];
45+
}
46+
747
RCT_EXPORT_METHOD(sampleMethod:(NSString *)stringArgument numberParameter:(nonnull NSNumber *)numberArgument callback:(RCTResponseSenderBlock)callback)
848
{
949
// TODO: Implement some actually useful functionality
1050
callback(@[[NSString stringWithFormat: @"numberArgument!!: %@ stringArgument!!: %@", numberArgument, stringArgument]]);
1151
}
1252

53+
1354
@end

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
"build": "tsc",
2121
"clean": "rm -rf dist",
2222
"preversion": "yarn build",
23-
"postversion": "git push --tags"
23+
"postversion": "git push --tags && yarn publish"
2424
},
2525
"peerDependencies": {
2626
"react": "^16.8.1",

0 commit comments

Comments
 (0)