markov-strings
Advanced tools
Comparing version 1.5.0 to 1.5.1
"use strict"; | ||
const _ = require("lodash"); | ||
const lodash_1 = require("lodash"); | ||
const debug = require("debug"); | ||
@@ -30,3 +30,3 @@ const warn = debug("markov-strings:warning"); | ||
// Format data if necessary | ||
if (_.isString(data[0])) { | ||
if (lodash_1.isString(data[0])) { | ||
data = data.map(s => ({ string: s })); | ||
@@ -40,3 +40,3 @@ } | ||
this.options = this.defaultOptions; | ||
_.assignIn(this.options, options); | ||
lodash_1.assignIn(this.options, options); | ||
} | ||
@@ -67,6 +67,6 @@ /** | ||
// Start words | ||
const start = _.slice(words, 0, stateSize).join(" "); | ||
const start = lodash_1.slice(words, 0, stateSize).join(" "); | ||
const oldStartObj = this.startWords.find(o => o.words === start); | ||
if (oldStartObj) { | ||
if (!_.includes(oldStartObj.refs, item)) { | ||
if (!lodash_1.includes(oldStartObj.refs, item)) { | ||
oldStartObj.refs.push(item); | ||
@@ -79,6 +79,6 @@ } | ||
// End words | ||
const end = _.slice(words, words.length - stateSize, words.length).join(" "); | ||
const end = lodash_1.slice(words, words.length - stateSize, words.length).join(" "); | ||
const oldEndObj = this.endWords.find(o => o.words === end); | ||
if (oldEndObj) { | ||
if (!_.includes(oldEndObj.refs, item)) { | ||
if (!lodash_1.includes(oldEndObj.refs, item)) { | ||
oldEndObj.refs.push(item); | ||
@@ -92,4 +92,4 @@ } | ||
for (let i = 0; i < words.length - 1; i++) { | ||
const curr = _.slice(words, i, i + stateSize).join(" "); | ||
const next = _.slice(words, i + stateSize, i + stateSize * 2).join(" "); | ||
const curr = lodash_1.slice(words, i, i + stateSize).join(" "); | ||
const next = lodash_1.slice(words, i + stateSize, i + stateSize * 2).join(" "); | ||
if (!next || next.split(" ").length !== options.stateSize) { | ||
@@ -147,5 +147,5 @@ continue; | ||
const newOptions = {}; | ||
_.assignIn(newOptions, this.options, options); | ||
lodash_1.assignIn(newOptions, this.options, options); | ||
options = newOptions; | ||
const corpus = _.cloneDeep(this.corpus); | ||
const corpus = lodash_1.cloneDeep(this.corpus); | ||
const max = options.maxTries; | ||
@@ -155,3 +155,3 @@ // loop for maximum tries | ||
let ended = false; | ||
const arr = [_.sample(this.startWords)]; | ||
const arr = [lodash_1.sample(this.startWords)]; | ||
let score = 0; | ||
@@ -162,3 +162,3 @@ // loop to build sentence | ||
const block = arr[arr.length - 1]; // last value in array | ||
const state = _.sample(corpus[block.words]); | ||
const state = lodash_1.sample(corpus[block.words]); | ||
// sentence cannot be finished | ||
@@ -173,3 +173,3 @@ if (!state) { | ||
// is sentence finished? | ||
if (_.some(this.endWords, { words: state.words })) { | ||
if (lodash_1.some(this.endWords, { words: state.words })) { | ||
ended = true; | ||
@@ -181,3 +181,3 @@ break; | ||
const scorePerWord = Math.ceil(score / arr.length); | ||
const sentence = _.map(arr, "words").join(" ").trim(); | ||
const sentence = arr.map(o => o.words).join(" ").trim(); | ||
const result = { | ||
@@ -187,3 +187,3 @@ string: sentence, | ||
scorePerWord, | ||
refs: _.uniqBy(_.flatten(_.map(arr, "refs")), "string") | ||
refs: lodash_1.uniqBy(lodash_1.flatten(arr.map(o => o.refs)), "string") | ||
}; | ||
@@ -190,0 +190,0 @@ // sentence is not ended or incorrect |
{ | ||
"name": "markov-strings", | ||
"version": "1.5.0", | ||
"version": "1.5.1", | ||
"description": "A Markov string generator", | ||
@@ -29,12 +29,13 @@ "main": "dist/index.js", | ||
"devDependencies": { | ||
"@types/node": "^9.6.6", | ||
"@types/node": "^9.6.31", | ||
"chai": "^3.5.0", | ||
"coveralls": "^2.11.9", | ||
"istanbul": "^0.4.3", | ||
"mocha": "^2.5.3" | ||
"coveralls": "^3.0.2", | ||
"istanbul": "^0.4.5", | ||
"mocha": "^5.2.0" | ||
}, | ||
"dependencies": { | ||
"debug": "^3.1.0", | ||
"lodash": "^4.13.1" | ||
"@types/lodash": "^4.14.116", | ||
"debug": "^3.2.5", | ||
"lodash": "^4.17.11" | ||
} | ||
} |
@@ -0,4 +1,5 @@ | ||
import { assignIn, cloneDeep, flatten, includes, isString, sample, slice, some, uniqBy } from "lodash" | ||
import { MarkovCorpusItem, MarkovOptions, MarkovResult } from "./types" | ||
const _ = require("lodash") | ||
const debug = require("debug") | ||
@@ -37,3 +38,3 @@ const warn = debug("markov-strings:warning") | ||
// Format data if necessary | ||
if (_.isString(data[0])) { | ||
if (isString(data[0])) { | ||
data = (data as string[]).map(s => ({ string: s })) | ||
@@ -48,3 +49,3 @@ } else if (!data[0].hasOwnProperty("string")) { | ||
this.options = this.defaultOptions | ||
_.assignIn(this.options, options) | ||
assignIn(this.options, options) | ||
} | ||
@@ -79,6 +80,6 @@ | ||
// Start words | ||
const start = _.slice(words, 0, stateSize).join(" ") | ||
const start = slice(words, 0, stateSize).join(" ") | ||
const oldStartObj = this.startWords.find(o => o.words === start) | ||
if (oldStartObj) { | ||
if (!_.includes(oldStartObj.refs, item)) { oldStartObj.refs.push(item) } | ||
if (!includes(oldStartObj.refs, item)) { oldStartObj.refs.push(item) } | ||
} else { | ||
@@ -89,6 +90,6 @@ this.startWords.push({ words: start, refs: [item] }) | ||
// End words | ||
const end = _.slice(words, words.length - stateSize, words.length).join(" ") | ||
const end = slice(words, words.length - stateSize, words.length).join(" ") | ||
const oldEndObj = this.endWords.find(o => o.words === end) | ||
if (oldEndObj) { | ||
if (!_.includes(oldEndObj.refs, item)) { oldEndObj.refs.push(item) } | ||
if (!includes(oldEndObj.refs, item)) { oldEndObj.refs.push(item) } | ||
} else { | ||
@@ -100,4 +101,4 @@ this.endWords.push({ words: end, refs: [item] }) | ||
for (let i = 0; i < words.length - 1; i++) { | ||
const curr = _.slice(words, i, i + stateSize).join(" ") | ||
const next = _.slice(words, i + stateSize, i + stateSize * 2).join(" ") | ||
const curr = slice(words, i, i + stateSize).join(" ") | ||
const next = slice(words, i + stateSize, i + stateSize * 2).join(" ") | ||
if (!next || next.split(" ").length !== options.stateSize) { | ||
@@ -158,6 +159,6 @@ continue | ||
const newOptions: MarkovOptions = {} | ||
_.assignIn(newOptions, this.options, options) | ||
assignIn(newOptions, this.options, options) | ||
options = newOptions | ||
const corpus = _.cloneDeep(this.corpus) | ||
const corpus = cloneDeep(this.corpus) | ||
const max = options.maxTries! | ||
@@ -168,3 +169,3 @@ | ||
let ended = false | ||
const arr = [_.sample(this.startWords)] | ||
const arr = [sample(this.startWords)!] | ||
let score = 0 | ||
@@ -176,3 +177,3 @@ | ||
const block = arr[arr.length - 1] // last value in array | ||
const state = _.sample(corpus[block.words]) | ||
const state = sample(corpus[block.words]) | ||
@@ -191,3 +192,3 @@ // sentence cannot be finished | ||
// is sentence finished? | ||
if (_.some(this.endWords, { words: state.words })) { | ||
if (some(this.endWords, { words: state.words })) { | ||
ended = true | ||
@@ -200,3 +201,3 @@ break | ||
const sentence = _.map(arr, "words").join(" ").trim() | ||
const sentence = arr.map(o => o.words).join(" ").trim() | ||
const result = { | ||
@@ -206,3 +207,3 @@ string: sentence, | ||
scorePerWord, | ||
refs: _.uniqBy(_.flatten(_.map(arr, "refs")), "string") | ||
refs: uniqBy(flatten(arr.map(o => o.refs)), "string") | ||
} | ||
@@ -209,0 +210,0 @@ |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
41584
0
3
+ Added@types/lodash@^4.14.116
+ Added@types/lodash@4.17.9(transitive)
Updateddebug@^3.2.5
Updatedlodash@^4.17.11