UNPKG

angular-papa-promise

Version:

This module provides an AngularJS service wrapper for the PapaParse (http://papaparse.com/) CSV parsing library.

57 lines (51 loc) 1.45 kB
(function (angular) { 'use strict'; angular.module('papa-promise', []) .service('Papa', PapaPromise); /** * @constructor PapaPromise * @ngInject */ function PapaPromise($window, $q) { var Papa = $window.Papa; /** * @param csv * @param config * @return {promise} */ function parse(input, config) { var deferred = $q.defer(); config = config || {}; config.complete = function onComplete(result) { if (config.rejectOnError && result.errors.length) { deferred.reject(result); return; } deferred.resolve(result); }; config.error = function onError(error) { deferred.reject(error); }; Papa.parse(input, config); return deferred.promise; } /** * @param json * @param config * @return {promise} */ function unparse(json, config) { try { return $q.resolve(Papa.unparse(json, config)); } catch (err) { return $q.reject(err); } } angular.extend(this, { parse: parse, unparse: unparse, Papa: Papa }); } PapaPromise.$inject = ['$window', '$q']; }(angular));