@reskit/room
v1.3.1
Published
A kit to extract room location
Downloads
9
Maintainers
Readme
Install
Install @reskit/room
by pnpm
pnpm add @reskit/room
Run Test Demo
We don't have built in data.
You should set buildings by updateBuildings
at first.
import { updateBuildings } from "@reskit/room";
updateBuildings([
{
name: "GalacticSystem",
floorMap: {
SolarSystem: [{ name: "Mars", alias: ["Martis"] }],
},
},
]);
That means I create a building
GalacticSystem
.This building has a floor
SolarSystem
.At this floor, there is a meeting room
Mars
, we also call the meeeting-roomMartis
.
You can extract the meeting room location from a text by extractRoom
import { extractRoom, updateBuildings } from "@reskit/room";
updateBuildings([
{
name: "GalacticSystem",
floorMap: {
SolarSystem: [{ name: "Mars", alias: ["Martis"] }],
},
},
]);
console.warn(extractRoom("Let's have a meeting at Mars tomorrow"));
console.warn(extractRoom("Let's have a meeting at Martis tomorrow"));
The output will be
["GalacticSystem/SolarSystem/Mars"]
["GalacticSystem/SolarSystem/Mars"]
Apply to you project
Create a company that have two buildings Headquarters
and Affiliate
.
import type { IBuilding } from "@reskit/room";
const building1 = {
"2F": [
{ name: "Agora", alias: "shengwang" },
{ name: "Colosseum", alias: ["theatre", "great theatre"] },
"Stonehenge",
],
"3F": [{ name: "Suzhou", alias: "Gusu" }, "Hangzhou"],
};
const building2 = {
"1F": [{ name: "MountHuang", alias: "Mount-Huang" }, { name: "Chizhou" }, "Great Wall", "Google"],
};
const building3 = {
East: [{ name: "Himalayas", alias: "Highest-Mountain" }],
};
const buildings: IBuilding[] = [
{ name: "Headquarters", floorMap: building1 },
{ name: "Affiliate", floorMap: building2 },
// Building without name
{ floorMap: building3 },
];
Update building
import { updateBuildings } from "@reskit/room";
updateBuildings(buildings);
Extract room location from text
import { extractRoom, updateBuildings } from "@reskit/room";
console.warn(extractRoom("Let's have a meeting at Gusu tonight."));
console.warn(extractRoom("Let's have a meeting at Highest-Mountain tonight."));
The console will output
["Headquarters/3F/Suzhou"]
[ 'East/Himalayas' ]
Functions
Custom divider
import { extractRoom, updateDivider } from "@reskit/room";
updateDivider("-");
console.warn(extractRoom("Let's have a meeting at Gusu tonight."));
The console will output
["Headquarters-3F-Suzhou"]
Output the same room
import { extractRoom, updateDivider } from "@reskit/room";
console.warn(extractRoom("Let's have a meeting at Chizhou! (Chizhou not Gusu!).", false));
The console will output
[
"Affiliate-1F-Chizhou",
"Affiliate-1F-Chizhou",
"Headquarters-3F-Suzhou"
]
Using alias as the result
import { extractRoom } from "@reskit/room";
console.warn(extractRoom("Let's have a meeting at Gusu tonight.", true, true));
The console will output
[ 'Headquarters-3F-Gusu' ]
Others
Welcome to create PR and make reskit/room better!