Skip to content

Commit f78a7e3

Browse files
Merge pull request #29 from Sellsuki/dev
Dev
2 parents bc96150 + c2f5efb commit f78a7e3

11 files changed

+6310
-4732
lines changed

.eslintignore

-3
This file was deleted.

.eslintrc.js

-21
This file was deleted.

eslint.config.js

+37
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
// eslint.config.js
2+
import js from "@eslint/js";
3+
import promise from "eslint-plugin-promise";
4+
import standard from "eslint-plugin-standard";
5+
6+
export default [
7+
{
8+
ignores: ["build/**/*.js", "config/**/*.js", "lib/**/*.js"], // แทน .eslintignore
9+
},
10+
{
11+
files: ["**/*.js"],
12+
languageOptions: {
13+
ecmaVersion: "latest", // รองรับ ECMAScript รุ่นล่าสุด
14+
sourceType: "module", // ใช้ ES Modules
15+
globals: {
16+
angular: "readonly", // กำหนด angular เป็น global
17+
},
18+
},
19+
plugins: {
20+
promise,
21+
standard,
22+
},
23+
rules: {
24+
...js.configs.recommended.rules, // ใช้กฎพื้นฐานจาก ESLint
25+
...promise.configs.recommended.rules, // รวมกฎจาก plugin promise
26+
"no-console": "off", // เตือนเมื่อใช้ console.log
27+
"no-unused-vars": "off", // เตือนเมื่อมีตัวแปรที่ไม่ได้ใช้
28+
"indent": ["error", 2], // เยื้อง 2 spaces
29+
"quotes": ["error", "single"], // ใช้ single quotes
30+
"semi": ["error", "never"], // ไม่ใช้ semicolon
31+
"space-before-function-paren": ["error", "always"], // มี space ก่อนวงเล็บฟังก์ชัน
32+
"array-callback-return": "off", // ปิดการตรวจสอบ return ใน array method
33+
"no-undef": "off", // ปิดการแจ้งเตือน undefined (ใช้กับ require และ exports)
34+
"prefer-const": "off", // เตือนหากตัวแปรควรใช้ const
35+
},
36+
},
37+
];

lib/index.js

+4-14
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,25 @@
1-
'use strict';
1+
"use strict";
22

33
(function (angular) {
44
'use strict';
55

66
var utilAddress = require('./util/splitAddress');
77
/**
8-
* From jquery.Thailand.js line 38 - 100
9-
*/
8+
* From jquery.Thailand.js line 38 - 100
9+
*/
1010
var preprocess = function preprocess(data) {
1111
var lookup = [];
1212
var words = [];
1313
var expanded = [];
1414
var useLookup = false;
15-
var t = void 0;
16-
15+
var t;
1716
if (data.lookup && data.words) {
1817
// compact with dictionary and lookup
1918
useLookup = true;
2019
lookup = data.lookup.split('|');
2120
words = data.words.split('|');
2221
data = data.data;
2322
}
24-
2523
t = function t(text) {
2624
function repl(m) {
2725
var ch = m.charCodeAt(0);
@@ -35,7 +33,6 @@
3533
}
3634
return text.replace(/[A-Z]/ig, repl);
3735
};
38-
3936
if (!data[0].length) {
4037
// non-compacted database
4138
return data;
@@ -48,7 +45,6 @@
4845
// geographic database
4946
i = 2;
5047
}
51-
5248
provinces[i].map(function (amphoes) {
5349
amphoes[i].map(function (districts) {
5450
districts[i] = districts[i] instanceof Array ? districts[i] : [districts[i]];
@@ -72,9 +68,7 @@
7268
});
7369
return expanded;
7470
};
75-
7671
var db = preprocess(require('../database/db.json'));
77-
7872
var resolveResultbyField = function resolveResultbyField(type, searchStr, maxResult) {
7973
searchStr = searchStr.toString().trim();
8074
if (searchStr === '') {
@@ -94,7 +88,6 @@
9488
}
9589
return possibles;
9690
};
97-
9891
var searchAddressByDistrict = function searchAddressByDistrict(searchStr, maxResult) {
9992
return resolveResultbyField('district', searchStr, maxResult);
10093
};
@@ -107,7 +100,6 @@
107100
var searchAddressByZipcode = function searchAddressByZipcode(searchStr, maxResult) {
108101
return resolveResultbyField('zipcode', searchStr, maxResult);
109102
};
110-
111103
var splitAddress = function splitAddress(fullAddress) {
112104
var regex = /\s(\d{5})(\s|$)/gi;
113105
var regexResult = regex.exec(fullAddress);
@@ -129,13 +121,11 @@
129121
}
130122
return null;
131123
};
132-
133124
exports.searchAddressByDistrict = searchAddressByDistrict;
134125
exports.searchAddressByAmphoe = searchAddressByAmphoe;
135126
exports.searchAddressByProvince = searchAddressByProvince;
136127
exports.searchAddressByZipcode = searchAddressByZipcode;
137128
exports.splitAddress = splitAddress;
138-
139129
if (angular) {
140130
angular.module('thAddress', []).config(function ($provide) {
141131
$provide.value('thad', {

lib/util/splitAddress.js

+4-7
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
1-
'use strict';
1+
"use strict";
22

33
var lib = require('../index.js');
4-
54
exports.prepareAddress = function (address, zip) {
65
address = address.replace(zip, '');
76
address = address.replace('Thailand', '');
@@ -20,7 +19,6 @@ exports.prepareAddress = function (address, zip) {
2019
address = address.replace(' กรุงเทพ ', ' กรุงเทพมหานคร ');
2120
return address;
2221
};
23-
2422
exports.getBestResult = function (zip, address) {
2523
var searchResult = lib.searchAddressByZipcode(zip);
2624
searchResult.forEach(function (element, index) {
@@ -43,19 +41,18 @@ exports.getBestResult = function (zip, address) {
4341
return null;
4442
}
4543
};
46-
4744
exports.cleanupAddress = function (address, result) {
48-
var regexDistrict = new RegExp('\\s' + result.district, 'g');
45+
var regexDistrict = new RegExp("\\s".concat(result.district), 'g');
4946
var findDistrict = regexDistrict.exec(address);
5047
if (findDistrict) {
5148
address = address.replace(findDistrict[0], '');
5249
}
53-
var regexAmphoe = new RegExp('\\s' + result.amphoe + '|\u0E40\u0E21\u0E37\u0E2D\u0E07', 'g');
50+
var regexAmphoe = new RegExp("\\s".concat(result.amphoe, "|\u0E40\u0E21\u0E37\u0E2D\u0E07"), 'g');
5451
var findAmphoe = regexAmphoe.exec(address);
5552
if (findAmphoe) {
5653
address = address.replace(findAmphoe[0], '');
5754
}
58-
var regexProvince = new RegExp('\\s' + result.province, 'g');
55+
var regexProvince = new RegExp("\\s".concat(result.province), 'g');
5956
var findProvince = regexProvince.exec(address);
6057
if (findProvince) {
6158
address = address.replace(findProvince[0], '');

0 commit comments

Comments
 (0)