Skip to content

Commit f870751

Browse files
committed
fix: typings and general cleanup
The intention of these changes was to add the `"types"` field to the package.json` file to resolve #9. However, I've also included general improvements to the structure of the project. Namely dropping the npm workspaces setup in favor of a more traditional repository structure. This should make it easier for contributors to understand the project and make changes. - Add `"name"` fields to jobs for GitHub Actions - Add `"types"` field to `package.json` to resolve #9 - Add `// @ts-check` to `index.test.js` for static type checking (since it is not included in the `tsconfig.json`) - Add configuration for "Buy Me a Coffee" sponsor button (see [the GitHub docs](https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/displaying-a-sponsor-button-in-your-repository) for more details on what this is and how to set it up) - Bump `"node-version"` to `18` for GitHub Actions. This should reduce issues as we can internally target Node 18 - Bump package version to `"2.1.0"` - Remove abbreviations in commands throughout for improved human readability/comprehension - Remove `.npmignore` in favor of a concise `"files"` field in `package.json` - Remove configuration for `*.js` files in `.editorconfig` to standardize 2-space indentation - Remove `CHANGES.md` from `.gitignore` (this was something I used to use in my projects before discovering a better workflow for commit messages) - Remove workspaces configuration from `package.json` in favor of a more traditional repository structure - Update `LICENSE` to `LICENSE.md` from [IQAndreas/markdown-licenses](https://github.com/IQAndreas/markdown-licenses) for improved readability - Update format of HTML in `README.md` for improved readability - Update metadata (shields.io badges, etc.) in `README.md` to be consistent. Also adds a badge for license, version, gzip size, last commit, and buymeacoffee (removing the buymeacoffe button and nodei.co info) - Update order of `package.json` fields to match the order in the [npm documentation](https://docs.npmjs.com/cli/configuring-npm/package-json) - Update `package.json` to use abbreviated major version syntax (e.g. `"^1"` instead of `"^1.x.x"`)
1 parent 908c3f1 commit f870751

21 files changed

+1294
-2280
lines changed

.editorconfig

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,3 @@ indent_size = 2
99
indent_style = space
1010
insert_final_newline = true
1111
trim_trailing_whitespace = true
12-
13-
[*.js]
14-
indent_size = 4

.github/CODEOWNERS

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# learn more: https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners
2+
* @WillTDA

.github/FUNDING.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# learn more: https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/displaying-a-sponsor-button-in-your-repository
2+
buy_me_a_coffee: willtda

.github/workflows/publish.yaml renamed to .github/workflows/publish.yml

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# based on https://github.com/azu/npm-github-package-example
22

3-
name: 🚀 Publish to npm
3+
name: Publish
44

55
on:
66
push:
@@ -10,7 +10,8 @@ on:
1010
- "!*"
1111

1212
jobs:
13-
release:
13+
publish:
14+
name: 🚀 Publish to npm
1415
runs-on: ubuntu-latest
1516
steps:
1617
- uses: actions/checkout@v3
@@ -22,10 +23,10 @@ jobs:
2223
${{ runner.os }}-node-
2324
- uses: actions/setup-node@v3
2425
with:
25-
node-version: 16.x
26+
node-version: 18.x
2627
registry-url: "https://npm.pkg.github.com"
27-
- run: npm ci
28-
- run: npm t
28+
- run: npm clean-install
29+
- run: npm test
2930

3031
# Publish to npm if this version is not published
3132
- run: |
@@ -34,7 +35,7 @@ jobs:
3435
NODE_AUTH_TOKEN: ${{ secrets.NODE_AUTH_TOKEN }}
3536
3637
# Push tag to GitHub if the version's tag is not tagged
37-
- run: node -p -e '`PACKAGE_VERSION=${require("./package.json").version}`' >> $GITHUB_ENV
38+
- run: node --print '`PACKAGE_VERSION=${require("package.json").version}`' >> $GITHUB_ENV
3839
- uses: pkgdeps/git-tag-action@v2
3940
with:
4041
github_token: ${{ secrets.GITHUB_TOKEN }}

