@beabee/beabee-common v0.21.0-alpha.6
beabee-common
beabee-common
is a shared codebase utilized across Beabee projects, compatible
with Node.js, Deno, and web browsers.
Installation
To install beabee-common
, use the following command:
npm install @beabee/beabee-common --save
Usage
Node.js
In a Node.js environment, use beabee-common
as follows:
import { parseDate } from "@beabee/beabee-common";
parseDate("2022"); // Returns: [ 2021-12-31T23:00:00.000Z, 'y' ]
Deno
Support for Deno is planned. Details on publishing to deno.land will be provided in the future.
Development
Requirements
Development of beabee-common
requires the latest stable versions of both Deno
and Node.js:
- Deno (latest stable version)
- Node.js (latest stable version)
Build Process
To build the project, run:
npm install
npm run build # Alternatively, use `deno task build`
Scripts
Scripts for NPM and Deno tasks are synchronized, ensuring consistency whether
you use npm run ...
or deno task ...
. They are defined in both
package.json
and deno.json
. New scripts can be synchronized with via
deno task sync
or npm run sync
.
Key scripts include:
build
Node.js builds are created using esbuild from Deno
source. Deno projects can directly utilize TypeScript source from ./mod.ts
.
This runs several sub-scripts:
build:types
- Generates TypeScript types using thetsc
compiler.build:node
:build:node:cjs
- Creates a CommonJS bundle withesbuild
, script located at./scripts/esbuild.cjs.ts
.build:node:esm
- Generates an ESM bundle usingesbuild
, script found at./scripts/esbuild.esm.ts
.
Deno's support for NPM packages differs in syntax, e.g., date-fns
is imported
as import { format } from "npm:date-fns";
in Deno, and
import { format } from "date-fns";
in Node.js. Aliases in deno.json
enable
consistent codebase usage across environments.
sync
Synchronizes dependencies and scripts across package.json
and deno.json
to
establishing necessary aliases in Deno and to make the scripts callable from
both. See ./scripts/sync.ts
for details.
generate:index
Generates index.ts
files. Located at ./scripts/generate-index.ts
.
format
Formats code using Deno's standard formatter.
lint
Lints code using Deno's standard linter.
test
Testing is divided into several scripts:
test:types
- Checks for type errors usingtsc
.test:deno
- Main tests using Deno's standard testing framework.test:node
:test:node:esm
- Tests ESM build importability in Node.js.test:node:cjs
- Tests CJS build importability in Node.js.
Manage Dependencies
You can use dependencies for both NPM and Deno. When incorporating Deno
packages, they must be bundled for Node.js compatibility. For a practical
example, refer to
this pull request.
For integrating NPM dependencies, consult the sync
script which ensures
synchronization between the dependency configurations for both environments.
Cross Platform Compatibility
This module is cross platform independent and can be used under Node.js, Deno and in the browser. Therefore, please do not use any runtime APIs from Node.js, Deno or the Web API unless it is available in all these runtimes.
License
beabee-common
is licensed under the AGPL-3.0 license.
19 hours ago
20 hours ago
21 hours ago
18 hours ago
6 days ago
6 days ago
13 days ago
13 days ago
1 month ago
1 month ago
1 month ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
2 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
7 months ago
7 months ago
7 months ago
10 months ago
8 months ago
8 months ago
10 months ago
9 months ago
9 months ago
7 months ago
8 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
11 months ago
11 months ago
11 months ago
11 months ago
1 year ago
12 months ago
1 year ago
11 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year 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
2 years 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
2 years ago
2 years ago
2 years ago