Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,16 @@ jobs:
exit 1
fi

- name: Validate .riv schema files
run: |
yarn rive-gen-types --all example/assets/rive
# git status (not diff) also catches newly generated, untracked .riv.d.ts
if [ -n "$(git status --porcelain -- 'example/assets/rive/*.riv.d.ts')" ]; then
git status --porcelain -- 'example/assets/rive/*.riv.d.ts'
echo "Error: .riv.d.ts files are out of date. Please run 'yarn rive-gen-types --all example/assets/rive' and commit the changes."
exit 1
fi

- name: Typecheck files
run: yarn typecheck

Expand All @@ -73,6 +83,9 @@ jobs:
- name: Run unit tests
run: yarn test --maxWorkers=2 --coverage

- name: Script tests (schema generator)
run: yarn test:scripts

build-library:
runs-on: ubuntu-latest
steps:
Expand Down
8 changes: 8 additions & 0 deletions cli/rive-gen-types.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#!/usr/bin/env node
// Launcher for the compiled generator (built by `yarn build:cli`).
require('../lib/cli/rive-gen-types.cjs')
.runCli()
.catch((err) => {
process.stderr.write(`${err && err.message ? err.message : err}\n`);
process.exit(1);
});
1 change: 1 addition & 0 deletions eslint.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ export default defineConfig([
// tsd owns *.test-d.ts (yarn typetest) — deprecated calls there are
// intentional expectDeprecated() pins, not violations.
'**/*.test-d.ts',
'**/*.riv.d.ts',
// Agent worktrees (.claude/worktrees/*) are gitignored full-repo copies;
// linting them duplicates every finding and slows the run.
'**/.claude/',
Expand Down
Binary file added example/assets/rive/GradientBorder.riv
Binary file not shown.
17 changes: 17 additions & 0 deletions example/assets/rive/GradientBorder.riv.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
// Generated by rive-gen-types — do not edit manually. @generated
/* eslint-disable */
// Source: GradientBorder.riv
import type { RiveAsset } from '@rive-app/react-native';
declare const asset: RiveAsset<{
artboards: 'Layout';
defaultArtboard: 'Layout';
stateMachines: {
Layout: 'State';
};
viewModels: {
ViewModel: {
isFocused: 'boolean';
};
};
}>;
export default asset;
26 changes: 26 additions & 0 deletions example/assets/rive/arbtboards-models-instances.riv.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
// Generated by rive-gen-types — do not edit manually. @generated
/* eslint-disable */
// Source: arbtboards-models-instances.riv
import type { RiveAsset } from '@rive-app/react-native';
declare const asset: RiveAsset<{
artboards: 'artboard1' | 'artboard3' | 'artboard2' | 'artboardc1';
defaultArtboard: 'artboard1';
stateMachines: {
artboard1: 'sm13' | 'sm12' | 'sm11';
artboard3: 'sm33' | 'sm32' | 'sm31';
artboard2: 'sm23' | 'sm22' | 'sm21';
artboardc1: 'State Machine 1';
};
viewModels: {
viewmodel1: {
_id: 'string';
};
viewmodel2: {
_id: 'string';
};
viewmodel3: {
_id: 'string';
};
};
}>;
export default asset;
21 changes: 21 additions & 0 deletions example/assets/rive/artboard_db_test.riv.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
// Generated by rive-gen-types — do not edit manually. @generated
/* eslint-disable */
// Source: artboard_db_test.riv
import type { RiveAsset } from '@rive-app/react-native';
declare const asset: RiveAsset<{
artboards: 'Main' | 'ArtboardGreen' | 'ArtboardBlue' | 'ArtboardRed';
defaultArtboard: 'Main';
stateMachines: {
Main: 'State Machine 1';
ArtboardGreen: 'State Machine 1';
ArtboardBlue: 'State Machine 1';
ArtboardRed: 'State Machine 1';
};
viewModels: {
MainViewModel: {
artboard_1: 'artboard';
artboard_2: 'artboard';
};
};
}>;
export default asset;
97 changes: 97 additions & 0 deletions example/assets/rive/blinko.riv.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
// Generated by rive-gen-types — do not edit manually. @generated
/* eslint-disable */
// Source: blinko.riv
import type { RiveAsset } from '@rive-app/react-native';
declare const asset: RiveAsset<{
artboards: 'Main' | 'StoreItem' | 'Token' | 'Indicator' | 'Puck' | 'StoreIcon' | 'Peg' | 'scoreBox';
defaultArtboard: 'Main';
stateMachines: {
Main: 'State Machine 1';
StoreItem: 'State Machine 1';
Token: 'State Machine 1';
Indicator: 'State Machine 1';
Puck: 'State Machine 1';
StoreIcon: 'State Machine 1';
Peg: 'State Machine 1';
scoreBox: 'State Machine 1';
};
viewModels: {
IndicatorVM: {
purchased: 'boolean';
};
StoreItemVM: {
tokenCount: 'number';
height: 'number';
itemHover: 'boolean';
cost: 'number';
description: 'string';
id: 'string';
itemType: 'string';
maxPurchases: 'number';
name: 'string';
purchase: 'trigger';
purchaseCount: 'number';
};
storeIconVM: {
storeiconClick: 'trigger';
iconHovered: 'boolean';
};
storeVM: {
'xbuttonClick': 'trigger';
'xbuttonHover': 'boolean';
'items': 'list';
'storeOpen': 'boolean';
'property of pegVM': 'viewModel:pegVM';
'multiplierValue': 'number';
'extraTokenSlotActive': 'boolean';
'extraTokenSlotCost': 'number';
'extraTokenSlotCount': 'number';
'purchaseExtraTokenSlot': 'trigger';
'purchaseSuperMultiplier': 'trigger';
'superMultiplierActive': 'boolean';
'superMultiplierCost': 'number';
'superMultiplierCount': 'number';
};
TokenVM: {
spinToken: 'boolean';
};
pegVM: {
blink: 'trigger';
multiplierValue: 'number';
pegType: 'enum:normal|multiplier';
pegBounced: 'trigger';
};
gameLogicVM: {
turnTokens: 'number';
turnScore: 'number';
buttonLabel: 'string';
message: 'string';
startTurn: 'trigger';
turnEnded: 'trigger';
gameEnded: 'boolean';
tokenCount: 'number';
scoreTotal: 'number';
};
scoreBox: {
Token: 'viewModel:TokenVM';
slotType: 'enum:addToken|normal';
landed: 'trigger';
scoreValue: 'number';
};
PuckVM: {
puckBounce: 'trigger';
puckRotation: 'number';
};
main: {
'PuckVM': 'viewModel:PuckVM';
'storeItemVM': 'viewModel:StoreItemVM';
'storeIconVM': 'viewModel:storeIconVM';
'pegVM': 'viewModel:pegVM';
'storeVM': 'viewModel:storeVM';
'buttonHover': 'boolean';
'tokenVM': 'viewModel:TokenVM';
'property of gameLogicVM': 'viewModel:gameLogicVM';
};
};
}>;
export default asset;
17 changes: 17 additions & 0 deletions example/assets/rive/bouncing_ball.riv.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
// Generated by rive-gen-types — do not edit manually. @generated
/* eslint-disable */
// Source: bouncing_ball.riv
import type { RiveAsset } from '@rive-app/react-native';
declare const asset: RiveAsset<{
artboards: 'Artboard';
defaultArtboard: 'Artboard';
stateMachines: {
Artboard: 'State Machine 1';
};
viewModels: {
vm: {
ypos: 'number';
};
};
}>;
export default asset;
17 changes: 17 additions & 0 deletions example/assets/rive/click-count.riv.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
// Generated by rive-gen-types — do not edit manually. @generated
/* eslint-disable */
// Source: click-count.riv
import type { RiveAsset } from '@rive-app/react-native';
declare const asset: RiveAsset<{
artboards: 'Artboard';
defaultArtboard: 'Artboard';
stateMachines: {
Artboard: 'State Machine 1';
};
viewModels: {
ViewModel: {
clickCount: 'number';
};
};
}>;
export default asset;
17 changes: 17 additions & 0 deletions example/assets/rive/counter.riv.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
// Generated by rive-gen-types — do not edit manually. @generated
/* eslint-disable */
// Source: counter.riv
import type { RiveAsset } from '@rive-app/react-native';
declare const asset: RiveAsset<{
artboards: 'Artboard';
defaultArtboard: 'Artboard';
stateMachines: {
Artboard: 'State Machine 1';
};
viewModels: {
ViewModel1: {
cnt: 'number';
};
};
}>;
export default asset;
28 changes: 28 additions & 0 deletions example/assets/rive/databinding.riv.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
// Generated by rive-gen-types — do not edit manually. @generated
/* eslint-disable */
// Source: databinding.riv
import type { RiveAsset } from '@rive-app/react-native';
declare const asset: RiveAsset<{
artboards: 'Artboard';
defaultArtboard: 'Artboard';
stateMachines: {
Artboard: 'State Machine 1';
};
viewModels: {
Person: {
pet: 'viewModel:Pet';
jump: 'trigger';
likes_popcorn: 'boolean';
favourite_pet: 'enum:chipmunk|rat|frog|owl|cat|dog';
favourite_color: 'color';
age: 'number';
website: 'string';
name: 'string';
};
Pet: {
type: 'enum:chipmunk|rat|frog|owl|cat|dog';
name: 'string';
};
};
}>;
export default asset;
17 changes: 17 additions & 0 deletions example/assets/rive/databinding_images.riv.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
// Generated by rive-gen-types — do not edit manually. @generated
/* eslint-disable */
// Source: databinding_images.riv
import type { RiveAsset } from '@rive-app/react-native';
declare const asset: RiveAsset<{
artboards: 'Artboard';
defaultArtboard: 'Artboard';
stateMachines: {
Artboard: 'State Machine 1';
};
viewModels: {
MyViewModel: {
bound_image: 'image';
};
};
}>;
export default asset;
20 changes: 20 additions & 0 deletions example/assets/rive/databinding_lists.riv.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
// Generated by rive-gen-types — do not edit manually. @generated
/* eslint-disable */
// Source: databinding_lists.riv
import type { RiveAsset } from '@rive-app/react-native';
declare const asset: RiveAsset<{
artboards: 'Artboard';
defaultArtboard: 'Artboard';
stateMachines: {
Artboard: 'State Machine 1';
};
viewModels: {
Person: {
name: 'string';
};
DevRel: {
team: 'list';
};
};
}>;
export default asset;
13 changes: 13 additions & 0 deletions example/assets/rive/fallback_fonts.riv.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
// Generated by rive-gen-types — do not edit manually. @generated
/* eslint-disable */
// Source: fallback_fonts.riv
import type { RiveAsset } from '@rive-app/react-native';
declare const asset: RiveAsset<{
artboards: 'Artboard';
defaultArtboard: 'Artboard';
stateMachines: {
Artboard: 'State Machine 1';
};
viewModels: {};
}>;
export default asset;
17 changes: 17 additions & 0 deletions example/assets/rive/font_fallback.riv.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
// Generated by rive-gen-types — do not edit manually. @generated
/* eslint-disable */
// Source: font_fallback.riv
import type { RiveAsset } from '@rive-app/react-native';
declare const asset: RiveAsset<{
artboards: 'Artboard';
defaultArtboard: 'Artboard';
stateMachines: {
Artboard: 'State Machine 1';
};
viewModels: {
ViewModel: {
text: 'string';
};
};
}>;
export default asset;
13 changes: 13 additions & 0 deletions example/assets/rive/hello_world_text.riv.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
// Generated by rive-gen-types — do not edit manually. @generated
/* eslint-disable */
// Source: hello_world_text.riv
import type { RiveAsset } from '@rive-app/react-native';
declare const asset: RiveAsset<{
artboards: 'New Artboard';
defaultArtboard: 'New Artboard';
stateMachines: {
'New Artboard': 'State Machine 1';
};
viewModels: {};
}>;
export default asset;
Binary file added example/assets/rive/inputglow.riv
Binary file not shown.
17 changes: 17 additions & 0 deletions example/assets/rive/inputglow.riv.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
// Generated by rive-gen-types — do not edit manually. @generated
/* eslint-disable */
// Source: inputglow.riv
import type { RiveAsset } from '@rive-app/react-native';
declare const asset: RiveAsset<{
artboards: 'Layout';
defaultArtboard: 'Layout';
stateMachines: {
Layout: 'State';
};
viewModels: {
ViewModel: {
isFocused: 'boolean';
};
};
}>;
export default asset;
Loading
Loading