Skip to content

Commit

Permalink
Moving to ESM modules.
Browse files Browse the repository at this point in the history
  • Loading branch information
seanmorris committed Aug 22, 2024
1 parent 4845166 commit 808f881
Show file tree
Hide file tree
Showing 19 changed files with 91 additions and 78 deletions.
11 changes: 5 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,7 @@ npm install weaker
```

```javascript
const WeakerMap = require('weaker/WeakerMap');
const WeakerSet = require('weaker/WeakerSet');
import { WeakerMap } from 'weaker';
```

### One or the other
Expand All @@ -24,8 +23,8 @@ npm install weakerset
```

```javascript
const WeakerMap = require('weakermap');
const WeakerSet = require('weakerset');
import { WeakerMap } from 'weakermap';
import { WeakerSet } from 'weakerset';
```

## About
Expand All @@ -49,7 +48,7 @@ A `WeakerMap` will only hold onto its values as long as they aren't garbage coll
*NOTE*: The following example makes use of `global.gc()` to force garbage collection to run regardless of existing heuristics. This requires node to be run with the `--expose-gc` flag. This is not necessary except to demonstrate the behavior in a short script, where the garbage collector would not normally run until the program exits.

```javascript
const WeakerMap = require('weaker/WeakerMap');
import { WeakerMap } from 'weaker/WeakerMmap';

const wm = new WeakerMap;
const retain = [];
Expand Down Expand Up @@ -85,7 +84,7 @@ A `WeakerSet` will only hold onto its values as long as they aren't garbage coll
*NOTE*: The following example makes use of `global.gc()` to force garbage collection to run regardless of existing heuristics. This requires node to be run with the `--expose-gc` flag. This is not necessary except to demonstrate the behavior in a short script, where the garbage collector would not normally run until the program exits.

```javascript
const WeakerSet = require('weaker/WeakerSet');
import { WeakerSet } from 'weakerset';

const ws = new WeakerSet;
const retain = [];
Expand Down
1 change: 0 additions & 1 deletion WeakerMap.js

This file was deleted.

1 change: 1 addition & 0 deletions WeakerMap.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export * from "weakermap/WeakerMap.mjs";
1 change: 0 additions & 1 deletion WeakerSet.js

This file was deleted.

1 change: 1 addition & 0 deletions WeakerSet.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export * from "weakerset/WeakerSet.mjs";
2 changes: 2 additions & 0 deletions index.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
export * from "weakermap/WeakerMap.mjs";
export * from "weakerset/WeakerSet.mjs";
39 changes: 12 additions & 27 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

14 changes: 8 additions & 6 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
{
"name": "weaker",
"version": "0.0.3",
"version": "0.0.5",
"description": "Weaker maps by value, and enumerable weaker sets",
"author": "Sean Morris",
"main": "index.mjs",
"scripts": {
"test": "node --expose-gc weakerset/test.js && node --expose-gc weakermap/test.js"
"test": "node --expose-gc ./test.mjs && node --expose-gc weakerset/test.mjs && node --expose-gc weakermap/test.mjs"
},
"repository": {
"type": "git",
Expand All @@ -16,13 +17,14 @@
},
"homepage": "https://github.com/seanmorris/Weaker#readme",
"dependencies": {
"weakermap": "^0.0.3",
"weakerset": "^0.0.3"
"weakermap": "^0.0.4",
"weakerset": "^0.0.4"
},
"files": [
"LICENSE",
"NOTICE",
"WeakerMap.js",
"WeakerSet.js"
"index.mjs",
"WeakerMap.mjs",
"WeakerSet.mjs"
]
}
22 changes: 22 additions & 0 deletions test.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
import { test } from 'node:test';
import assert from 'node:assert';

test('Import WeakerMap from index.mjs', async () => {
const { WeakerMap } = await import("./index.mjs");
assert.ok(WeakerMap.name === 'WeakerMap');
});

test('Import WeakerMap from specific file', async () => {
const { WeakerMap } = await import("./WeakerMap.mjs");
assert.ok(WeakerMap.name === 'WeakerMap');
});

test('Import WeakerSet from index.mjs', async () => {
const { WeakerSet } = await import("./WeakerSet.mjs");
assert.ok(WeakerSet.name === 'WeakerSet');
});

test('Import WeakerSet from specific file', async () => {
const { WeakerSet } = await import("./WeakerSet.mjs");
assert.ok(WeakerSet.name === 'WeakerSet');
});
4 changes: 2 additions & 2 deletions weakermap/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ npm install weakermap
```

```javascript
const WeakerMap = require('weakermap');
import { WeakerMap } from 'weakermap';
```

## Methods
Expand Down Expand Up @@ -229,7 +229,7 @@ A `WeakerMap` will only hold onto its values as long as they aren't garbage coll
*NOTE*: The following example makes use of `global.gc()` to force garbage collection to run regardless of existing heuristics. This requires node to be run with the `--expose-gc` flag. This is not necessary except to demonstrate the behavior in a short script, where the garbage collector would not normally run until the program exits.

```javascript
const WeakerMap = require('weakermap');
import { WeakerMap } from 'weakermap';

