0.1.4 • Published 2 years ago

@valosan/metadata-parser v0.1.4

Weekly downloads
-
License
ISC
Repository
-
Last release
2 years ago

Metadata parser

Bundles https://www.npmjs.com/package/page-metadata-parser so it can work when injected into Chrome browser context (i.e. puppeteer)

Provides additional ld+json parsing for better results.

Usage

import { getMetadata, metadataRuleSets } from "page-metadata-parser";

export interface PageMetadata {
  title?: string;
  // FIXME: Valosan extra
  published?: string;
  icon?: string;
  image?: string;
  keywords?: string;
  url?: string;
  provider?: string;
  type?: string;
  language?: string;
  description?: string;
}

const metadata: PageMetadata = parsePageMetadata(getMetadata, metadataRuleSets, document, url);

Usage in ChromeDriver

const metadataScript = fs.readFileSync(
  __dirname + "/../node_modules/@valosan/metadata-parser/page-metadata-parser.bundle.js",
  {
    encoding: "utf-8"
  }
);

const metadataParser = fs.readFileSync(
  __dirname + "/../node_modules/@valosan/metadata-parser/metadata.js",
  {
    encoding: "utf-8"
  }
);

const metadata = await page.evaluate(`
    (function(){
      /* Metadata script */
      ${metadataScript}
      /* Extraction code */
      ${metadataParser}
      /* Return result */
      return parsePageMetadata(metadataparser.getMetadata, metadataparser.metadataRuleSets, document, String(window.location));
    }())
  `)

Building

npm run build
npm publish --access public
0.1.4

2 years ago

0.1.3

2 years ago

0.1.2

3 years ago

0.1.1

3 years ago

0.1.0

3 years ago