.github/workflows/test.yaml renamed to .github/workflows/test.yml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: 🔬 Run tests
1+
name: Test
22

33
on:
44
push:
@@ -10,6 +10,7 @@ on:
1010

1111
jobs:
1212
test:
13+
name: 🔬 Run tests
1314
runs-on: ubuntu-latest
1415
steps:
1516
- uses: actions/checkout@v3
@@ -21,6 +22,6 @@ jobs:
2122
${{ runner.os }}-node-
2223
- uses: actions/setup-node@v3
2324
with:
24-
node-version: 12.x
25-
- run: npm ci
25+
node-version: 18.x
26+
- run: npm clean-install
2627
- run: npm test

.gitignore

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,3 @@ index.d.ts*
1010
*.lock
1111
*.log
1212
*.tgz
13-
14-
# temporary
15-
CHANGES.md

LICENSE

Lines changed: 0 additions & 1 deletion
This file was deleted.

LICENSE.md

Lines changed: 193 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,193 @@
1+
# Apache License
2+
3+
_Version 2.0, January 2004_
4+
_&lt;<http://www.apache.org/licenses/>&gt;_
5+
6+
### Terms and Conditions for use, reproduction, and distribution
7+
8+
#### 1. Definitions
9+
10+
“License” shall mean the terms and conditions for use, reproduction, and
11+
distribution as defined by Sections 1 through 9 of this document.
12+
13+
“Licensor” shall mean the copyright owner or entity authorized by the copyright
14+
owner that is granting the License.
15+
16+
“Legal Entity” shall mean the union of the acting entity and all other entities
17+
that control, are controlled by, or are under common control with that entity.
18+
For the purposes of this definition, “control” means **(i)** the power, direct or
19+
indirect, to cause the direction or management of such entity, whether by
20+
contract or otherwise, or **(ii)** ownership of fifty percent (50%) or more of the
21+
outstanding shares, or **(iii)** beneficial ownership of such entity.
22+
23+
“You” (or “Your”) shall mean an individual or Legal Entity exercising
24+
permissions granted by this License.
25+
26+
“Source” form shall mean the preferred form for making modifications, including
27+
but not limited to software source code, documentation source, and configuration
28+
files.
29+
30+
“Object” form shall mean any form resulting from mechanical transformation or
31+
translation of a Source form, including but not limited to compiled object code,
32+
generated documentation, and conversions to other media types.
33+
34+
“Work” shall mean the work of authorship, whether in Source or Object form, made
35+
available under the License, as indicated by a copyright notice that is included
36+
in or attached to the work (an example is provided in the Appendix below).
37+
38+
“Derivative Works” shall mean any work, whether in Source or Object form, that
39+
is based on (or derived from) the Work and for which the editorial revisions,
40+
annotations, elaborations, or other modifications represent, as a whole, an
41+
original work of authorship. For the purposes of this License, Derivative Works
42+
shall not include works that remain separable from, or merely link (or bind by
43+
name) to the interfaces of, the Work and Derivative Works thereof.
44+
45+
“Contribution” shall mean any work of authorship, including the original version
46+
of the Work and any modifications or additions to that Work or Derivative Works
47+
thereof, that is intentionally submitted to Licensor for inclusion in the Work
48+
by the copyright owner or by an individual or Legal Entity authorized to submit
49+
on behalf of the copyright owner. For the purposes of this definition,
50+
“submitted” means any form of electronic, verbal, or written communication sent
51+
to the Licensor or its representatives, including but not limited to
52+
communication on electronic mailing lists, source code control systems, and
53+
issue tracking systems that are managed by, or on behalf of, the Licensor for
54+
the purpose of discussing and improving the Work, but excluding communication
55+
that is conspicuously marked or otherwise designated in writing by the copyright
56+
owner as “Not a Contribution.”
57+
58+
“Contributor” shall mean Licensor and any individual or Legal Entity on behalf
59+
of whom a Contribution has been received by Licensor and subsequently
60+
incorporated within the Work.
61+
62+
#### 2. Grant of Copyright License
63+
64+
Subject to the terms and conditions of this License, each Contributor hereby
65+
grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,
66+
irrevocable copyright license to reproduce, prepare Derivative Works of,
67+
publicly display, publicly perform, sublicense, and distribute the Work and such
68+
Derivative Works in Source or Object form.
69+
70+
#### 3. Grant of Patent License
71+
72+
Subject to the terms and conditions of this License, each Contributor hereby
73+
grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,
74+
irrevocable (except as stated in this section) patent license to make, have
75+
made, use, offer to sell, sell, import, and otherwise transfer the Work, where
76+
such license applies only to those patent claims licensable by such Contributor
77+
that are necessarily infringed by their Contribution(s) alone or by combination
78+
of their Contribution(s) with the Work to which such Contribution(s) was
79+
submitted. If You institute patent litigation against any entity (including a
80+
cross-claim or counterclaim in a lawsuit) alleging that the Work or a
81+
Contribution incorporated within the Work constitutes direct or contributory
82+
patent infringement, then any patent licenses granted to You under this License
83+
for that Work shall terminate as of the date such litigation is filed.
84+
85+
#### 4. Redistribution
86+
87+
You may reproduce and distribute copies of the Work or Derivative Works thereof
88+
in any medium, with or without modifications, and in Source or Object form,
89+
provided that You meet the following conditions:
90+
91+
- **(a)** You must give any other recipients of the Work or Derivative Works a copy of
92+
this License; and
93+
- **(b)** You must cause any modified files to carry prominent notices stating that You
94+
changed the files; and
95+
- **(c)** You must retain, in the Source form of any Derivative Works that You distribute,
96+
all copyright, patent, trademark, and attribution notices from the Source form
97+
of the Work, excluding those notices that do not pertain to any part of the
98+
Derivative Works; and
99+
- **(d)** If the Work includes a “NOTICE” text file as part of its distribution, then any
100+
Derivative Works that You distribute must include a readable copy of the
101+
attribution notices contained within such NOTICE file, excluding those notices
102+
that do not pertain to any part of the Derivative Works, in at least one of the
103+
following places: within a NOTICE text file distributed as part of the
104+
Derivative Works; within the Source form or documentation, if provided along
105+
with the Derivative Works; or, within a display generated by the Derivative
106+
Works, if and wherever such third-party notices normally appear. The contents of
107+
the NOTICE file are for informational purposes only and do not modify the
108+
License. You may add Your own attribution notices within Derivative Works that
109+
You distribute, alongside or as an addendum to the NOTICE text from the Work,
110+
provided that such additional attribution notices cannot be construed as
111+
modifying the License.
112+
113+
You may add Your own copyright statement to Your modifications and may provide
114+
additional or different license terms and conditions for use, reproduction, or
115+
distribution of Your modifications, or for any such Derivative Works as a whole,
116+
provided Your use, reproduction, and distribution of the Work otherwise complies
117+
with the conditions stated in this License.
118+
119+
#### 5. Submission of Contributions
120+
121+
Unless You explicitly state otherwise, any Contribution intentionally submitted
122+
for inclusion in the Work by You to the Licensor shall be under the terms and
123+
conditions of this License, without any additional terms or conditions.
124+
Notwithstanding the above, nothing herein shall supersede or modify the terms of
125+
any separate license agreement you may have executed with Licensor regarding
126+
such Contributions.
127+
128+
#### 6. Trademarks
129+
130+
This License does not grant permission to use the trade names, trademarks,
131+
service marks, or product names of the Licensor, except as required for
132+
reasonable and customary use in describing the origin of the Work and
133+
reproducing the content of the NOTICE file.
134+
135+
#### 7. Disclaimer of Warranty
136+
137+
Unless required by applicable law or agreed to in writing, Licensor provides the
138+
Work (and each Contributor provides its Contributions) on an “AS IS” BASIS,
139+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied,
140+
including, without limitation, any warranties or conditions of TITLE,
141+
NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are
142+
solely responsible for determining the appropriateness of using or
143+
redistributing the Work and assume any risks associated with Your exercise of
144+
permissions under this License.
145+
146+
#### 8. Limitation of Liability
147+
148+
In no event and under no legal theory, whether in tort (including negligence),
149+
contract, or otherwise, unless required by applicable law (such as deliberate
150+
and grossly negligent acts) or agreed to in writing, shall any Contributor be
151+
liable to You for damages, including any direct, indirect, special, incidental,
152+
or consequential damages of any character arising as a result of this License or
153+
out of the use or inability to use the Work (including but not limited to
154+
damages for loss of goodwill, work stoppage, computer failure or malfunction, or
155+
any and all other commercial damages or losses), even if such Contributor has
156+
been advised of the possibility of such damages.
157+
158+
#### 9. Accepting Warranty or Additional Liability
159+
160+
While redistributing the Work or Derivative Works thereof, You may choose to
161+
offer, and charge a fee for, acceptance of support, warranty, indemnity, or
162+
other liability obligations and/or rights consistent with this License. However,
163+
in accepting such obligations, You may act only on Your own behalf and on Your
164+
sole responsibility, not on behalf of any other Contributor, and only if You
165+
agree to indemnify, defend, and hold each Contributor harmless for any liability
166+
incurred by, or claims asserted against, such Contributor by reason of your
167+
accepting any such warranty or additional liability.
168+
169+
_END OF TERMS AND CONDITIONS_
170+
171+
### APPENDIX: How to apply the Apache License to your work
172+
173+
To apply the Apache License to your work, attach the following boilerplate
174+
notice, with the fields enclosed by brackets `[]` replaced with your own
175+
identifying information. (Don't include the brackets!) The text should be
176+
enclosed in the appropriate comment syntax for the file format. We also
177+
recommend that a file or class name and description of purpose be included on
178+
the same “printed page” as the copyright notice for easier identification within
179+
third-party archives.
180+
181+
Copyright [yyyy] [name of copyright owner]
182+
183+
Licensed under the Apache License, Version 2.0 (the "License");
184+
you may not use this file except in compliance with the License.
185+
You may obtain a copy of the License at
186+
187+
http://www.apache.org/licenses/LICENSE-2.0
188+
189+
Unless required by applicable law or agreed to in writing, software
190+
distributed under the License is distributed on an "AS IS" BASIS,
191+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
192+
See the License for the specific language governing permissions and
193+
limitations under the License.

README.md

Lines changed: 30 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -2,46 +2,50 @@
22
💿 File System DB 💿
33
</h1>
44

5-
<center style="margin-bottom:1rem;">File System DB (or "FSDB" for short) is a simple, lightweight, synchronous,
6-
database for Node.js powered by JSON.
5+
<div align="center">
76

8-
**Please Note:** This package saves data persistently. This means that this will
9-
not work on places like Heroku and similar services.
7+
![license](https://img.shields.io/npm/l/file-system-db?style=flat-square)
8+
[![version](https://img.shields.io/npm/v/file-system-db?style=flat-square)](https://npmjs.com/package/file-system-db)
9+
[![gzipped size](https://img.shields.io/bundlejs/size/file-system-db?style=flat-square)](https://npmjs.com/package/file-system-db)
10+
[![downloads](https://img.shields.io/npm/dt/file-system-db?style=flat-square)](https://npmjs.com/package/file-system-db)
11+
![last commit](https://img.shields.io/github/last-commit/WillTDA/File-System-DB?style=flat-square)
1012

11-
**v2 Migration:** If you are migrating from **v1** to **v2**, consider reading the detailed changes on this [pull request](https://github.com/WillTDA/File-System-DB/pull/6).
12-
</center>
13+
[![discord](https://img.shields.io/discord/667479986214666272?logo=discord&logoColor=white&style=flat-square)](https://diamonddigital.dev/discord)
14+
[![buy me a coffee](https://img.shields.io/badge/-Buy%20Me%20a%20Coffee-ffdd00?logo=Buy%20Me%20A%20Coffee&logoColor=000000&style=flat-square)](https://www.buymeacoffee.com/willtda)
1315

14-
[![NPM](https://nodei.co/npm/file-system-db.png)](https://npmjs.com/package/file-system-db)
16+
</div>
1517

16-
[![Downloads](https://img.shields.io/npm/dt/file-system-db?logo=npm&style=flat-square)](https://npmjs.com/package/file-system-db) [![Discord Server](https://img.shields.io/discord/667479986214666272?logo=discord&logoColor=white&style=flat-square)](https://diamonddigital.dev/discord)
18+
<br />
19+
20+
**Please Note:** This package saves data persistently. This means that this will
21+
not work on places like Heroku and similar services.
1722

18-
<a href="https://www.buymeacoffee.com/willtda" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/default-orange.png" alt="Buy Me A Coffee" height="41" width="174"></a>
23+
**v2 Migration:** If you are migrating from **v1** to **v2**, consider reading the detailed changes on this [pull request](https://github.com/WillTDA/File-System-DB/pull/6).
1924

2025
## Features
2126

22-
- 📦 <b>Works Out of the Box</b> | Only two lines of code are required to set up
27+
- 📦 **Works Out of the Box** | Only two lines of code are required to set up
2328
and start using your own database.
2429

25-
- 🤹‍♂️ <b>Unlimited Databases</b> | You can create as many databases as you want,
30+
- 🤹‍♂️ **Unlimited Databases** | You can create as many databases as you want,
2631
whenever you want.
2732

28-
- 🗃️ <b>Saved as JSON Files</b> | This package uses JSON files to act as
33+
- 🗃️ **Saved as JSON Files** | This package uses JSON files to act as
2934
databases, so you can easily understand, edit and backup/export the data.
3035

31-
- 📝 <b>Key-Value Based</b> | Designed with beginners in mind, so you can store
36+
- 📝 **Key-Value Based** | Designed with beginners in mind, so you can store
3237
any type of data in your database with ease.
3338

34-
- 📔 <b>Dot Notation Support</b> | You can use dot notation to store and
39+
- 📔 **Dot Notation Support** | You can use dot notation to store and
3540
retrieve JSON fields and data.
3641

37-
-<b>Fast and Synchronous</b> | All operations are synchronous, so saving and
42+
-**Fast and Synchronous** | All operations are synchronous, so saving and
3843
retrieving data takes less than few milliseconds.
3944

40-
- 🚫 <b>No Dependencies</b> | This package is built on top of the
45+
- 🚫 **No Dependencies** | This package is built on top of the
4146
[File System](https://nodejs.org/api/fs.html) module built into Node.js, making
4247
the package size very small.
4348

44-
4549
## Install Package
4650

4751
File System DB's size footprint is tiny, making the installation process really
@@ -194,10 +198,12 @@ db.divide("coins", 4);
194198

195199
- 👋 Need Help? [Join Our Discord Server](https://diamonddigital.dev/discord)!
196200
- 👾 Found a Bug? [Open an Issue](https://github.com/WillTDA/File-System-DB/issues),
197-
or Fork and [Submit a Pull Request](https://github.com/WillTDA/File-System-DB/pulls)
198-
on our [GitHub Repository](https://github.com/WillTDA/File-System-DB)!
199-
<hr>
200-
<center>
201-
<a href="https://diamonddigital.dev/"><strong>Created and maintained by</strong>
202-
<img align="center" style="width:25%;height:auto" src="https://diamonddigital.dev/img/png/ddd_logo_text_transparent.png" alt="Diamond Digital Development Logo"></a>
203-
</center>
201+
or Fork and [Submit a Pull Request](https://github.com/WillTDA/File-System-DB/pulls)
202+
on our [GitHub Repository](https://github.com/WillTDA/File-System-DB)!
203+
204+
---
205+
206+
<a href="https://diamonddigital.dev/">
207+
<strong>Created and maintained by</strong>
208+
<img align="center" alt="Diamond Digital Development Logo" src="https://diamonddigital.dev/img/png/ddd_logo_text_transparent.png" style="width:25%;height:auto" />
209+
</a>

0 commit comments

Comments
 (0)