Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/fibo/read-file-utf8
reads content from file using utf-8 encoding
https://github.com/fibo/read-file-utf8
promise readfile utf8
Last synced: 7 days ago
JSON representation
reads content from file using utf-8 encoding
- Host: GitHub
- URL: https://github.com/fibo/read-file-utf8
- Owner: fibo
- Created: 2016-04-19T09:40:27.000Z (over 8 years ago)
- Default Branch: main
- Last Pushed: 2023-10-22T11:08:52.000Z (about 1 year ago)
- Last Synced: 2024-04-23T11:18:26.819Z (7 months ago)
- Topics: promise, readfile, utf8
- Language: JavaScript
- Homepage: http://g14n.info/read-file-utf8
- Size: 47.9 KB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# read-file-utf8
> reads content from file using utf-8 encoding, also imports JSON files easily
## Installation
With [npm](https://npmjs.org/) do
```sh
npm install read-file-utf8
```## Usage
`read(filePath: string): Promise`
Read from a text file.
```js
import read from "read-file-utf8";const filePath = "path/to/file.txt";
try {
// Read file content.
const content = await read(filePath)console.log(content)
} catch (error) {
// In case you do not have permissions,
// you may want to handle it here.
console.error(error)
}
```## Examples
### Import JSON
This makes sense at the time of this writing (2020) since it is not possibile to import JSON using `require` when ES modules are enabled in Node.
Update (2023): you can use import assertions like `import pkg from "./package.json" assert { type: "json" }` but you can a warning:
```
ExperimentalWarning: Import assertions are not a stable feature of the JavaScript language. Avoid relying on their current behavior and syntax as those might change in a future version of Node.js.
```So, to get attributes from a *package.json* you can do something like the following.
```js
// Read version from package.json file.
// Given the `.json` extension, it is assumed the content is JSON
// and `JSON.parse` is used to parse it.
const { version } = await read("./package.json");console.log(version)
```If you are using TypeScript you may need to provide the type of your JSON.
```ts
const { version } = await read<{ version: string }>("./package.json");
```Or you may want to double check the input declaring it as `unknown` and use a type-guard.
```ts
const pkg = await read("./package.json");if (isPackageJson(pkg)) console.log(pkg.version);
```### Read SQL files
Suppose you have some SQL queries. It is really better to put every query
in its own *queryFile.sql* good old SQL file, instead then inside *someOtherFile.js* JavaScript file.Create a *sql/* folder and put there all your queries.
Add also a *sql/index.js* with the following content```js
import { join } from "node:path";export const sql (fileName) =>
read(path.join(__dirname, `${fileName}.sql`));
```Suppose there is a *sql/count_winners.sql* file with the following content
```sql
SELECT COUNT(*) AS num
FROM foo.contest
WHERE is_winner IS TRUE
```Now you are able to do, for example
```js
import { Client } from "pg";
import sql from "./path/to/sql.js";const client = new Client();
await client.connect();const sqlCode = await sql("count_winners");
const res = await client.query(sqlCode);
console.log(res.rows);
```## See also
- [write-file-utf8](https://github.com/fibo/write-file-utf8)
## License
[MIT](https://fibo.github.io/mit-license/)