Skip to content

Commit 119eab2

Browse files
committedOct 29, 2021
Update as module
1 parent 323dec2 commit 119eab2

14 files changed

+28276
-8606
lines changed
 

‎.codeclimate.yml

+3
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@ engines:
77
- javascript
88
eslint:
99
enabled: true
10+
checks:
11+
comma-dangle:
12+
enabled: false
1013
config:
1114
config: test/fixtures/config/.eslintrc
1215
fixme:

‎.gitignore

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
/coverage
2+
/node_modules
3+
*.sublime-project
4+
*.sublime-workspace

‎.travis.yml

+2-3
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,7 @@ branches:
77
language: node_js
88
node_js:
99
- stable
10-
- 12
11-
- 10
10+
- lts
1211
env:
1312
global:
1413
- CC_TEST_REPORTER_ID=b62b383f834fc3519bc3f7655c3307de6056aa18487302c1a89bdde5b0653557
@@ -20,7 +19,7 @@ before_script:
2019
- chmod +x ./cc-test-reporter
2120
- ./cc-test-reporter before-build
2221
after_script:
23-
- "[ $TRAVIS_NODE_VERSION = stable ] && nyc report --reporter=lcov && ./cc-test-reporter
22+
- "[ $TRAVIS_NODE_VERSION = stable ] && c8 report --reporter=lcov --reporter=text && ./cc-test-reporter
2423
after-build --debug -t lcov --exit-code $TRAVIS_TEST_RESULT || echo 'Coverage skipped'"
2524
notifications:
2625
slack:

‎ava.config.js

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
const config = {
2+
files: ['test/*.js'],
3+
}
4+
5+
export default config

‎gulpfile.js

-46
This file was deleted.

‎index.d.ts

+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
export { meta as default };
2+
/**
3+
* Creates the metadata collection function, starting at the path provided or
4+
* the current working directory by default.
5+
* @function meta
6+
* @param {String} cwd The directory to start searching for a package.json file.
7+
* @return {metadata} The map of reduced package metadata.
8+
*/
9+
declare function meta(cwd?: string): {
10+
readonly name: string;
11+
readonly description: string;
12+
readonly copyright: any;
13+
readonly license: string;
14+
readonly bugs: string;
15+
readonly bin: string;
16+
/**
17+
* Print a package version string.
18+
* @param {Number} style The version string format wanted:
19+
* ```
20+
* 1: Simple number format: 0.1.2
21+
* 2: Long version with name: @thebespokepixel/meta v0.1.2
22+
* 3: v-prefixed version number: v0.1.2
23+
* ```
24+
* @return {String} The version string.
25+
*/
26+
version: (style?: number) => string;
27+
};

‎index.js

