fix(core): update
This commit is contained in:
parent
de87e314c0
commit
d4cea26fb5
16
.gitignore
vendored
16
.gitignore
vendored
@ -1,6 +1,20 @@
|
|||||||
.nogit/
|
.nogit/
|
||||||
node_modules/
|
|
||||||
|
# artifacts
|
||||||
coverage/
|
coverage/
|
||||||
public/
|
public/
|
||||||
pages/
|
pages/
|
||||||
|
|
||||||
|
# installs
|
||||||
|
node_modules/
|
||||||
|
|
||||||
|
# caches
|
||||||
.yarn/
|
.yarn/
|
||||||
|
.cache/
|
||||||
|
.rpt2_cache
|
||||||
|
|
||||||
|
# builds
|
||||||
|
dist/
|
||||||
|
dist_*/
|
||||||
|
|
||||||
|
# custom
|
116
.gitlab-ci.yml
116
.gitlab-ci.yml
@ -1,16 +1,16 @@
|
|||||||
# gitzone standard
|
# gitzone ci_default
|
||||||
image: hosttoday/ht-docker-node:npmci
|
image: registry.gitlab.com/hosttoday/ht-docker-node:npmci
|
||||||
|
|
||||||
cache:
|
cache:
|
||||||
paths:
|
paths:
|
||||||
- .npmci_cache/
|
- .npmci_cache/
|
||||||
key: "$CI_BUILD_STAGE"
|
key: '$CI_BUILD_STAGE'
|
||||||
|
|
||||||
stages:
|
stages:
|
||||||
- security
|
- security
|
||||||
- test
|
- test
|
||||||
- release
|
- release
|
||||||
- metadata
|
- metadata
|
||||||
|
|
||||||
# ====================
|
# ====================
|
||||||
# security stage
|
# security stage
|
||||||
@ -19,56 +19,62 @@ mirror:
|
|||||||
stage: security
|
stage: security
|
||||||
script:
|
script:
|
||||||
- npmci git mirror
|
- npmci git mirror
|
||||||
|
only:
|
||||||
|
- tags
|
||||||
tags:
|
tags:
|
||||||
|
- lossless
|
||||||
- docker
|
- docker
|
||||||
- notpriv
|
- notpriv
|
||||||
|
|
||||||
snyk:
|
auditProductionDependencies:
|
||||||
|
image: registry.gitlab.com/hosttoday/ht-docker-node:npmci
|
||||||
stage: security
|
stage: security
|
||||||
script:
|
script:
|
||||||
- npmci command npm install -g snyk
|
- npmci npm prepare
|
||||||
- npmci command npm install --ignore-scripts
|
- npmci command npm install --production --ignore-scripts
|
||||||
- npmci command snyk test
|
- npmci command npm config set registry https://registry.npmjs.org
|
||||||
|
- npmci command npm audit --audit-level=high --only=prod --production
|
||||||
tags:
|
tags:
|
||||||
- docker
|
- docker
|
||||||
- notpriv
|
allow_failure: true
|
||||||
|
|
||||||
|
auditDevDependencies:
|
||||||
|
image: registry.gitlab.com/hosttoday/ht-docker-node:npmci
|
||||||
|
stage: security
|
||||||
|
script:
|
||||||
|
- npmci npm prepare
|
||||||
|
- npmci command npm install --ignore-scripts
|
||||||
|
- npmci command npm config set registry https://registry.npmjs.org
|
||||||
|
- npmci command npm audit --audit-level=high --only=dev
|
||||||
|
tags:
|
||||||
|
- docker
|
||||||
|
allow_failure: true
|
||||||
|
|
||||||
# ====================
|
# ====================
|
||||||
# test stage
|
# test stage
|
||||||
# ====================
|
# ====================
|
||||||
testLEGACY:
|
|
||||||
stage: test
|
|
||||||
script:
|
|
||||||
- npmci node install legacy
|
|
||||||
- npmci npm install
|
|
||||||
- npmci npm test
|
|
||||||
coverage: /\d+.?\d+?\%\s*coverage/
|
|
||||||
tags:
|
|
||||||
- docker
|
|
||||||
- notpriv
|
|
||||||
allow_failure: true
|
|
||||||
|
|
||||||
testLTS:
|
testStable:
|
||||||
stage: test
|
|
||||||
script:
|
|
||||||
- npmci node install lts
|
|
||||||
- npmci npm install
|
|
||||||
- npmci npm test
|
|
||||||
coverage: /\d+.?\d+?\%\s*coverage/
|
|
||||||
tags:
|
|
||||||
- docker
|
|
||||||
- notpriv
|
|
||||||
|
|
||||||
testSTABLE:
|
|
||||||
stage: test
|
stage: test
|
||||||
script:
|
script:
|
||||||
|
- npmci npm prepare
|
||||||
- npmci node install stable
|
- npmci node install stable
|
||||||
- npmci npm install
|
- npmci npm install
|
||||||
- npmci npm test
|
- npmci npm test
|
||||||
coverage: /\d+.?\d+?\%\s*coverage/
|
coverage: /\d+.?\d+?\%\s*coverage/
|
||||||
tags:
|
tags:
|
||||||
- docker
|
- docker
|
||||||
- notpriv
|
|
||||||
|
testBuild:
|
||||||
|
stage: test
|
||||||
|
script:
|
||||||
|
- npmci npm prepare
|
||||||
|
- npmci node install stable
|
||||||
|
- npmci npm install
|
||||||
|
- npmci command npm run build
|
||||||
|
coverage: /\d+.?\d+?\%\s*coverage/
|
||||||
|
tags:
|
||||||
|
- docker
|
||||||
|
|
||||||
release:
|
release:
|
||||||
stage: release
|
stage: release
|
||||||
@ -78,6 +84,7 @@ release:
|
|||||||
only:
|
only:
|
||||||
- tags
|
- tags
|
||||||
tags:
|
tags:
|
||||||
|
- lossless
|
||||||
- docker
|
- docker
|
||||||
- notpriv
|
- notpriv
|
||||||
|
|
||||||
@ -86,20 +93,16 @@ release:
|
|||||||
# ====================
|
# ====================
|
||||||
codequality:
|
codequality:
|
||||||
stage: metadata
|
stage: metadata
|
||||||
image: docker:stable
|
|
||||||
allow_failure: true
|
allow_failure: true
|
||||||
services:
|
only:
|
||||||
- docker:stable-dind
|
- tags
|
||||||
script:
|
script:
|
||||||
- export SP_VERSION=$(echo "$CI_SERVER_VERSION" | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1-\2-stable/')
|
- npmci command npm install -g tslint typescript
|
||||||
- docker run
|
- npmci npm prepare
|
||||||
--env SOURCE_CODE="$PWD"
|
- npmci npm install
|
||||||
--volume "$PWD":/code
|
- npmci command "tslint -c tslint.json ./ts/**/*.ts"
|
||||||
--volume /var/run/docker.sock:/var/run/docker.sock
|
|
||||||
"registry.gitlab.com/gitlab-org/security-products/codequality:$SP_VERSION" /code
|
|
||||||
artifacts:
|
|
||||||
paths: [codeclimate.json]
|
|
||||||
tags:
|
tags:
|
||||||
|
- lossless
|
||||||
- docker
|
- docker
|
||||||
- priv
|
- priv
|
||||||
|
|
||||||
@ -110,17 +113,20 @@ trigger:
|
|||||||
only:
|
only:
|
||||||
- tags
|
- tags
|
||||||
tags:
|
tags:
|
||||||
|
- lossless
|
||||||
- docker
|
- docker
|
||||||
- notpriv
|
- notpriv
|
||||||
|
|
||||||
pages:
|
pages:
|
||||||
image: hosttoday/ht-docker-node:npmci
|
|
||||||
stage: metadata
|
stage: metadata
|
||||||
script:
|
script:
|
||||||
- npmci command npm install -g typedoc typescript
|
- npmci node install lts
|
||||||
|
- npmci command npm install -g @gitzone/tsdoc
|
||||||
|
- npmci npm prepare
|
||||||
- npmci npm install
|
- npmci npm install
|
||||||
- npmci command typedoc --module "commonjs" --target "ES2016" --out public/ ts/
|
- npmci command tsdoc
|
||||||
tags:
|
tags:
|
||||||
|
- lossless
|
||||||
- docker
|
- docker
|
||||||
- notpriv
|
- notpriv
|
||||||
only:
|
only:
|
||||||
@ -130,13 +136,3 @@ pages:
|
|||||||
paths:
|
paths:
|
||||||
- public
|
- public
|
||||||
allow_failure: true
|
allow_failure: true
|
||||||
|
|
||||||
windowsCompatibility:
|
|
||||||
image: stefanscherer/node-windows:10-build-tools
|
|
||||||
stage: metadata
|
|
||||||
script:
|
|
||||||
- npm install & npm test
|
|
||||||
coverage: /\d+.?\d+?\%\s*coverage/
|
|
||||||
tags:
|
|
||||||
- windows
|
|
||||||
allow_failure: true
|
|
||||||
|
11
.vscode/launch.json
vendored
Normal file
11
.vscode/launch.json
vendored
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
"version": "0.2.0",
|
||||||
|
"configurations": [
|
||||||
|
{
|
||||||
|
"command": "npm test",
|
||||||
|
"name": "Run npm test",
|
||||||
|
"request": "launch",
|
||||||
|
"type": "node-terminal"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
26
.vscode/settings.json
vendored
Normal file
26
.vscode/settings.json
vendored
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
{
|
||||||
|
"json.schemas": [
|
||||||
|
{
|
||||||
|
"fileMatch": ["/npmextra.json"],
|
||||||
|
"schema": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"npmci": {
|
||||||
|
"type": "object",
|
||||||
|
"description": "settings for npmci"
|
||||||
|
},
|
||||||
|
"gitzone": {
|
||||||
|
"type": "object",
|
||||||
|
"description": "settings for gitzone",
|
||||||
|
"properties": {
|
||||||
|
"projectType": {
|
||||||
|
"type": "string",
|
||||||
|
"enum": ["website", "element", "service", "npm", "wcc"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -1,4 +1,15 @@
|
|||||||
{
|
{
|
||||||
|
"gitzone": {
|
||||||
|
"projectType": "npm",
|
||||||
|
"module": {
|
||||||
|
"githost": "gitlab.com",
|
||||||
|
"gitscope": "pushrocks",
|
||||||
|
"gitrepo": "smartfuzzy",
|
||||||
|
"shortDescription": "search things easily",
|
||||||
|
"npmPackagename": "@pushrocks/smartfuzzy",
|
||||||
|
"license": "MIT"
|
||||||
|
}
|
||||||
|
},
|
||||||
"npmci": {
|
"npmci": {
|
||||||
"npmGlobalTools": [],
|
"npmGlobalTools": [],
|
||||||
"npmAccessLevel": "public"
|
"npmAccessLevel": "public"
|
||||||
|
27
package-lock.json
generated
27
package-lock.json
generated
@ -18,7 +18,7 @@
|
|||||||
"@gitzone/tsbuild": "^2.1.27",
|
"@gitzone/tsbuild": "^2.1.27",
|
||||||
"@gitzone/tstest": "^1.0.57",
|
"@gitzone/tstest": "^1.0.57",
|
||||||
"@pushrocks/tapbundle": "^3.2.14",
|
"@pushrocks/tapbundle": "^3.2.14",
|
||||||
"@types/node": "^10.7.1"
|
"@types/node": "^16.10.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@apiglobal/typedrequest": {
|
"node_modules/@apiglobal/typedrequest": {
|
||||||
@ -1890,13 +1890,6 @@
|
|||||||
"tsbundle": "cli.js"
|
"tsbundle": "cli.js"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@gitzone/tsbundle/node_modules/@types/node": {
|
|
||||||
"version": "16.10.2",
|
|
||||||
"resolved": "https://verdaccio.lossless.one/@types%2fnode/-/node-16.10.2.tgz",
|
|
||||||
"integrity": "sha512-zCclL4/rx+W5SQTzFs9wyvvyCwoK9QtBpratqz2IYJ3O8Umrn0m3nsTv0wQBk9sRGpvUe9CwPDrQFB10f1FIjQ==",
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT"
|
|
||||||
},
|
|
||||||
"node_modules/@gitzone/tsbundle/node_modules/rollup-plugin-sourcemaps": {
|
"node_modules/@gitzone/tsbundle/node_modules/rollup-plugin-sourcemaps": {
|
||||||
"version": "0.6.3",
|
"version": "0.6.3",
|
||||||
"resolved": "https://verdaccio.lossless.one/rollup-plugin-sourcemaps/-/rollup-plugin-sourcemaps-0.6.3.tgz",
|
"resolved": "https://verdaccio.lossless.one/rollup-plugin-sourcemaps/-/rollup-plugin-sourcemaps-0.6.3.tgz",
|
||||||
@ -3164,9 +3157,9 @@
|
|||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/@types/node": {
|
"node_modules/@types/node": {
|
||||||
"version": "10.7.1",
|
"version": "16.10.2",
|
||||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-10.7.1.tgz",
|
"resolved": "https://verdaccio.lossless.one/@types%2fnode/-/node-16.10.2.tgz",
|
||||||
"integrity": "sha512-EGoI4ylB/lPOaqXqtzAyL8HcgOuCtH2hkEaLmkueOYufsTFWBn4VCvlCDC2HW8Q+9iF+QVC3sxjDKQYjHQeZ9w==",
|
"integrity": "sha512-zCclL4/rx+W5SQTzFs9wyvvyCwoK9QtBpratqz2IYJ3O8Umrn0m3nsTv0wQBk9sRGpvUe9CwPDrQFB10f1FIjQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
@ -16076,12 +16069,6 @@
|
|||||||
"typescript": "^4.4.2"
|
"typescript": "^4.4.2"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@types/node": {
|
|
||||||
"version": "16.10.2",
|
|
||||||
"resolved": "https://verdaccio.lossless.one/@types%2fnode/-/node-16.10.2.tgz",
|
|
||||||
"integrity": "sha512-zCclL4/rx+W5SQTzFs9wyvvyCwoK9QtBpratqz2IYJ3O8Umrn0m3nsTv0wQBk9sRGpvUe9CwPDrQFB10f1FIjQ==",
|
|
||||||
"dev": true
|
|
||||||
},
|
|
||||||
"rollup-plugin-sourcemaps": {
|
"rollup-plugin-sourcemaps": {
|
||||||
"version": "0.6.3",
|
"version": "0.6.3",
|
||||||
"resolved": "https://verdaccio.lossless.one/rollup-plugin-sourcemaps/-/rollup-plugin-sourcemaps-0.6.3.tgz",
|
"resolved": "https://verdaccio.lossless.one/rollup-plugin-sourcemaps/-/rollup-plugin-sourcemaps-0.6.3.tgz",
|
||||||
@ -17137,9 +17124,9 @@
|
|||||||
"integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ=="
|
"integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ=="
|
||||||
},
|
},
|
||||||
"@types/node": {
|
"@types/node": {
|
||||||
"version": "10.7.1",
|
"version": "16.10.2",
|
||||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-10.7.1.tgz",
|
"resolved": "https://verdaccio.lossless.one/@types%2fnode/-/node-16.10.2.tgz",
|
||||||
"integrity": "sha512-EGoI4ylB/lPOaqXqtzAyL8HcgOuCtH2hkEaLmkueOYufsTFWBn4VCvlCDC2HW8Q+9iF+QVC3sxjDKQYjHQeZ9w==",
|
"integrity": "sha512-zCclL4/rx+W5SQTzFs9wyvvyCwoK9QtBpratqz2IYJ3O8Umrn0m3nsTv0wQBk9sRGpvUe9CwPDrQFB10f1FIjQ==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"@types/parcel-bundler": {
|
"@types/parcel-bundler": {
|
||||||
|
23
package.json
23
package.json
@ -3,8 +3,8 @@
|
|||||||
"version": "1.1.3",
|
"version": "1.1.3",
|
||||||
"private": false,
|
"private": false,
|
||||||
"description": "fuzzy match strings against word dictionaries/arrays",
|
"description": "fuzzy match strings against word dictionaries/arrays",
|
||||||
"main": "dist/index.js",
|
"main": "dist_ts/index.js",
|
||||||
"typings": "dist/index.d.ts",
|
"typings": "dist_ts/index.d.ts",
|
||||||
"author": "Lossless GmbH",
|
"author": "Lossless GmbH",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
@ -16,12 +16,27 @@
|
|||||||
"@gitzone/tsbuild": "^2.1.27",
|
"@gitzone/tsbuild": "^2.1.27",
|
||||||
"@gitzone/tstest": "^1.0.57",
|
"@gitzone/tstest": "^1.0.57",
|
||||||
"@pushrocks/tapbundle": "^3.2.14",
|
"@pushrocks/tapbundle": "^3.2.14",
|
||||||
"@types/node": "^10.7.1"
|
"@types/node": "^16.10.2"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@pushrocks/smartpromise": "^3.1.6",
|
"@pushrocks/smartpromise": "^3.1.6",
|
||||||
"@tsclass/tsclass": "^3.0.33",
|
"@tsclass/tsclass": "^3.0.33",
|
||||||
"fuse.js": "^6.4.6",
|
"fuse.js": "^6.4.6",
|
||||||
"leven": "^3.1.0"
|
"leven": "^3.1.0"
|
||||||
}
|
},
|
||||||
|
"browserslist": [
|
||||||
|
"last 1 chrome versions"
|
||||||
|
],
|
||||||
|
"files": [
|
||||||
|
"ts/**/*",
|
||||||
|
"ts_web/**/*",
|
||||||
|
"dist/**/*",
|
||||||
|
"dist_*/**/*",
|
||||||
|
"dist_ts/**/*",
|
||||||
|
"dist_ts_web/**/*",
|
||||||
|
"assets/**/*",
|
||||||
|
"cli.js",
|
||||||
|
"npmextra.json",
|
||||||
|
"readme.md"
|
||||||
|
]
|
||||||
}
|
}
|
@ -11,7 +11,7 @@ tap.test('should sort objects', async () => {
|
|||||||
tags: ['city', 'Europe', 'hello'],
|
tags: ['city', 'Europe', 'hello'],
|
||||||
timestamp: Date.now(),
|
timestamp: Date.now(),
|
||||||
featuredImageUrl: null,
|
featuredImageUrl: null,
|
||||||
url: null
|
url: null,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: 'Washington is a great city',
|
title: 'Washington is a great city',
|
||||||
@ -20,15 +20,15 @@ tap.test('should sort objects', async () => {
|
|||||||
tags: ['city', 'USA', 'hello'],
|
tags: ['city', 'USA', 'hello'],
|
||||||
timestamp: Date.now(),
|
timestamp: Date.now(),
|
||||||
featuredImageUrl: null,
|
featuredImageUrl: null,
|
||||||
url: null
|
url: null,
|
||||||
}
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
const testArticleSearch = new smartfuzzy.ArticleSearch(articleArray);
|
const testArticleSearch = new smartfuzzy.ArticleSearch(articleArray);
|
||||||
|
|
||||||
const result = await testArticleSearch.search('USA');
|
const result = await testArticleSearch.search('USA');
|
||||||
console.log(result);
|
console.log(result);
|
||||||
console.log(result[0].matches)
|
console.log(result[0].matches);
|
||||||
});
|
});
|
||||||
|
|
||||||
tap.start();
|
tap.start();
|
||||||
|
@ -11,7 +11,7 @@ tap.test('should sort objects', async () => {
|
|||||||
testObjectSorter = new smartfuzzy.ObjectSorter([
|
testObjectSorter = new smartfuzzy.ObjectSorter([
|
||||||
new Car('BMW'),
|
new Car('BMW'),
|
||||||
new Car('Mercedes Benz'),
|
new Car('Mercedes Benz'),
|
||||||
new Car('Volvo')
|
new Car('Volvo'),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
const result = testObjectSorter.sort('Volvo', ['brand']);
|
const result = testObjectSorter.sort('Volvo', ['brand']);
|
||||||
|
@ -8,7 +8,7 @@ tap.test('should create an instance of Smartfuzzy', async () => {
|
|||||||
'Sony',
|
'Sony',
|
||||||
'Deutsche Bahn',
|
'Deutsche Bahn',
|
||||||
'Apple Inc.',
|
'Apple Inc.',
|
||||||
"Trader Joe's"
|
"Trader Joe's",
|
||||||
]);
|
]);
|
||||||
expect(testSmartfuzzy).to.be.instanceof(smartfuzzy.Smartfuzzy);
|
expect(testSmartfuzzy).to.be.instanceof(smartfuzzy.Smartfuzzy);
|
||||||
});
|
});
|
||||||
|
@ -54,7 +54,7 @@ export class ArticleSearch {
|
|||||||
weight: 1,
|
weight: 1,
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
includeMatches: true
|
includeMatches: true,
|
||||||
});
|
});
|
||||||
this.readyDeferred.resolve();
|
this.readyDeferred.resolve();
|
||||||
} else {
|
} else {
|
||||||
|
@ -3,7 +3,6 @@ import * as plugins from './smartfuzzy.plugins';
|
|||||||
export class ObjectSorter<T> {
|
export class ObjectSorter<T> {
|
||||||
public objectDictionary: T[];
|
public objectDictionary: T[];
|
||||||
|
|
||||||
|
|
||||||
constructor(objectDictionaryArg: T[] = []) {
|
constructor(objectDictionaryArg: T[] = []) {
|
||||||
this.objectDictionary = objectDictionaryArg;
|
this.objectDictionary = objectDictionaryArg;
|
||||||
}
|
}
|
||||||
@ -16,11 +15,10 @@ export class ObjectSorter<T> {
|
|||||||
distance: 100,
|
distance: 100,
|
||||||
maxPatternLength: 32,
|
maxPatternLength: 32,
|
||||||
minMatchCharLength: 1,
|
minMatchCharLength: 1,
|
||||||
keys: objectKeysArg
|
keys: objectKeysArg,
|
||||||
};
|
};
|
||||||
const fuse = new plugins.fuseJs<T>(this.objectDictionary, fuseOptions);
|
const fuse = new plugins.fuseJs<T>(this.objectDictionary, fuseOptions);
|
||||||
const result = fuse.search(stringArg);
|
const result = fuse.search(stringArg);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -38,7 +38,7 @@ export class Smartfuzzy {
|
|||||||
const fuseDictionary: { name: string }[] = [];
|
const fuseDictionary: { name: string }[] = [];
|
||||||
for (const wordArg of this.dictionary) {
|
for (const wordArg of this.dictionary) {
|
||||||
fuseDictionary.push({
|
fuseDictionary.push({
|
||||||
name: wordArg
|
name: wordArg,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
const fuseOptions = {
|
const fuseOptions = {
|
||||||
@ -48,13 +48,13 @@ export class Smartfuzzy {
|
|||||||
distance: 100,
|
distance: 100,
|
||||||
maxPatternLength: 32,
|
maxPatternLength: 32,
|
||||||
minMatchCharLength: 1,
|
minMatchCharLength: 1,
|
||||||
keys: ['name']
|
keys: ['name'],
|
||||||
};
|
};
|
||||||
const fuse = new plugins.fuseJs(fuseDictionary, fuseOptions);
|
const fuse = new plugins.fuseJs(fuseDictionary, fuseOptions);
|
||||||
const fuzzyResult = fuse.search(stringArg);
|
const fuzzyResult = fuse.search(stringArg);
|
||||||
let closestMatch: string = null;
|
let closestMatch: string = null;
|
||||||
if(fuzzyResult.length > 0) {
|
if (fuzzyResult.length > 0) {
|
||||||
closestMatch = fuzzyResult[0].item.name
|
closestMatch = fuzzyResult[0].item.name;
|
||||||
}
|
}
|
||||||
return closestMatch;
|
return closestMatch;
|
||||||
}
|
}
|
||||||
|
@ -1,16 +1,12 @@
|
|||||||
// @pushrocks scope
|
// @pushrocks scope
|
||||||
import * as smartpromise from '@pushrocks/smartpromise';
|
import * as smartpromise from '@pushrocks/smartpromise';
|
||||||
|
|
||||||
export {
|
export { smartpromise };
|
||||||
smartpromise
|
|
||||||
}
|
|
||||||
|
|
||||||
// @tsclass scope
|
// @tsclass scope
|
||||||
import * as tsclass from '@tsclass/tsclass';
|
import * as tsclass from '@tsclass/tsclass';
|
||||||
|
|
||||||
export {
|
export { tsclass };
|
||||||
tsclass
|
|
||||||
}
|
|
||||||
|
|
||||||
// third party scope
|
// third party scope
|
||||||
import leven from 'leven';
|
import leven from 'leven';
|
||||||
|
14
tslint.json
14
tslint.json
@ -1,7 +1,17 @@
|
|||||||
{
|
{
|
||||||
"extends": ["tslint:latest", "tslint-config-prettier"],
|
"extends": ["tslint:latest", "tslint-config-prettier"],
|
||||||
"rules": {
|
"rules": {
|
||||||
"semicolon": [true, "always"]
|
"semicolon": [true, "always"],
|
||||||
|
"no-console": false,
|
||||||
|
"ordered-imports": false,
|
||||||
|
"object-literal-sort-keys": false,
|
||||||
|
"member-ordering": {
|
||||||
|
"options":{
|
||||||
|
"order": [
|
||||||
|
"static-method"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"defaultSeverity": "warning"
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user