All files / src valid-ids.ts

100% Statements 38/38
100% Branches 3/3
100% Functions 3/3
100% Lines 38/38

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 391x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 12x 12x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 12x 12x 1x 1x 1x 1x 1x 1x 1x 1x 1x 13x 13x  
/*
 * Keyman is copyright (C) SIL Global. MIT License.
 */
 
 
/**
 * Verifies that an id passed in is valid as an identifier for a Keyman .kmn
 * keyboard: starts with alpha or underscore and remainder is alphanumeric
 * @param id
 * @returns
 */
export function isValidKeymanKeyboardId(id: string) {
  return /^[a-z_][a-z0-9_]*$/.test(id);
}
 
/**
 * Verifies that an id passed in is valid as an identifier for an LDML xml
 * keyboard: starts with alpha or underscore and remainder is alphanumeric.
 * Note that this test is not the same as the CLDR test for valid LDML xml
 * filename, as this test has a narrower validity policy to match the Keyman
 * implementation requirements.
 * @param id
 * @returns
 */
export function isValidLdmlKeyboardId(id: string) {
  return /^[a-z_][a-z0-9_]*$/.test(id);
}
 
/**
 * Verifies that an id passed in is valid as an identifier for a Keyman
 * lexical model: starts with alpha or underscore and remainder is alphanumeric,
 * in three components -- author.bcp47.uniq
 * @param id
 * @returns
 */
export function isValidLexicalModelId(id: string) {
  return /^[a-z_][a-z0-9_]*\.[a-z][a-z0-9_]+\.[a-z_][a-z0-9_]*$/.test(id);
}