+82-64
Original file line numberDiff line numberDiff line change
@@ -1,67 +1,85 @@
1-
'use strict';
2-
3-
function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
4-
5-
var readPkg = _interopDefault(require('read-pkg-up'));
6-
1+
import { readPackageUpSync } from 'read-pkg-up';
2+
3+
/* ──────────────────────╮
4+
│ @thebespokepixel/meta │
5+
╰───────────────────────┴───────────────────────────────────────────────────── */
6+
7+
/**
8+
* Creates the metadata collection function, starting at the path provided or
9+
* the current working directory by default.
10+
* @function meta
11+
* @param {String} cwd The directory to start searching for a package.json file.
12+
* @return {metadata} The map of reduced package metadata.
13+
*/
714
function meta(cwd = '.') {
8-
const pkg = readPkg.sync({
9-
cwd
10-
}).packageJson;
11-
const metadata = {
12-
get name() {
13-
return pkg.name;
14-
},
15-
16-
get description() {
17-
return pkg.description ? pkg.description : 'No description';
18-
},
19-
20-
get copyright() {
21-
if (pkg.copyright && pkg.copyright.year) {
22-
return ${pkg.copyright.year} ${pkg.copyright.owner}`;
23-
}
24-
25-
return pkg.copyright ? pkg.copyright : ${new Date().getFullYear()} ${pkg.author.name}`;
26-
},
27-
28-
get license() {
29-
return pkg.license;
30-
},
31-
32-
get bugs() {
33-
return pkg.bugs.url;
34-
},
35-
36-
get bin() {
37-
return pkg.bin ? Object.keys(pkg.bin)[0] : 'none';
38-
},
39-
40-
version: (style = 1) => {
41-
const version = function () {
42-
if (pkg.buildNumber > 0) {
43-
return `${pkg.version}${pkg.buildNumber}`;
44-
}
45-
46-
return `${pkg.version}`;
47-
}();
48-
49-
switch (style) {
50-
case 4:
51-
return `${pkg.version}`;
52-
53-
case 3:
54-
return `v${version}`;
55-
56-
case 2:
57-
return `${pkg.name} v${version}`;
58-
59-
default:
60-
return version;
61-
}
62-
}
63-
};
64-
return metadata;
15+
const pkg = readPackageUpSync({cwd}).packageJson;
16+
17+
/**
18+
* Extract metadata for sharing inside a package.
19+
* @const {metadata}
20+
* @property {String} name The package's name
21+
* @property {String} bin The CLI binary we provide
22+
* @property {String} description The description from package.json
23+
* @property {String} license The package license
24+
* @property {String} bugs Our issues queue
25+
*/
26+
const metadata = {
27+
get name() {
28+
return pkg.name
29+
},
30+
get description() {
31+
return pkg.description ? pkg.description : 'No description'
32+
},
33+
get copyright() {
34+
if (pkg.copyright && pkg.copyright.year) {
35+
return ${pkg.copyright.year} ${pkg.copyright.owner}`
36+
}
37+
38+
return pkg.copyright ? pkg.copyright :
39+
${new Date().getFullYear()} ${pkg.author.name}`
40+
},
41+
get license() {
42+
return pkg.license
43+
},
44+
get bugs() {
45+
return pkg.bugs.url
46+
},
47+
get bin() {
48+
return pkg.bin ? Object.keys(pkg.bin)[0] : 'none'
49+
},
50+
/**
51+
* Print a package version string.
52+
* @param {Number} style The version string format wanted:
53+
* ```
54+
* 1: Simple number format: 0.1.2
55+
* 2: Long version with name: @thebespokepixel/meta v0.1.2
56+
* 3: v-prefixed version number: v0.1.2
57+
* ```
58+
* @return {String} The version string.
59+
*/
60+
version: (style = 1) => {
61+
const version = (function () {
62+
if (pkg.buildNumber > 0) {
63+
return `${pkg.version}${pkg.buildNumber}`
64+
}
65+
66+
return `${pkg.version}`
67+
})();
68+
69+
switch (style) {
70+
case 4:
71+
return `${pkg.version}`
72+
case 3:
73+
return `v${version}`
74+
case 2:
75+
return `${pkg.name} v${version}`
76+
default:
77+
return version
78+
}
79+
}
80+
};
81+
82+
return metadata
6583
}
6684

67-
module.exports = meta;
85+
export { meta as default };

‎index.mjs

-63
This file was deleted.

‎package-lock.json

+28,102-8,386
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎package.json

+22-32
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,23 @@
33
"version": "2.0.4",
44
"description": "Extract package metadata with consistent presentation",
55
"main": "index.js",
6-
"module": "index.mjs",
6+
"types": "index.d.ts",
7+
"type": "module",
78
"scripts": {
8-
"test": "xo && nyc ava",
9+
"build": "rollup -c",
10+
"test": "xo && c8 --reporter=text ava",
911
"doc-serve": "documentation serve --watch --theme node_modules/documentation-theme-bespoke --github --config src/docs/documentation.yml --project-name $npm_package_name --project-version $npm_package_version src/index.js",
1012
"doc-build": "documentation build --format html --output docs --theme node_modules/documentation-theme-bespoke --github --config src/docs/documentation.yml --project-name $npm_package_name --project-version $npm_package_version src/index.js",
1113
"readme": "compile-readme -u src/docs/example.md src/docs/readme.md > readme.md",
12-
"coverage": "nyc ava && nyc report --reporter=lcov --report-dir test/coverage; open test/coverage/lcov-report/index.html"
14+
"coverage": "c8 --reporter=lcov ava; open test/coverage/lcov-report/index.html",
15+
"prepublishOnly": "npx -p typescript tsc index.js --declaration --allowJs --emitDeclarationOnly"
1316
},
1417
"repository": {
1518
"type": "git",
1619
"url": "git+https://github.com/thebespokepixel/meta.git"
1720
},
1821
"files": [
19-
"index.js",
20-
"index.mjs"
22+
"index.js"
2123
],
2224
"keywords": [
2325
"metadata",
@@ -27,7 +29,7 @@
2729
],
2830
"author": "Mark Griffiths <mark@thebespokepixel.com> (http://thebespokepixel.com/)",
2931
"copyright": {
30-
"year": "2020",
32+
"year": "2021",
3133
"owner": "The Bespoke Pixel"
3234
},
3335
"license": "MIT",
@@ -39,21 +41,15 @@
3941
},
4042
"homepage": "https://github.com/thebespokepixel/meta#readme",
4143
"devDependencies": {
42-
"@ava/babel": "^1.0.1",
43-
"@babel/core": "^7.10.5",
44-
"@babel/preset-env": "^7.10.4",
45-
"ava": "^3.10.1",
46-
"documentation-theme-bespoke": "^1.1.6",
47-
"gulp": "^4.0.2",
48-
"gulp-better-rollup": "^4.0.1",
49-
"gulp-rename": "^2.0.0",
50-
"gulp-strip-comments": "^2.5.2",
51-
"nyc": "^15.1.0",
52-
"rollup": "^2.21.0",
53-
"rollup-plugin-babel": "^4.4.0",
54-
"rollup-plugin-commonjs": "^10.1.0",
55-
"rollup-plugin-node-resolve": "^5.2.0",
56-
"xo": "^0.32.1"
44+
"@rollup/plugin-commonjs": "^21.0.1",
45+
"@rollup/plugin-node-resolve": "^13.0.6",
46+
"@types/estree": "^0.0.50",
47+
"ava": "^4.0.0-alpha.2",
48+
"c8": "^7.10.0",
49+
"documentation-theme-bespoke": "^2.0.9",
50+
"read-pkg": "^7.0.0",
51+
"rollup": "^2.58.3",
52+
"xo": "^0.46.3"
5753
},
5854
"xo": {
5955
"semicolon": false,
@@ -66,18 +62,13 @@
6662
"test/coverage/**"
6763
]
6864
},
69-
"ava": {
70-
"babel": true,
71-
"files": [
72-
"test/*.js"
73-
]
74-
},
7565
"dependencies": {
76-
"read-pkg-up": "^7.0.1"
66+
"read-pkg-up": "^9.0.0"
7767
},
7868
"badges": {
7969
"github": "thebespokepixel",
8070
"npm": "thebespokepixel",
71+
"libraries-io": "TheBespokePixel",
8172
"codeclimate": "34ee5899a13cb62729b9",
8273
"name": "meta",
8374
"style": "flat",
@@ -93,7 +84,7 @@
9384
"Publishing Status": [
9485
[
9586
"npm",
96-
"david"
87+
"libraries-io-npm"
9788
],
9889
[
9990
"travis-com",
@@ -103,8 +94,7 @@
10394
"Development Status": [
10495
[
10596
"travis-com-dev",
106-
"david-dev",
107-
"david-devdeps-dev"
97+
"libraries-io-github"
10898
],
10999
[
110100
"snyk",
@@ -128,7 +118,7 @@
128118
],
129119
[
130120
"snyk",
131-
"david"
121+
"libraries-io-npm"
132122
]
133123
]
134124
}

‎readme.md

+8-7
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,22 @@
44
55
##### Publishing Status
66

7-
[![npm](https://img.shields.io/npm/v/@thebespokepixel/meta?logo=npm)](https://www.npmjs.com/package/@thebespokepixel/meta "npm") [![David](https://david-dm.org/thebespokepixel/meta/master/status.svg)](https://david-dm.org/thebespokepixel/meta/master "David")
8-
[![Travis](https://img.shields.io/travis/com/thebespokepixel/meta/master?logo=travis)](https://travis-ci.com/thebespokepixel/meta "Travis") [![Rollup](https://img.shields.io/badge/es6-module%3Amjs_%E2%9C%94-64CA39?&logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDE0IDE0Ij4KICA8ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgPHBhdGggZmlsbD0iI0ZGMzMzMyIgZD0iTTEwLjkwNDI4MjQsMy4wMDkxMDY4MyBDMTEuMjM4NzA1NSwzLjU4MjgzNzEzIDExLjQyODU3MTQsNC4yNDQ4MzM2MyAxMS40Mjg1NzE0LDQuOTUwOTYzMjIgQzExLjQyODU3MTQsNi40MTc4NjM0IDEwLjYwODY5NTcsNy42OTU2MjE3MiA5LjM5MTgyNzM5LDguMzc2NTMyNCBDOS4zMDU1MjQ2OCw4LjQyNDg2ODY1IDkuMjczMTYxMTYsOC41MzIwNDkwNCA5LjMxODQ3MDA5LDguNjE4MjEzNjYgTDExLjQyODU3MTQsMTMgTDUuMjU4NjgyODEsMTMgTDIuMzM5Nzc3MjMsMTMgQzIuMTUyMTIzNDUsMTMgMiwxMi44NDgyNzU3IDIsMTIuNjUzODA0OCBMMiwxLjM0NjE5NTIyIEMyLDEuMTU0OTk2ODggMi4xNDgzMTU0MywxIDIuMzM5Nzc3MjMsMSBMNy42NjAyMjI3NywxIEM3LjcwMTU0MTQ5LDEgNy43NDExMzc2NCwxLjAwNzM1NTg4IDcuNzc3NzY2NTgsMS4wMjA5MDQyOSBDOS4wNjQ1MzgyOCwxLjE0NDU0MDA0IDEwLjE3MzM4ODQsMS44NTM4NTI5MSAxMC44MjIyOTQ5LDIuODcyNTA0MzggQzEwLjc5OTE5NTMsMi44NDQ4NDgwNiAxMC44NDQ0OTkxLDIuOTQ5MTc0NzYgMTAuOTA0MjgyNCwzLjAwOTEwNjgzIFoiLz4KICAgIDxwYXRoIGZpbGw9IiMwMDAwMDAiIGZpbGwtb3BhY2l0eT0iLjMxIiBkPSJNOC44NTcxNDI4NiwzLjU3MTQyODU3IEw2LjcxNDI4NTcxLDYuNTcxNDI4NTcgTDkuMjg1NzE0MjksNS4yODU3MTQyOSBDOS4yODU3MTQyOSw1LjI4NTcxNDI5IDkuNzE0Mjg1NzEsNC44NTcxNDI4NiA5LjI4NTcxNDI5LDQuNDI4NTcxNDMgQzkuMjg1NzE0MjksNCA4Ljg1NzE0Mjg2LDMuNTcxNDI4NTcgOC44NTcxNDI4NiwzLjU3MTQyODU3IFoiLz4KICAgIDxwYXRoIGZpbGw9IiNGQkIwNDAiIGQ9Ik0yLjg0Njc0NjAzLDEyLjk5NTg0OTUgQzMuMjY0OTIwNjIsMTIuOTk1ODQ5NSAzLjE4NTkzMDM0LDEyLjk0NjM2NjkgMy4zMTYxMTYzOCwxMi44NzM5MDU0IEMzLjYxODE3NTg3LDEyLjcwNTc3OTMgNS42ODk0NDA5OSw4LjcxMjc4NDU5IDcuNzE3NTU0NzYsNi44MjEzNjYwMiBDOS43NDU2Njg1Miw0LjkyOTk0NzQ2IDEwLjAwNDU3NjcsNS41NjA0MjAzMiA4Ljg4NDc5ODk1LDMuNTAyOTc3MjMgQzguODg0Nzk4OTUsMy41MDI5NzcyMyA5Ljc0NzgyNjA5LDUuMTQyMjA2NjUgOS4wMTQyNTMwMiw1LjI2ODMwMTIzIEM4LjQzODE4MjQxLDUuMzY3MDc1MzEgNy4xMTk5MDg0Nyw0LjEyMjk0MjIxIDcuNjExODMzOTMsMy4wMDQ5MDM2OCBDOC4wOTA4MTM5OSwxLjkxNDE4NTY0IDEwLjAxOTY3OTYsMi4xMjAxNDAxMSAxMC45MDY0NCwzLjAwOTEwNjgzIEMxMC44NzgzOTE2LDIuOTYyODcyMTUgMTAuODUwMzQzMiwyLjkxNjYzNzQ4IDEwLjgyMjI5NDksMi44NzI1MDQzOCBDMTAuMzA0NDc4NiwyLjI1MjUzOTQgOS41MDQwMjA5MiwxLjkwMzY3Nzc2IDguNzEwMDM1OTYsMS45MDM2Nzc3NiBDNy4xOTk3Mzg0OCwxLjkwMzY3Nzc2IDYuODIwMDA2NTQsMi40MjY5NzAyMyAzLjkyMDIzNTM3LDcuNjE5OTY0OTcgQzIuMzg3Nzk5MzQsMTAuMzY1NDA2NyAyLjAxMDgzMTkzLDExLjU3MzUwNzkgMi4wMDYyOTA2OSwxMi4xNjk4MTgyIEMyLDEyLjk5NTg0OTUgMi4wMDYyOTA2OSwxMi45OTU4NDk1IDIuODQ2NzQ2MDMsMTIuOTk1ODQ5NSBaIi8%2BCiAgPC9nPgo8L3N2Zz4K)](https://github.com/rollup/rollup/wiki/pkg.module "Rollup")
7+
[![npm](https://img.shields.io/npm/v/@thebespokepixel/meta?logo=npm "npm")](https://www.npmjs.com/package/@thebespokepixel/meta "npm")&#x20;[![Libraries.io](https://img.shields.io/librariesio/release/npm/@thebespokepixel/meta/latest?\&logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8cGF0aCBmaWxsPSIjRkZGIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik01Ljk5OTMxNDIyLDE1LjI3NyBMNiwyMyBDNiwyMy41NTIyODQ3IDUuNTUyMjg0NzUsMjQgNSwyNCBMMiwyNCBDMS40NDc3MTUyNSwyNCAxLDIzLjU1MjI4NDcgMSwyMyBMMC45OTkzMTQyMjIsMTkuMTg0IEw1Ljk5OTMxNDIyLDE1LjI3NyBaIE0xNC40OTkzMTQyLDguNjM2IEwxNC41LDIzIEMxNC41LDIzLjU1MjI4NDcgMTQuMDUyMjg0NywyNCAxMy41LDI0IEwxMC41LDI0IEM5Ljk0NzcxNTI1LDI0IDkuNSwyMy41NTIyODQ3IDkuNSwyMyBMOS40OTkzMTQyMiwxMi41NDMgTDE0LjQ5OTMxNDIsOC42MzYgWiBNMTcuOTk5MzE0Miw4LjMzNCBMMjIuOTk5MzE0MiwxMi4xMDIgTDIzLDIzIEMyMywyMy41NTIyODQ3IDIyLjU1MjI4NDcsMjQgMjIsMjQgTDE5LDI0IEMxOC40NDc3MTUzLDI0IDE4LDIzLjU1MjI4NDcgMTgsMjMgTDE3Ljk5OTMxNDIsOC4zMzQgWiBNNSwwIEM1LjU1MjI4NDc1LDAgNiwwLjQ0NzcxNTI1IDYsMSBMNS45OTkzMTQyMiwxMS40NzEgTDAuOTk5MzE0MjIyLDE1LjM3OCBMMSwxIEMxLDAuNDQ3NzE1MjUgMS40NDc3MTUyNSwwIDIsMCBMNSwwIFogTTEzLjUsMCBDMTQuMDUyMjg0NywwIDE0LjUsMC40NDc3MTUyNSAxNC41LDEgTDE0LjQ5OTMxNDIsNC44MzEgTDkuNDk5MzE0MjIsOC43MzcgTDkuNSwxIEM5LjUsMC40NDc3MTUyNSA5Ljk0NzcxNTI1LDAgMTAuNSwwIEwxMy41LDAgWiBNMjIsMCBDMjIuNTUyMjg0NywwIDIzLDAuNDQ3NzE1MjUgMjMsMSBMMjIuOTk5MzE0Miw4LjM0NyBMMTcuOTk5MzE0Miw0LjU3OSBMMTgsMSBDMTgsMC40NDc3MTUyNSAxOC40NDc3MTUzLDAgMTksMCBMMjIsMCBaIi8%2BCjwvc3ZnPgo%3D "Libraries.io")](https://libraries.io/github/thebespokepixel/meta "Libraries.io")&#x20;
8+
[![Travis](https://img.shields.io/travis/com/thebespokepixel/meta/master?logo=travis "Travis")](https://travis-ci.com/thebespokepixel/meta "Travis")&#x20;[![Rollup](https://img.shields.io/badge/es6-type%3A%20module%20%E2%9C%94-64CA39?\&logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDE0IDE0Ij4KICA8ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgPHBhdGggZmlsbD0iI0ZGMzMzMyIgZD0iTTEwLjkwNDI4MjQsMy4wMDkxMDY4MyBDMTEuMjM4NzA1NSwzLjU4MjgzNzEzIDExLjQyODU3MTQsNC4yNDQ4MzM2MyAxMS40Mjg1NzE0LDQuOTUwOTYzMjIgQzExLjQyODU3MTQsNi40MTc4NjM0IDEwLjYwODY5NTcsNy42OTU2MjE3MiA5LjM5MTgyNzM5LDguMzc2NTMyNCBDOS4zMDU1MjQ2OCw4LjQyNDg2ODY1IDkuMjczMTYxMTYsOC41MzIwNDkwNCA5LjMxODQ3MDA5LDguNjE4MjEzNjYgTDExLjQyODU3MTQsMTMgTDUuMjU4NjgyODEsMTMgTDIuMzM5Nzc3MjMsMTMgQzIuMTUyMTIzNDUsMTMgMiwxMi44NDgyNzU3IDIsMTIuNjUzODA0OCBMMiwxLjM0NjE5NTIyIEMyLDEuMTU0OTk2ODggMi4xNDgzMTU0MywxIDIuMzM5Nzc3MjMsMSBMNy42NjAyMjI3NywxIEM3LjcwMTU0MTQ5LDEgNy43NDExMzc2NCwxLjAwNzM1NTg4IDcuNzc3NzY2NTgsMS4wMjA5MDQyOSBDOS4wNjQ1MzgyOCwxLjE0NDU0MDA0IDEwLjE3MzM4ODQsMS44NTM4NTI5MSAxMC44MjIyOTQ5LDIuODcyNTA0MzggQzEwLjc5OTE5NTMsMi44NDQ4NDgwNiAxMC44NDQ0OTkxLDIuOTQ5MTc0NzYgMTAuOTA0MjgyNCwzLjAwOTEwNjgzIFoiLz4KICAgIDxwYXRoIGZpbGw9IiMwMDAwMDAiIGZpbGwtb3BhY2l0eT0iLjMxIiBkPSJNOC44NTcxNDI4NiwzLjU3MTQyODU3IEw2LjcxNDI4NTcxLDYuNTcxNDI4NTcgTDkuMjg1NzE0MjksNS4yODU3MTQyOSBDOS4yODU3MTQyOSw1LjI4NTcxNDI5IDkuNzE0Mjg1NzEsNC44NTcxNDI4NiA5LjI4NTcxNDI5LDQuNDI4NTcxNDMgQzkuMjg1NzE0MjksNCA4Ljg1NzE0Mjg2LDMuNTcxNDI4NTcgOC44NTcxNDI4NiwzLjU3MTQyODU3IFoiLz4KICAgIDxwYXRoIGZpbGw9IiNGQkIwNDAiIGQ9Ik0yLjg0Njc0NjAzLDEyLjk5NTg0OTUgQzMuMjY0OTIwNjIsMTIuOTk1ODQ5NSAzLjE4NTkzMDM0LDEyLjk0NjM2NjkgMy4zMTYxMTYzOCwxMi44NzM5MDU0IEMzLjYxODE3NTg3LDEyLjcwNTc3OTMgNS42ODk0NDA5OSw4LjcxMjc4NDU5IDcuNzE3NTU0NzYsNi44MjEzNjYwMiBDOS43NDU2Njg1Miw0LjkyOTk0NzQ2IDEwLjAwNDU3NjcsNS41NjA0MjAzMiA4Ljg4NDc5ODk1LDMuNTAyOTc3MjMgQzguODg0Nzk4OTUsMy41MDI5NzcyMyA5Ljc0NzgyNjA5LDUuMTQyMjA2NjUgOS4wMTQyNTMwMiw1LjI2ODMwMTIzIEM4LjQzODE4MjQxLDUuMzY3MDc1MzEgNy4xMTk5MDg0Nyw0LjEyMjk0MjIxIDcuNjExODMzOTMsMy4wMDQ5MDM2OCBDOC4wOTA4MTM5OSwxLjkxNDE4NTY0IDEwLjAxOTY3OTYsMi4xMjAxNDAxMSAxMC45MDY0NCwzLjAwOTEwNjgzIEMxMC44NzgzOTE2LDIuOTYyODcyMTUgMTAuODUwMzQzMiwyLjkxNjYzNzQ4IDEwLjgyMjI5NDksMi44NzI1MDQzOCBDMTAuMzA0NDc4NiwyLjI1MjUzOTQgOS41MDQwMjA5MiwxLjkwMzY3Nzc2IDguNzEwMDM1OTYsMS45MDM2Nzc3NiBDNy4xOTk3Mzg0OCwxLjkwMzY3Nzc2IDYuODIwMDA2NTQsMi40MjY5NzAyMyAzLjkyMDIzNTM3LDcuNjE5OTY0OTcgQzIuMzg3Nzk5MzQsMTAuMzY1NDA2NyAyLjAxMDgzMTkzLDExLjU3MzUwNzkgMi4wMDYyOTA2OSwxMi4xNjk4MTgyIEMyLDEyLjk5NTg0OTUgMi4wMDYyOTA2OSwxMi45OTU4NDk1IDIuODQ2NzQ2MDMsMTIuOTk1ODQ5NSBaIi8%2BCiAgPC9nPgo8L3N2Zz4K "Rollup")](https://github.com/rollup/rollup/wiki/pkg.module "Rollup")&#x20;
9+
910

1011
##### Development Status
1112

12-
[![Travis](https://img.shields.io/travis/com/thebespokepixel/meta/develop?logo=travis)](https://travis-ci.com/thebespokepixel/meta "Travis") [![David](https://david-dm.org/thebespokepixel/meta/develop/status.svg)](https://david-dm.org/thebespokepixel/meta/develop "David") [![David-developer](https://david-dm.org/thebespokepixel/meta/develop/dev-status.svg)](https://david-dm.org/thebespokepixel/meta/develop?type=dev "David-developer")
13-
[![Snyk](https://snyk.io/test/github/thebespokepixel/meta/badge.svg)](https://snyk.io/test/github/thebespokepixel/meta "Snyk") [![Code-climate](https://api.codeclimate.com/v1/badges/34ee5899a13cb62729b9/maintainability)](https://codeclimate.com/github/thebespokepixel/meta/maintainability "Code-climate") [![Coverage](https://api.codeclimate.com/v1/badges/34ee5899a13cb62729b9/test_coverage)](https://codeclimate.com/github/thebespokepixel/meta/test_coverage "Coverage")
13+
[![Travis](https://img.shields.io/travis/com/thebespokepixel/meta/develop?logo=travis "Travis")](https://travis-ci.com/thebespokepixel/meta "Travis")&#x20;[![Libraries.io](https://img.shields.io/librariesio/github/TheBespokePixel/meta?\&logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8cGF0aCBmaWxsPSIjRkZGIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik01Ljk5OTMxNDIyLDE1LjI3NyBMNiwyMyBDNiwyMy41NTIyODQ3IDUuNTUyMjg0NzUsMjQgNSwyNCBMMiwyNCBDMS40NDc3MTUyNSwyNCAxLDIzLjU1MjI4NDcgMSwyMyBMMC45OTkzMTQyMjIsMTkuMTg0IEw1Ljk5OTMxNDIyLDE1LjI3NyBaIE0xNC40OTkzMTQyLDguNjM2IEwxNC41LDIzIEMxNC41LDIzLjU1MjI4NDcgMTQuMDUyMjg0NywyNCAxMy41LDI0IEwxMC41LDI0IEM5Ljk0NzcxNTI1LDI0IDkuNSwyMy41NTIyODQ3IDkuNSwyMyBMOS40OTkzMTQyMiwxMi41NDMgTDE0LjQ5OTMxNDIsOC42MzYgWiBNMTcuOTk5MzE0Miw4LjMzNCBMMjIuOTk5MzE0MiwxMi4xMDIgTDIzLDIzIEMyMywyMy41NTIyODQ3IDIyLjU1MjI4NDcsMjQgMjIsMjQgTDE5LDI0IEMxOC40NDc3MTUzLDI0IDE4LDIzLjU1MjI4NDcgMTgsMjMgTDE3Ljk5OTMxNDIsOC4zMzQgWiBNNSwwIEM1LjU1MjI4NDc1LDAgNiwwLjQ0NzcxNTI1IDYsMSBMNS45OTkzMTQyMiwxMS40NzEgTDAuOTk5MzE0MjIyLDE1LjM3OCBMMSwxIEMxLDAuNDQ3NzE1MjUgMS40NDc3MTUyNSwwIDIsMCBMNSwwIFogTTEzLjUsMCBDMTQuMDUyMjg0NywwIDE0LjUsMC40NDc3MTUyNSAxNC41LDEgTDE0LjQ5OTMxNDIsNC44MzEgTDkuNDk5MzE0MjIsOC43MzcgTDkuNSwxIEM5LjUsMC40NDc3MTUyNSA5Ljk0NzcxNTI1LDAgMTAuNSwwIEwxMy41LDAgWiBNMjIsMCBDMjIuNTUyMjg0NywwIDIzLDAuNDQ3NzE1MjUgMjMsMSBMMjIuOTk5MzE0Miw4LjM0NyBMMTcuOTk5MzE0Miw0LjU3OSBMMTgsMSBDMTgsMC40NDc3MTUyNSAxOC40NDc3MTUzLDAgMTksMCBMMjIsMCBaIi8%2BCjwvc3ZnPgo%3D "Libraries.io")](https://libraries.io/github/thebespokepixel/meta "Libraries.io")&#x20;
14+
[![Snyk](https://snyk.io/test/github/thebespokepixel/meta/badge.svg "Snyk")](https://snyk.io/test/github/thebespokepixel/meta "Snyk")&#x20;[![Code-Climate](https://api.codeclimate.com/v1/badges/34ee5899a13cb62729b9/maintainability "Code-Climate")](https://codeclimate.com/github/thebespokepixel/meta/maintainability "Code-Climate")&#x20;[![Code-Climate Coverage](https://api.codeclimate.com/v1/badges/34ee5899a13cb62729b9/test\_coverage "Code-Climate Coverage")](https://codeclimate.com/github/thebespokepixel/meta/test\_coverage "Code-Climate Coverage")&#x20;
15+
1416

1517
##### Documentation/Help
1618

17-
[![Inch](https://inch-ci.org/github/thebespokepixel/meta.svg?branch=master&style=shields)](https://inch-ci.org/github/thebespokepixel/meta "Inch") [![Twitter](https://img.shields.io/twitter/follow/thebespokepixel?style=social)](https://twitter.com/thebespokepixel "Twitter")
19+
[![Inch.io](https://inch-ci.org/github/thebespokepixel/meta.svg?branch=master\&style=shields "Inch.io")](https://inch-ci.org/github/thebespokepixel/meta "Inch.io")&#x20;[![Twitter](https://img.shields.io/twitter/follow/thebespokepixel?style=social "Twitter")](https://twitter.com/thebespokepixel "Twitter")&#x20;
1820

1921

2022
## Usage
21-
2223
#### Installation
2324

2425
```shell
@@ -38,8 +39,8 @@ const metadata = meta(__dirname) // Start searching from inside this scripts mod
3839
```
3940

4041

41-
## Documentation
4242

43+
## Documentation
4344
Full documentation can be found at [https://thebespokepixel.github.io/meta/][1]
4445

4546
[1]: https://thebespokepixel.github.io/meta/

‎rollup.config.js

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import commonjs from '@rollup/plugin-commonjs'
2+
import resolve from '@rollup/plugin-node-resolve'
3+
4+
const external = id => !id.startsWith('src') && !id.startsWith('.') && !id.startsWith('/') && !id.startsWith('\0')
5+
6+
const config = [{
7+
external,
8+
plugins: [resolve(), commonjs()],
9+
input: 'src/index.js',
10+
output: {
11+
file: 'index.js',
12+
format: 'es',
13+
},
14+
}]
15+
16+
export default config

‎src/index.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
* @private
77
*/
88

9-
import readPkg from 'read-pkg-up'
9+
import {readPackageUpSync} from 'read-pkg-up'
1010

1111
/**
1212
* Creates the metadata collection function, starting at the path provided or
@@ -16,7 +16,7 @@ import readPkg from 'read-pkg-up'
1616
* @return {metadata} The map of reduced package metadata.
1717
*/
1818
export default function meta(cwd = '.') {
19-
const pkg = readPkg.sync({cwd}).packageJson
19+
const pkg = readPackageUpSync({cwd}).packageJson
2020

2121
/**
2222
* Extract metadata for sharing inside a package.

‎test/main.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import test from 'ava'
2-
3-
import pkg from '../package.json'
4-
import meta from '..'
2+
import {readPackageSync} from 'read-pkg'
3+
import meta from '../index.js'
54

65
const myMeta = meta()
6+
const pkg = readPackageSync()
77
const expectedVersion = pkg.version
88

99
const bin = pkg.bin ? Object.keys(pkg.bin)[0] : 'none'

0 commit comments

Comments
 (0)
Please sign in to comment.