Skip to content

Latest commit

 

History

History
106 lines (83 loc) · 1.98 KB

README.md

File metadata and controls

106 lines (83 loc) · 1.98 KB

clrc version license

LRC format parser for JavaScript/TypeScript.

Features

  • Typescript support
  • Browser & Node.js support

Install & Usage

npm i clrc --save
import { parse } from 'clrc';

const lrc = `
[ar:张叶蕾]
invalid line
[00:54.04]每一辆飞车彻夜向前开
[00:58.22]飞到了路崖边永不回来
`;

console.log(parse(lrc));

The output is:

{
  "metadatas": [
    {
      "lineNumber": 1,
      "key": "ar",
      "value": "张叶蕾",
      "raw": "[ar:张叶蕾]"
    }
  ],
  "metadata": {
    "ar": "张叶蕾"
  },
  "lyrics": [
    {
      "lineNumber": 3,
      "startMillisecond": 54040,
      "content": "每一辆飞车彻夜向前开",
      "raw": "[00:54.04]每一辆飞车彻夜向前开"
    },
    {
      "lineNumber": 4,
      "startMillisecond": 58220,
      "content": "飞到了路崖边永不回来",
      "raw": "[00:58.22]飞到了路崖边永不回来"
    }
  ],
  "invalidLines": [
    {
      "lineNumber": 0,
      "raw": ""
    },
    {
      "lineNumber": 2,
      "raw": "invalid line"
    },
    {
      "lineNumber": 5,
      "raw": ""
    }
  ]
}

APIs

parse(lrcString[, options])

parse used for parsing lrc string to object.

Options

  • sortByStartTime whether to sort lyrics by start time, default false
  • trimStart whether to remove start spaces, default true
  • trimEnd whether to remove end spaces, default false

Typescript support

Working with generic

parse<'ar' | 'by'>(lrc);
// metadata is { ar?: string, by?: string }

Export useful type

import { LrcLine, MetadataLine, LyricLine, ParseOptions } from 'clrc';

License

MIT