Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

42 Commits

Repository files navigation

node-openrefine

Node.js client library for controlling OpenRefine.

TODO / Features

  • [] upload, apply operations, download results, delete project
  • pipe
  • CLI tool

Usage

varopenrefine=require('openrefine')// another server; same usagevarserver=openrefine.server('http://localhost:3333')// projects metadataopenrefine.projects().then(project_metadata=> ...)

Project metadata format:

{"[project_id]": {"name": "[project_name]","created": "[project_creation_time]","modified": "[project_modification_time]","customMetadata": {}},
...[Moreprojects]...}

Create a project and clean up some data:

varproject=openrefine.create('data_cleanup_project')// .create() auto-generates a project name.accept('csv').accept({separator: ',',ignoreLines: 1}).expose('csv').keep(true)// keep data after end() or pipe; default is not keeping.use([{"op": "core/column-split","description": "Split column DATE by separator","engineConfig": {"facets": [],"mode": "row-based"},"columnName": "DATE","guessCellType": true,"removeOriginalColumn": true,"mode": "separator","separator": "-","regex": false,"maxColumns": 0}]).use(customCleanupAddress())// customCleanupAddress() returns an array of operationsproject.load('input.csv').end(function(data){// ...}).then(()=>project.destroy())

Or use the stream interface:

fs.createStream('input.csv').pipe(project).pipe(fs.createWriteStream('output.csv'))

A project may have some internal states (project metadata such as name and ID, data imported previously, etc.) To open an existing project, use numeric ID of OpenRefine:

server.open(1234567980)

Delete all data in a project:

project.clean()

Destroy a project after use:

project.destroy()

See also

About

OpenRefine client in Node.js

Resources

Stars

16 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages