UNPKG

svelte-ux

Version:

- Increment version in `package.json` and commit as `Version bump to x.y.z` - `npm run publish`

24 lines (23 loc) 1.14 kB
// https://basarat.gitbooks.io/typescript/docs/types/never.html#use-case-exhaustive-checks // https://www.typescriptlang.org/docs/handbook/basic-types.html#never export function fail(message) { throw new Error(message); } // Get keys of object (strongly-typed) // Reason Object.keys() isn't like this by default due to runtime properties: https://github.com/Microsoft/TypeScript/pull/12253#issuecomment-263132208 export function keys(o) { return Object.keys(o); } // export const keys = Object.keys as <T>(obj: T) => (Extract<keyof T, string>)[]; // Get entries (array of [key, value] arrays) of object (strongly-typed) export function entries(o) { return Object.entries(o); // TODO: Improve based on key/value pair - https://stackoverflow.com/questions/60141960/typescript-key-value-relation-preserving-object-entries-type } // https://github.com/Microsoft/TypeScript/issues/17198#issuecomment-315400819 export function enumKeys(E) { return Object.keys(E).filter((k) => typeof E[k] === 'number'); // ["A", "B"] } export function enumValues(E) { const keys = enumKeys(E); return keys.map((k) => E[k]); // [0, 1] }