Security News
tea.xyz Spam Plagues npm and RubyGems Package Registries
Tea.xyz, a crypto project aimed at rewarding open source contributions, is once again facing backlash due to an influx of spam packages flooding public package registries.
ph-municipalities
Advanced tools
Readme
ph-municipalities have NPM scripts that allow interactive querying of Philippines municipalities included in one or more provinces or from a whole region, with an option of writing them to JSON files from the command line.
It uses /data/day1.xlsx
(downloaded and stored as of this 20220808) from PAGASA's 10-day weather forecast excel files as the default data source.
It also asks users to key in the download URL of a remote PAGASA 10-Day weather forecast excel file should they want to use another excel file for a new and updated data source.
Extracted municipalities are written in JSON files following the format:
{
"metadata": {
"source": "https://pubfiles.pagasa.dost.gov.ph/pagasaweb/files/climate/tendayweatheroutlook/day1.xlsx",
"title": "List of PH Municipalities By Province and Region",
"description": "This dataset generated with reference to the excel file contents from the source URL on 20220808.",
"date_created": "Mon Aug 08 2022"
},
"data": {
"Albay": ["Bacacay", "Camalig", ... ],
"Camarines Norte": ["Basud", "Capalonga", ... ],
"Camarines Sur": ["Baao", "Balatan", ... ],
...
}
}
Pre-compiled windows binaries are available for download in the latest Releases download page.
The following dependencies are used for this project. Feel free to use other dependency versions as needed.
/data
directory as data source."municipalityName (provinceName)"
/data/day1.xlsx
sample file for more informationEXCEL_FILE_URL
variable on the Installation section.Clone this repository.
git clone https://github.com/ciatph/municipalities-by-province.git
Install dependencies.
npm install
Create a .env
file from the .env.example
file. Use the default values for the following environment variables.
Variable Name | Description |
---|---|
EXCEL_FILE_URL | (Optional) Remote excel file's download URL. If provided, the excel file will be downloaded and saved on the specified pathToFile local filesystem location during the ExcelFile class initialization.Read on Usage for more information. |
SHEETJS_COLUMN | Column name read by sheetjs in an excel file. This column contains the municipality and province names following the string pattern "municipalityName (provinceName)" Default value is __EMPTY |
SORT_ALPHABETICAL | Arranges the municipality names in alphabetical order. Default value is 1 . Set to 0 to use the ordering as read from the Excel file. |
SPECIAL_CHARACTERS | Key-value pairs of special characters or garbled text and their normalized text conversions, delimited by the ":" character.Multiple key-value pairs are delimited by the "," character.If a special character key's value is a an empty string, write it as i.e.,: "some-garbled-text:" |
npm start
/ npm run list:region
/data/day1.xlsx
by default./data/datasource.xlsx
if download URL in the class constructor is provided.npm i ph-municipalities
:
node .\node_modules\ph-municipalities\src\scripts\by_region.js
npm run list:province
/data/day1.xlsx
by default./data/datasource.xlsx
if download URL in the class constructor is provided.npm i ph-municipalities
:
node .\node_modules\ph-municipalities\src\scripts\by_province.js
npm run example
await
build:win:region
npm start
script into a stand-alone windows node16-win-x64
executable./dist/ph-regions-win.exe
. Click the executable file to run.build:win:province
npm list:province
script into a stand-alone windows node16-win-x64
executable./dist/ph-provinces-win.exe
. Click the executable file to run.build:win:all
npm start
and npm list:province
script into a stand-alone windows node16-win-x64
executables in one go./dist
directory.npm run minify:region
npm list:region
script and dependencies into a single script using ncc./dist/region
. Run the command to use the compiled script:node dist/region
npm run minify:province
npm list:province
script and dependencies into a single script using ncc./dist/province
. Run the command to use the compiled script:node dist/province
npm run minify:all
npm list:region
and npm list:province
scripts in one go./dist
directory.npm run lint
Lint JavaScript source codes.
npm run lint:fix
Fix JavaScript lint errors.
Below is a simple usage example of the ExcelFile
class. Check out /src/scripts/sample_usage.js
for more examples.
const path = require('path')
const ExcelFile = require('./classes/excel')
// Use the the following if installed via npm
// const { ExcelFile } = require('ph-municipalities')
// Reads an existing excel file on /data/day1.xlsx
file = new ExcelFile({
pathToFile: path.join(__dirname, 'data', 'day1.xlsx'),
// fastload: false
})
// Call init() if fastload=false
// file.init()
// listMunicipalities() lists all municipalities
// for each province
const provinces = ['Albay','Masbate','Sorsogon']
const municipalitiesFromProvince = file.listMunicipalities(provinces)
// writeMunicipalities() writes municipalities data to a JSON file
// and returns the JSON object
const json = file.writeMunicipalities({
provinces,
fileName: path.join(__dirname, 'municipalities.json'),
prettify: true
})
// shapeJsonData() returns the output of writeMunicipalities()
// without writing to a JSON file
const json2 = file.shapeJsonData(provinces)
// JSON data of the parsed excel file will is accessible on
// file.datalist
console.log(file.datalist)
// Set the contents of file.datalist
file.datalist = [
{ municipality: 'Tayum', province: 'Abra' },
{ municipality: 'Bucay', province: 'Abra' }]
Adding a url
field in the constructor parameter will download a remote excel file for data source.
require('dotenv').config()
const path = require('path')
const ExcelFile = require('./classes/excel')
// Use the the following if installed via npm
// const { ExcelFile } = require('ph-municipalities')
const main = async () => {
// Excel file will be downloaded to /data/day1.xlsx
file = new ExcelFile({
pathToFile: path.join(__dirname, 'data', 'day1.xlsx'),
url: process.env.EXCEL_FILE_URL
})
try {
await file.init()
console.log(file.datalist)
} catch (err) {
console.log(err.message)
}
}
main()
Initialize an ExcelFile
class instance.
require('dotenv').config()
const path = require('path')
const { ExcelFile } = require('./classes/excel')
const PHExcel = new ExcelFile({
pathToFile: path.join(path.join(__dirname, '..', '..', 'data', 'day1.xlsx')),
url: process.env.EXCEL_FILE_URL
})
PHExcel.init()
module.exports = PHExcel
Listen to the instance's EVENTS.LOADED
event.
PHExcel.events.on(PHExcel.EVENTS.LOADED, async () => {
console.log('Excel data loaded!')
})
The main npm scripts can be packaged into standalone windows executables. Pre-compiled windows binaries are available for download in the latest Releases download page.
npm run build:win:region
npm run build:win:province
# npm run build:win:all
/dist
directory to execute.The main npm scripts can be compiled into standalone JavaScript files together with all its dependencies.
npm run minify:region
npm run minify:province
# npm run minify:all
/dist
directory to execute.
node dist/region
node dist/province
@ciatph
20220807
FAQs
List and write the `municipalities` of Philippines provinces or regions into JSON files
The npm package ph-municipalities receives a total of 1,961 weekly downloads. As such, ph-municipalities popularity was classified as popular.
We found that ph-municipalities demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Tea.xyz, a crypto project aimed at rewarding open source contributions, is once again facing backlash due to an influx of spam packages flooding public package registries.
Security News
As cyber threats become more autonomous, AI-powered defenses are crucial for businesses to stay ahead of attackers who can exploit software vulnerabilities at scale.
Security News
UnitedHealth Group disclosed that the ransomware attack on Change Healthcare compromised protected health information for millions in the U.S., with estimated costs to the company expected to reach $1 billion.