Skip to content

Commit 5f26f15

Browse files
author
Steve Thompson
committed
Updating README.
Added declaration file.
1 parent 118b3db commit 5f26f15

16 files changed

+1515
-465
lines changed

README.md

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,17 +13,22 @@ npm install @writetome51/public-array
1313
## Loading
1414
```
1515
// If using TypeScript:
16-
import {PublicArray} from '@writetome51/public-array';
16+
import { getPublicArray } from '@writetome51/public-array';
1717
// If using ES5 JavaScript:
18-
var PublicArray = require('@writetome51/public-array').PublicArray;
18+
var getPublicArray = require('@writetome51/public-array').getPublicArray;
1919
```
2020

2121

2222
## Public API
2323

24-
### Constructor
24+
### Instantiation
2525
```
26-
new PublicArray(array = [])
26+
getPublicArray(array = []): PublicArray
27+
// Examples:
28+
// let arr = getPublicArray([1,2,3,4,5]);
29+
// Or, instantiate with an empty array:
30+
// let arr = getPublicArray();
31+
2732
```
2833

2934
### Properties
@@ -43,8 +48,6 @@ data : any[] (read-writable) // This is the array to be operated on.
4348
## Usage
4449

4550
```
46-
// getting an instance:
47-
let arr = new PublicArray(['h','e','l','l','o']);
4851
4952
// changing the array content:
5053
arr.data = [1,2,3,4,5,6,7];

README.txt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,9 @@ To actually see or get the array itself, you must access PublicArray's data prop
1919

2020
console.log(arr.data); // logs '[10,3,4,100,200,300]'
2121

22-
PublicArray has several injected dependencies, so you need to use ObjectFactory (which is
23-
included by npm) to instantiate it:
22+
To instantiate:
2423

25-
let arr = ObjectFactory.getInstance(PublicArray, [ [1,2,3,4,5,6] ]);
24+
let arr = getPublicArray( [1,2,3,4,5,6] );
2625

2726
Aside from 'data', PublicArray has these public properties, which are all instances of the
2827
other classes in this package:

dist/index.d.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
import { PublicArray } from './privy/PublicArray';
2+
3+
4+
export declare function getPublicArray(array?: any[]): PublicArray;

dist/index.js

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
"use strict";
2+
Object.defineProperty(exports, "__esModule", { value: true });
3+
var di_factory_1 = require("@writetome51/di-factory");
4+
var public_array_filter_1 = require("@writetome51/public-array-filter");
5+
var public_array_getter_1 = require("@writetome51/public-array-getter");
6+
var public_array_getter_converter_1 = require("@writetome51/public-array-getter-converter");
7+
var public_array_getter_remover_1 = require("@writetome51/public-array-getter-remover");
8+
var public_array_inserter_1 = require("@writetome51/public-array-inserter");
9+
var public_array_remover_1 = require("@writetome51/public-array-remover");
10+
var public_array_replacer_1 = require("@writetome51/public-array-replacer");
11+
var public_array_sorter_1 = require("@writetome51/public-array-sorter");
12+
var PublicArray_1 = require("./privy/PublicArray");
13+
di_factory_1.DIFactory.register({
14+
class: PublicArray_1.PublicArray,
15+
dependencies: [
16+
public_array_filter_1.PublicArrayFilter, public_array_getter_converter_1.PublicArrayGetterConverter, public_array_getter_1.PublicArrayGetter,
17+
public_array_getter_remover_1.PublicArrayGetterRemover, public_array_inserter_1.PublicArrayInserter,
18+
public_array_remover_1.PublicArrayRemover, public_array_replacer_1.PublicArrayReplacer, public_array_sorter_1.PublicArraySorter
19+
]
20+
});
21+
function getPublicArray(array) {
22+
if (array === void 0) { array = []; }
23+
return di_factory_1.DIFactory.getInstance(PublicArray_1.PublicArray, [array]);
24+
}
25+
exports.getPublicArray = getPublicArray;

dist/privy/PublicArray.d.ts

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
import { PublicArrayRemover } from '@writetome51/public-array-remover';
2+
import { PublicArrayContent } from '@writetome51/public-array-content';
3+
import { PublicArrayGetter } from '@writetome51/public-array-getter';
4+
import { PublicArrayInserter } from '@writetome51/public-array-inserter';
5+
import { PublicArraySorter } from '@writetome51/public-array-sorter';
6+
import { PublicArrayReplacer } from '@writetome51/public-array-replacer';
7+
import { PublicArrayGetterConverter } from '@writetome51/public-array-getter-converter';
8+
import { PublicArrayGetterRemover } from '@writetome51/public-array-getter-remover';
9+
import { PublicArrayFilter } from '@writetome51/public-array-filter';
10+
11+
12+
/**************
13+
This class is called PublicArray because an array is contained inside it, in a public property.
14+
15+
The main reason you would use this class is if you hate JavaScript's built-in Array
16+
methods, like .slice(), .splice(), .push(), and .shift(). This class has much clearer
17+
and expressive method names.
18+
19+
A few examples of usage:
20+
21+
let arr = getPublicArray( [1,2,3,4,5,6] );
22+
arr.remove.tail(2); // arr.data is now [1,2,3,4]
23+
if (arr.notEmpty) arr.prepend([10]); // arr.data is now [10,1,2,3,4]
24+
25+
To access the array itself, you access the 'data' property.
26+
*************/
27+
export declare class PublicArray extends PublicArrayContent {
28+
29+
private _filter;
30+
private _getConverted;
31+
private _get;
32+
private _getAndRemove;
33+
private _insert;
34+
private _remove;
35+
private _replace;
36+
private _sort;
37+
38+
39+
constructor(
40+
_filter: PublicArrayFilter,
41+
_getConverted: PublicArrayGetterConverter,
42+
_get: PublicArrayGetter,
43+
_getAndRemove: PublicArrayGetterRemover,
44+
_insert: PublicArrayInserter,
45+
_remove: PublicArrayRemover,
46+
_replace: PublicArrayReplacer,
47+
_sort: PublicArraySorter,
48+
49+
// The actual array:
50+
data?: any[]
51+
);
52+
53+
54+
readonly filter: PublicArrayFilter;
55+
readonly getConverted: PublicArrayGetterConverter;
56+
readonly get: PublicArrayGetter;
57+
readonly getAndRemove: PublicArrayGetterRemover;
58+
readonly insert: PublicArrayInserter;
59+
readonly remove: PublicArrayRemover;
60+
readonly replace: PublicArrayReplacer;
61+
readonly sort: PublicArraySorter;
62+
readonly copy: PublicArray;
63+
64+
65+
66+
append(values: any[]): this;
67+
68+
69+
prepend(values: any[]): this;
70+
71+
72+
forEach(iterationFunction: Function): this;
73+
}

dist/privy/PublicArray.js

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
"use strict";
2+
var __extends = (this && this.__extends) || (function () {
3+
var extendStatics = function (d, b) {
4+
extendStatics = Object.setPrototypeOf ||
5+
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6+
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
7+
return extendStatics(d, b);
8+
}
9+
return function (d, b) {
10+
extendStatics(d, b);
11+
function __() { this.constructor = d; }
12+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
13+
};
14+
})();
15+
Object.defineProperty(exports, "__esModule", { value: true });
16+
var array_append_prepend_1 = require("@writetome51/array-append-prepend");
17+
var di_factory_1 = require("@writetome51/di-factory");
18+
var public_array_content_1 = require("@writetome51/public-array-content");
19+
/**************
20+
This class is called PublicArray because an array is contained inside it, in a public property.
21+
22+
The main reason you would use this class is if you hate JavaScript's built-in Array
23+
methods, like .slice(), .splice(), .push(), and .shift(). This class has much clearer
24+
and expressive method names.
25+
26+
A few examples of usage:
27+
28+
let arr = getPublicArray( [1,2,3,4,5,6] );
29+
arr.remove.tail(2); // arr.data is now [1,2,3,4]
30+
if (arr.notEmpty) arr.prepend([10]); // arr.data is now [10,1,2,3,4]
31+
32+
To access the array itself, you access the 'data' property.
33+
*************/
34+
var PublicArray = /** @class */ (function (_super) {
35+
__extends(PublicArray, _super);
36+
function PublicArray(
37+
// begin injected dependencies...
38+
_filter, _getConverted, _get, _getAndRemove, _insert, _remove, _replace, _sort,
39+
// ... end injected dependencies
40+
data) {
41+
if (data === void 0) { data = []; }
42+
var _this = _super.call(this, data) || this;
43+
_this._filter = _filter;
44+
_this._getConverted = _getConverted;
45+
_this._get = _get;
46+
_this._getAndRemove = _getAndRemove;
47+
_this._insert = _insert;
48+
_this._remove = _remove;
49+
_this._replace = _replace;
50+
_this._sort = _sort;
51+
_this._createGetterAndOrSetterForEach(
52+
// each of these is a public property:
53+
['filter', 'getConverted', 'get', 'getAndRemove', 'insert',
54+
'remove', 'replace', 'sort'], {
55+
get_getterFunction: function (property) {
56+
return function () {
57+
_this["_" + property].data = _this.data;
58+
return _this["_" + property];
59+
};
60+
}
61+
});
62+
return _this;
63+
}
64+
Object.defineProperty(PublicArray.prototype, "copy", {
65+
// this.copy -- returns independent copy of this.
66+
get: function () {
67+
// @ts-ignore
68+
return di_factory_1.DIFactory.getInstance(PublicArray, [this.get.copy]);
69+
},
70+
enumerable: true,
71+
configurable: true
72+
});
73+
PublicArray.prototype.append = function (values) {
74+
return this.returnThis_after(array_append_prepend_1.append(values, this.data));
75+
};
76+
PublicArray.prototype.prepend = function (values) {
77+
return this.returnThis_after(array_append_prepend_1.prepend(values, this.data));
78+
};
79+
// this.forEach(iterationFunction)
80+
// iterationFunction = function(currentItem, currentIndex?, entireArray?){...}
81+
PublicArray.prototype.forEach = function (iterationFunction) {
82+
return this.returnThis_after(this.data.forEach(iterationFunction));
83+
};
84+
return PublicArray;
85+
}(public_array_content_1.PublicArrayContent));
86+
exports.PublicArray = PublicArray;

tests/publicArray_test.js renamed to dist/tests.js

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
"use strict";
22
Object.defineProperty(exports, "__esModule", { value: true });
3-
var ObjectFactory_1 = require("@writetome51/object-factory/ObjectFactory");
4-
var PublicArray_1 = require("../PublicArray");
5-
var arr = ObjectFactory_1.ObjectFactory.getInstance(PublicArray_1.PublicArray, [[1, 2, 3, 4, 5, 6, 7, 8, 9]]);
3+
var index_1 = require("./index");
4+
var arr = index_1.getPublicArray([1, 2, 3, 4, 5, 6, 7, 8, 9]);
65
var otherArr = arr.data;
76
otherArr.length = 0;
87
console.log(otherArr);
@@ -23,9 +22,7 @@ console.log(arr.data);
2322
console.log(anotherArr.data);
2423
console.log(arr.length);
2524
26-
let hasStrings = arr.anyPass((item)=>{
27-
return typeof item === 'string';
28-
});
25+
let hasStrings = arr.anyPass((item) => typeof item === 'string' );
2926
3027
console.log(hasStrings);
3128

lib/index.js

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
"use strict";
2+
Object.defineProperty(exports, "__esModule", { value: true });
3+
var di_factory_1 = require("@writetome51/di-factory");
4+
var public_array_filter_1 = require("@writetome51/public-array-filter");
5+
var public_array_getter_1 = require("@writetome51/public-array-getter");
6+
var public_array_getter_converter_1 = require("@writetome51/public-array-getter-converter");
7+
var public_array_getter_remover_1 = require("@writetome51/public-array-getter-remover");
8+
var public_array_inserter_1 = require("@writetome51/public-array-inserter");
9+
var public_array_remover_1 = require("@writetome51/public-array-remover");
10+
var public_array_replacer_1 = require("@writetome51/public-array-replacer");
11+
var public_array_sorter_1 = require("@writetome51/public-array-sorter");
12+
var PublicArray_1 = require("./privy/PublicArray");
13+
di_factory_1.DIFactory.register({
14+
class: PublicArray_1.PublicArray,
15+
dependencies: [
16+
public_array_filter_1.PublicArrayFilter, public_array_getter_converter_1.PublicArrayGetterConverter, public_array_getter_1.PublicArrayGetter,
17+
public_array_getter_remover_1.PublicArrayGetterRemover, public_array_inserter_1.PublicArrayInserter,
18+
public_array_remover_1.PublicArrayRemover, public_array_replacer_1.PublicArrayReplacer, public_array_sorter_1.PublicArraySorter
19+
]
20+
});
21+
function getPublicArray(array) {
22+
return di_factory_1.DIFactory.getInstance(PublicArray_1.PublicArray, [array]);
23+
}
24+
exports.getPublicArray = getPublicArray;
Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
import { DIFactory } from '@writetome51/di-factory';
2-
import { PublicArrayContent } from '@writetome51/public-array-content';
32
import { PublicArrayFilter } from '@writetome51/public-array-filter';
4-
import { PublicArrayGetter } from '@writetome51/public-array-item-getter';
3+
import { PublicArrayGetter } from '@writetome51/public-array-getter';
54
import { PublicArrayGetterConverter } from '@writetome51/public-array-getter-converter';
6-
import { PublicArrayGetterRemover } from '@writetome51/public-array-item-getter-remover';
7-
import { PublicArrayInserter } from '@writetome51/public-array-item-inserter';
8-
import { PublicArrayRemover } from '@writetome51/public-array-item-remover';
9-
import { PublicArrayReplacer } from '@writetome51/public-array-item-replacer';
5+
import { PublicArrayGetterRemover } from '@writetome51/public-array-getter-remover';
6+
import { PublicArrayInserter } from '@writetome51/public-array-inserter';
7+
import { PublicArrayRemover } from '@writetome51/public-array-remover';
8+
import { PublicArrayReplacer } from '@writetome51/public-array-replacer';
109
import { PublicArraySorter } from '@writetome51/public-array-sorter';
10+
import { PublicArray } from './privy/PublicArray';
1111

1212

1313
DIFactory.register(
@@ -22,6 +22,6 @@ DIFactory.register(
2222
);
2323

2424

25-
export function getPublicArray(array){
25+
export function getPublicArray(array = []) {
2626
return DIFactory.getInstance(PublicArray, [array]);
2727
}

lib/PublicArray.js renamed to lib/privy/PublicArray.js

Lines changed: 9 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -13,28 +13,18 @@ var __extends = (this && this.__extends) || (function () {
1313
};
1414
})();
1515
Object.defineProperty(exports, "__esModule", { value: true });
16-
var di_factory_1 = require("@writetome51/di-factory");
17-
var public_array_item_remover_1 = require("@writetome51/public-array-item-remover");
1816
var public_array_content_1 = require("@writetome51/public-array-content");
19-
var public_array_item_getter_1 = require("@writetome51/public-array-item-getter");
20-
var public_array_item_inserter_1 = require("@writetome51/public-array-item-inserter");
21-
var public_array_sorter_1 = require("@writetome51/public-array-sorter");
22-
var public_array_item_replacer_1 = require("@writetome51/public-array-item-replacer");
23-
var public_array_getter_converter_1 = require("@writetome51/public-array-getter-converter");
24-
var public_array_item_getter_remover_1 = require("@writetome51/public-array-item-getter-remover");
25-
var public_array_filter_1 = require("@writetome51/public-array-filter");
26-
var append_prepend_1 = require("@writetome51/array-append-prepend/append-prepend");
17+
var array_append_prepend_1 = require("@writetome51/array-append-prepend");
2718
/**************
28-
This class is called PublicArray because although the class instance is not the array itself, and the
29-
actual array is contained inside it in a property, that property is public (or, in other words, open).
19+
This class is called PublicArray because an array is contained inside it, in a public property.
3020
3121
The main reason you would use this class is if you hate JavaScript's built-in Array
3222
methods, like .slice(), .splice(), .push(), and .shift(). This class has much clearer
3323
and expressive method names.
3424
3525
A few examples of usage:
3626
37-
let arr = ObjectFactory.getInstance(PublicArray, [[1,2,3,4,5,6]]);
27+
let arr = getPublicArray( [1,2,3,4,5,6] );
3828
arr.remove.tail(2); // arr.data is now [1,2,3,4]
3929
if (arr.notEmpty) arr.prepend([10]); // arr.data is now [10,1,2,3,4]
4030
@@ -76,30 +66,24 @@ var PublicArray = /** @class */ (function (_super) {
7666
// this.copy -- returns independent copy of this.
7767
get: function () {
7868
// @ts-ignore
79-
return di_factory_1.ObjectFactory.getInstance(PublicArray, [this.get.copy()]);
69+
return DIFactory.getInstance(PublicArray, [this.get.copy()]);
8070
},
8171
enumerable: true,
8272
configurable: true
8373
});
8474
PublicArray.prototype.append = function (values) {
85-
return this.returnThis_after(append_prepend_1.append(values, this.data));
75+
return this.returnThis_after(array_append_prepend_1.append(values, this.data));
8676
};
8777
PublicArray.prototype.prepend = function (values) {
88-
return this.returnThis_after(append_prepend_1.prepend(values, this.data));
78+
return this.returnThis_after(array_append_prepend_1.prepend(values, this.data));
8979
};
9080
// this.forEach(iterationFunction)
91-
// iterationFunction = function(currentItem, currentIndex, entireArray){...}
81+
// iterationFunction = function(currentItem, currentIndex?, entireArray?){...}
9282
PublicArray.prototype.forEach = function (iterationFunction) {
9383
this.returnThis_after(this.data.forEach(iterationFunction));
9484
};
9585
return PublicArray;
9686
}(public_array_content_1.PublicArrayContent));
9787
exports.PublicArray = PublicArray;
98-
di_factory_1.ObjectFactory.register({
99-
class: PublicArray,
100-
dependencies: [
101-
public_array_filter_1.PublicArrayFilter, public_array_getter_converter_1.PublicArrayGetterConverter, public_array_item_getter_1.PublicArrayItemGetter,
102-
public_array_item_getter_remover_1.PublicArrayItemGetterRemover, public_array_item_inserter_1.PublicArrayItemInserter,
103-
public_array_item_remover_1.PublicArrayItemRemover, public_array_item_replacer_1.PublicArrayItemReplacer, public_array_sorter_1.PublicArraySorter
104-
]
105-
});
88+
//
89+
//

0 commit comments

Comments
 (0)