locter v2.1.6
Locter 🔥
Locter is a library to locate and load a file/modules regarding specific criteria.
Table of Contents
Installation
npm install locter --saveUsage
The following examples are based on some shared assumptions:
- A folder named
filesexists in the root directory. - The folder
filescontains the following files:- example.js
- example.json
- example.ts
- example-long.ts
Locator
Multiple
Locating multiple files will return information about all files matching the pattern.
import { locateMany } from 'locter';
(async () => {
let files = await locateMany(
'files/example.{js,.ts}'
);
console.log(files);
/*
[
{ path: 'files', name: 'example', extension: '.js'},
{ path: 'files', name: 'example', extension: '.ts'}
]
*/
files = await locateMany(
'files/*.{js,ts}'
);
console.log(files);
/*
[
{ path: 'files', name: 'example', extension: '.js'},
{ path: 'files', name: 'example', extension: '.ts'},
{ path: 'files', name: 'example-long', extension: '.ts'},
]
*/
})A synchronous variant is also available: locateManySync
Single
Locating a single file will return information about the first file matching the pattern.
import { locate } from 'locter';
(async () => {
let file = await locate(
'files/example.{js,.ts}'
);
console.log(file);
/*
{ path: 'files', name: 'example', extension: '.js'}
*/
})A synchronous variant is also available: locateSync
Loader
The load method can be used to load a file/module in an asynchronous fashion.
Either a string or the output of the locate/locateSync method can be passed as argument.
import { load, locate } from 'locter';
(async () => {
const file = await locate(
'files/example.{js,.ts}'
);
let content = await load(file);
console.log(content);
// ...
content = await load('...');
console.log(content);
// ...
})There is also a synchronous method called loadSync to load files.
import { loadSync, locateSync } from 'locter';
(async () => {
const file = await locateSync(
'files/example.{js,.ts}'
);
let content = await loadSync(file);
console.log(content);
// ...
content = await loadSync('...');
console.log(content);
// ...
})Two loaders are predefined from scratch and already registered:
- ConfLoader: This loader allows to load
.conffiles. - JSONLoader: This loader allows to load
.jsonfiles. - YAMLLoader: This loader allows to load
.ymlfiles. - ModuleLoader: This loader allows to load modules with
.js,.mjs,.mts,.cjs,.cts,.tsfile extensions independent of the environment (cjs or esm).
To register loader for other file types, the function registerLoader can be used.
import { registerLoader } from 'locter';
registerLoader(['.ext'], {
execute(input: string) {
},
executeSync(input: string) {
}
})License
Made with 💚
Published under MIT License.
11 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago