{"id":14069940,"url":"https://github.com/sublimefund/format-stripe-metadata","last_synced_at":"2025-07-30T06:33:36.860Z","repository":{"id":31109113,"uuid":"126379582","full_name":"sublimefund/format-stripe-metadata","owner":"sublimefund","description":"Ensure that Stripe metadata is valid","archived":false,"fork":false,"pushed_at":"2022-12-07T10:51:46.000Z","size":515,"stargazers_count":3,"open_issues_count":19,"forks_count":1,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-11-09T10:31:38.383Z","etag":null,"topics":["metadata","stripe","stripe-api"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/format-stripe-metadata","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sublimefund.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-03-22T18:36:17.000Z","updated_at":"2024-06-29T00:20:07.000Z","dependencies_parsed_at":"2023-01-14T18:30:18.498Z","dependency_job_id":null,"html_url":"https://github.com/sublimefund/format-stripe-metadata","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sublimefund%2Fformat-stripe-metadata","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sublimefund%2Fformat-stripe-metadata/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sublimefund%2Fformat-stripe-metadata/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sublimefund%2Fformat-stripe-metadata/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sublimefund","download_url":"https://codeload.github.com/sublimefund/format-stripe-metadata/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228102438,"owners_count":17869849,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["metadata","stripe","stripe-api"],"created_at":"2024-08-13T07:07:21.308Z","updated_at":"2024-12-04T11:31:08.701Z","avatar_url":"https://github.com/sublimefund.png","language":"TypeScript","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"readme":"# format-stripe-metadata\n\n[![npm](https://img.shields.io/npm/v/format-stripe-metadata.svg)](https://www.npmjs.com/package/format-stripe-metadata)\n[![npm](https://img.shields.io/npm/l/format-stripe-metadata.svg)](https://github.com/sublimefund/format-stripe-metadata/blob/master/LICENSE)\n[![CI status](https://github.com/sublimefund/format-stripe-metadata/workflows/CI/badge.svg)](https://github.com/sublimefund/format-stripe-metadata/actions?query=branch%3Amaster)\n[![codecov](https://codecov.io/gh/sublimefund/format-stripe-metadata/branch/master/graph/badge.svg)](https://codecov.io/gh/sublimefund/format-stripe-metadata)\n\n[Stripe](https://stripe.com/) allows attaching\n[metadata](https://stripe.com/docs/api#metadata) to certain objects. However,\nthere are documented limits on the metadata, the data must be in a key/value\nformat, and values must be strings (nested objects aren't allowed). If these\nrequirements aren't met, then calling the Stripe API will fail. This package\nformats the input data to ensure compliance.\n\nFrom the docs:\n\u003e You can specify up to 20 keys, with key names up to 40 characters long and\n\u003e values up to 500 characters long.\n\nThese values are used internally, but you can override them if necessary.\n\n## Installation\n\n```sh\n$ yarn add format-stripe-metadata\n# or\n$ npm install --save format-stripe-metadata\n```\n\n## Usage\n\nThe returned object will contain a property called `_fullData` with a value of\neither `'true'` or `'false'`. If the value is `'false'`, then information was\nlost in the formatting process. Depending on how you are using the metadata\nfield, you may want to treat this situation as a bug, log a warning, etc.\n\nValues are converted to strings as necesssary using\n[`JSON.stringify`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify).\n\n```js\nimport {formatStripeMetadata} from 'format-stripe-metadata';\n// or\nconst formatStripeMetadata = require('format-stripe-metadata').formatStripeMetadata;\n\nlet formatted = formatStripeMetadata(null);\n// {_fullData: 'true'}\n\n// Strings, numbers, and arrays are set as the value for the 'data' key\nformatted = formatStripeMetadata('Mandarin orange');\n// {_fullData: 'true', data: 'Mandarin orange'}\nformatted = formatStripeMetadata(679);\n// {_fullData: 'true', data: '679'}\nformatted = formatStripeMetadata(['foo', 'bar', 'baz']);\n// {_fullData: 'true', data: '[\"foo\",\"bar\",\"baz\"]'}\n\n// Objects are copied as much as possible\nformatted = formatStripeMetadata({thomas: 'edison', nikola: 'tesla'});\n// {_fullData: 'true', thomas: 'edison', nikola: 'tesla'}\nformatted = formatStripeMetadata({thisisakeythatisabsurdlylong: 'Too Long'});\n// {_fullData: 'false', thisisakeythatisabsu: 'Too Long'}\n\n// The default limits can be overridden\nformated = formatStripeMetadata(metadata, {\n    maxNumKeys: 15,\n    maxKeyLength: 18,\n    maxValueLength: 400\n});\n```\n\n## License\n\n[MIT](https://github.com/sublimefund/format-stripe-metadata/blob/master/LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsublimefund%2Fformat-stripe-metadata","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsublimefund%2Fformat-stripe-metadata","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsublimefund%2Fformat-stripe-metadata/lists"}