콘텐츠로 이동

kindFromIosActivityType — @gj-kit/expo-workouts

@gj-kit/expo-workouts에서 공개하는 function입니다. package version 0.1.1의 release declaration을 그대로 표시합니다.

import { kindFromIosActivityType } from '@gj-kit/expo-workouts';
/**
* Raw HKWorkoutActivityType → WorkoutKind. TOTAL over `number`: anything not in the table —
* including negative, non-integer and huge values that only the JS boundary can produce — returns
* `{ kind: 'other' }` with `indoor` left `undefined`.
*
* ⚠ **`indoor` never comes from this function on iOS.** HealthKit carries it in the
* `HKIndoorWorkout` metadata key (and, for swimming, in `HKMetadataKeySwimmingLocationType`),
* orthogonally to the activity type. The return shape keeps `indoor` for symmetry with the
* Android mapper and is always `undefined` here.
*
* ⚠ **Nothing collapses on iOS.** `HKWorkoutActivityType` is a plain `NSUInteger`, so an unknown
* value (e.g. 16 = Elliptical) arrives intact and IS preserved in
* `platformData.ios.activityTypeRaw` — an app can recover it. Contrast
* `kindFromAndroidExerciseType`.
*
* READ-ALIASES: 20 (FunctionalStrengthTraining) → `'strength'` and 71 (WheelchairRunPace) →
* `'wheelchair'` map INTO kinds the write direction never emits, so the two mapper directions are
* NOT literal inverses. The asserted property is write-then-read only.
*/
declare function kindFromIosActivityType(raw: number): {
kind: WorkoutKind;
indoor?: boolean | undefined;
};

이 선언은 매개변수, optionality, 제네릭, 반환값, 공개 union/type 계약의 정본입니다. 호출 전 필요한 환경·권한·오류 경계는 패키지 Golden path와 이 subpath의 import 조건을 함께 확인하세요.

  • 패키지: @gj-kit/expo-workouts
  • 버전: 0.1.1
  • 공개 entry: .
  • 소스: GitHub

Raw HKWorkoutActivityType → WorkoutKind. TOTAL over number: anything not in the table — including negative, non-integer and huge values that only the JS boundary can produce — returns { kind: 'other' } with indoor left undefined.

indoor never comes from this function on iOS. HealthKit carries it in the HKIndoorWorkout metadata key (and, for swimming, in HKMetadataKeySwimmingLocationType), orthogonally to the activity type. The return shape keeps indoor for symmetry with the Android mapper and is always undefined here.

Nothing collapses on iOS. HKWorkoutActivityType is a plain NSUInteger, so an unknown value (e.g. 16 = Elliptical) arrives intact and IS preserved in platformData.ios.activityTypeRaw — an app can recover it. Contrast kindFromAndroidExerciseType.

READ-ALIASES: 20 (FunctionalStrengthTraining) → 'strength' and 71 (WheelchairRunPace) → 'wheelchair' map INTO kinds the write direction never emits, so the two mapper directions are NOT literal inverses. The asserted property is write-then-read only.