diff --git a/Promise.js b/Promise.js index e1fa695..9d2e7ab 100644 --- a/Promise.js +++ b/Promise.js @@ -464,6 +464,11 @@ object.Constructor('IterablePromise', Promise, { every: promiseProxy('every'), + join: async function(){ + return [...(await this)] + .join(...arguments) }, + + // this is defined globally as Promise.prototype.iter(..) // // for details see: PromiseMixin(..) below... diff --git a/generator.js b/generator.js index a9d0169..4cb7713 100644 --- a/generator.js +++ b/generator.js @@ -232,7 +232,7 @@ object.Mixin('GeneratorMixin', 'soft', { return that(...arguments).toArray() }, { toString: function(){ return that.toString() - + '\n .toString()'}, }) }, + + '\n .toArray()'}, }) }, gpop: makeGenerator('gpop'), pop: function(){ var that = this @@ -242,7 +242,7 @@ object.Mixin('GeneratorMixin', 'soft', { return that(...arguments).pop() }, { toString: function(){ return that.toString() - + '\n .gpop()'}, }) }, + + '\n .pop()'}, }) }, push: makeGenerator('push'), gshift: makeGenerator('gshift'), shift: function(){ @@ -253,7 +253,7 @@ object.Mixin('GeneratorMixin', 'soft', { return that(...arguments).shift() }, { toString: function(){ return that.toString() - + '\n .gshift()'}, }) }, + + '\n .shift()'}, }) }, unshift: makeGenerator('unshift'), // promises... @@ -277,6 +277,18 @@ object.Mixin('GeneratorMixin', 'soft', { //zip: makeGenerator('zip'), enumerate: makeGenerator('enumerate'), + + // XXX should this have a .gjoin(..) companion... + join: function(){ + var args = [...arguments] + var that = this + return Object.assign( + function(){ + //return that(...arguments).toArray().shift() }, + return that(...arguments).join(...args) }, + { toString: function(){ + return that.toString() + + '\n .join()'}, }) }, }) @@ -449,6 +461,10 @@ object.Mixin('GeneratorProtoMixin', 'soft', { var i = 0 for(var e of this){ yield [i++, e] } }, + + join: function(){ + return [...this] + .join(...arguments) }, }) @@ -554,6 +570,10 @@ object.Mixin('AsyncGeneratorProtoMixin', 'soft', { yield elem yield* this }, + join: async function(){ + return [...(await this)] + .join(...arguments) }, + // XXX // slice -- not sure if we need this... // ... diff --git a/package-lock.json b/package-lock.json index 0523651..1ef2fcf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "ig-types", - "version": "6.15.6", + "version": "6.15.7", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "ig-types", - "version": "6.15.6", + "version": "6.15.7", "license": "BSD-3-Clause", "dependencies": { "ig-object": "^6.0.0", @@ -35,9 +35,9 @@ } }, "node_modules/@jridgewell/resolve-uri": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.8.tgz", - "integrity": "sha512-YK5G9LaddzGbcucK4c8h5tWFmMPBvRZ/uyWmN1/SbBdIvqGUdWGkJ5BAaccgs6XbzVLsqbPJrBSFwKv3kT9i7w==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", "dev": true, "engines": { "node": ">=6.0.0" @@ -124,9 +124,9 @@ } }, "node_modules/c8": { - "version": "7.11.3", - "resolved": "https://registry.npmjs.org/c8/-/c8-7.11.3.tgz", - "integrity": "sha512-6YBmsaNmqRm9OS3ZbIiL2EZgi1+Xc4O24jL3vMYGE6idixYuGdy76rIfIdltSKDj9DpLNrcXSonUTR1miBD0wA==", + "version": "7.12.0", + "resolved": "https://registry.npmjs.org/c8/-/c8-7.12.0.tgz", + "integrity": "sha512-CtgQrHOkyxr5koX1wEUmN/5cfDa2ckbHRA4Gy5LAL0zaCFtVWJS5++n+w4/sr2GWGerBxgTjpKeDclk/Qk6W/A==", "dev": true, "dependencies": { "@bcoe/v8-coverage": "^0.2.3", @@ -351,9 +351,9 @@ } }, "node_modules/ig-stoppable": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ig-stoppable/-/ig-stoppable-2.0.0.tgz", - "integrity": "sha512-UfIQZI6kAPUbroocVRrgtH7cTulg8kfUoHo7EMvhiEjtzWvHDlzTotCRSeDmMtT1WyKn/1o7o3dwc9D5DNcvNA==" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ig-stoppable/-/ig-stoppable-2.0.1.tgz", + "integrity": "sha512-vos7eFNHryIg6yNzrWTV1QP1Sja5JkMU3nL2Y/YvSgU74l7w1Rx6yfVKoEHwNOex4MCkLsq6wMa91Ac6IWOtIA==" }, "node_modules/ig-test": { "version": "1.5.4", @@ -437,9 +437,9 @@ } }, "node_modules/istanbul-reports": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.4.tgz", - "integrity": "sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", + "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", "dev": true, "dependencies": { "html-escaper": "^2.0.0", @@ -804,9 +804,9 @@ "dev": true }, "@jridgewell/resolve-uri": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.8.tgz", - "integrity": "sha512-YK5G9LaddzGbcucK4c8h5tWFmMPBvRZ/uyWmN1/SbBdIvqGUdWGkJ5BAaccgs6XbzVLsqbPJrBSFwKv3kT9i7w==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", "dev": true }, "@jridgewell/sourcemap-codec": { @@ -880,9 +880,9 @@ } }, "c8": { - "version": "7.11.3", - "resolved": "https://registry.npmjs.org/c8/-/c8-7.11.3.tgz", - "integrity": "sha512-6YBmsaNmqRm9OS3ZbIiL2EZgi1+Xc4O24jL3vMYGE6idixYuGdy76rIfIdltSKDj9DpLNrcXSonUTR1miBD0wA==", + "version": "7.12.0", + "resolved": "https://registry.npmjs.org/c8/-/c8-7.12.0.tgz", + "integrity": "sha512-CtgQrHOkyxr5koX1wEUmN/5cfDa2ckbHRA4Gy5LAL0zaCFtVWJS5++n+w4/sr2GWGerBxgTjpKeDclk/Qk6W/A==", "dev": true, "requires": { "@bcoe/v8-coverage": "^0.2.3", @@ -1073,9 +1073,9 @@ } }, "ig-stoppable": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ig-stoppable/-/ig-stoppable-2.0.0.tgz", - "integrity": "sha512-UfIQZI6kAPUbroocVRrgtH7cTulg8kfUoHo7EMvhiEjtzWvHDlzTotCRSeDmMtT1WyKn/1o7o3dwc9D5DNcvNA==" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ig-stoppable/-/ig-stoppable-2.0.1.tgz", + "integrity": "sha512-vos7eFNHryIg6yNzrWTV1QP1Sja5JkMU3nL2Y/YvSgU74l7w1Rx6yfVKoEHwNOex4MCkLsq6wMa91Ac6IWOtIA==" }, "ig-test": { "version": "1.5.4", @@ -1149,9 +1149,9 @@ } }, "istanbul-reports": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.4.tgz", - "integrity": "sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", + "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", "dev": true, "requires": { "html-escaper": "^2.0.0", diff --git a/package.json b/package.json index 26cdae0..2618078 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ig-types", - "version": "6.15.7", + "version": "6.16.0", "description": "Generic JavaScript types and type extensions...", "main": "main.js", "scripts": {