const wm = new WeakerMap;
const retain = [];
Expand Down
4 changes: 2 additions & 2 deletions weakermap/WeakerMap.js → weakermap/WeakerMap.mjs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
module.exports = class WeakerMap
export class WeakerMap
{
registry = new FinalizationRegistry(held => this.delete(held));
map = new Map;
Expand Down Expand Up @@ -123,4 +123,4 @@ module.exports = class WeakerMap
}
};

Object.defineProperty(module.exports, Symbol.species, module.exports);
Object.defineProperty(WeakerMap, Symbol.species, WeakerMap);
4 changes: 2 additions & 2 deletions weakermap/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 6 additions & 5 deletions weakermap/package.json
Original file line number Diff line number Diff line change
@@ -1,20 +1,21 @@
{
"name": "weakermap",
"version": "0.0.3",
"version": "0.0.5",
"author": "Sean Morris",
"description": "A WeakerMap is an enumerable Map with with weak values rather than keys",
"main": "WeakerMap.js",
"main": "WeakerMap.mjs",
"scripts": {
"test": "node --test --expose-gc test.js"
"test": "node --test --expose-gc test.mjs"
},
"repository": {
"type": "git",
"url": "git+https://github.com/seanmorris/Weaker.git"
},
"license": "Apache 2.0",
"files": [
"WeakerMap.mjs",
"README.md",
"LICENSE",
"NOTICE",
"WeakerMap.js"
"NOTICE"
]
}
6 changes: 3 additions & 3 deletions weakermap/test.js → weakermap/test.mjs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
const test = require('node:test');
const assert = require('node:assert/strict');
const WeakerMap = require('./WeakerMap');
import { test } from 'node:test';
import assert from 'node:assert';
import { WeakerMap } from './WeakerMap.mjs';

test('### WeakerMap.construct(...entries)', () => {
const wm = new WeakerMap([ ['x', {a:1}], ['y', {b:2}], ['z', {c:3}] ]);
Expand Down
4 changes: 2 additions & 2 deletions weakerset/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ npm install weakerset
```

```javascript
const WeakerSet = require('weakerset');
import { WeakerSet } from 'weakerset';
```

## Methods
Expand Down Expand Up @@ -217,7 +217,7 @@ A `WeakerSet` will only hold onto its values as long as they aren't garbage coll
*NOTE*: The following example makes use of `global.gc()` to force garbage collection to run regardless of existing heuristics. This requires node to be run with the `--expose-gc` flag. This is not necessary except to demonstrate the behavior in a short script, where the garbage collector would not normally run until the program exits.

```javascript
const WeakerSet = require('weakerset');
import { WeakerSet } from 'weakerset';

const ws = new WeakerSet;
const retain = [];
Expand Down
6 changes: 3 additions & 3 deletions weakerset/WeakerSet.js → weakerset/WeakerSet.mjs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
const WeakerMap = require('weakermap/WeakerMap');
import { WeakerMap } from 'weakermap/WeakerMap.mjs';

module.exports = class WeakerSet
export class WeakerSet
{
registry = new FinalizationRegistry(held => this.delete(this.map.get(held)));
weakMap = new WeakMap;
Expand Down Expand Up @@ -112,4 +112,4 @@ module.exports = class WeakerSet
}
};

Object.defineProperty(module.exports, Symbol.species, module.exports);
Object.defineProperty(WeakerMap, Symbol.species, WeakerMap);
19 changes: 10 additions & 9 deletions weakerset/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

13 changes: 7 additions & 6 deletions weakerset/package.json
Original file line number Diff line number Diff line change
@@ -1,23 +1,24 @@
{
"name": "weakerset",
"version": "0.0.3",
"version": "0.0.5",
"author": "Sean Morris",
"description": "A WeakerSet an enumerable WeakSet",
"main": "WeakerSet.js",
"main": "WeakerSet.mjs",
"scripts": {
"test": "node --test --expose-gc test.js"
"test": "node --test --expose-gc test.mjs"
},
"repository": {
"type": "git",
"url": "git+https://github.com/seanmorris/Weaker.git"
},
"license": "Apache 2.0",
"dependencies": {
"weakermap": "^0.0.3"
"weakermap": "^0.0.4"
},
"files": [
"WeakerSet.mjs",
"README.md",
"LICENSE",
"NOTICE",
"WeakerSet.js"
"NOTICE"
]
}
6 changes: 3 additions & 3 deletions weakerset/test.js → weakerset/test.mjs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
const test = require('node:test');
const assert = require('node:assert/strict');
const WeakerSet = require('./WeakerSet');
import { test } from 'node:test';
import assert from 'node:assert';
import { WeakerSet } from './WeakerSet.mjs';

test('### WeakerSet.construct(...entries)', () => {
const ws = new WeakerSet([ {a:1}, {b:2}, {c:3} ]);
Expand Down

0 comments on commit 808f881

Please sign in to comment.