Catalog npm
Back to packageRELEASE DETAILS

0.5.5

npm

5m-js

Helper package for FiveM JS

Published31 Jan 2023
Direct dependencies1
Transitive dependenciesNot calculated

README

Current package documentation

5m-js

Helper package for FiveM.

Installation

NPM

npm i 5m-js

YARN

yarn add 5m-js

Feature

  • Wrap native functions with setImmediate to avoid freezing the main thread. Ref
  • RPC to invoke functions client/server registered functions.
  • RPC to invoke native client functions from server.

Examples

JS

Wrap natives within callback

require("5m-js");

onNet("event-name", async () => {
  const serverId = source;
  const name = await I.GetPlayerName(serverId);
  I.emitNet("event-name", name)
})

RPC

Invoke server registered routine.

server.js

require("5m-js");

// calculate will be the rpc name
// when passing function, it will be registered as the rpc routine
rpc.calculate(function (playerServerId, op, x, y) {
  // `playerServerId` will always passed to the rpc routine when registered in server side.
  // And the rest will be the arguments passed to the rpc invocation from client.
  switch (op) {
    case "+":
      return x + y;
    case "-":
      return x - y;
    default:
      return 0;
  }
});

RegisterCommand("get-player-health", async function () {
  const playerServerId = 1;
  // invoking client registered rpc routine from server, playerServerId is the target player
  const health = await rpc.getPlayerHealth(playerServerId)
  console.log(health)
}, true);

client.js

require("5m-js");
RegisterCommand("calculate-from-server", async function () {
  const r = await rpc.calculate("+", 2, 3);
  console.log(r); // 5
}, false);

// registering rpc routine in clinet to be invoked from server side.
rpc.getPlayerHealth(function () {
  return GetEntityHealth(PlayerPedId())
});
Invoke client natives directly from server

server.js

require("5m-js");

RegisterCommand("kill-all-players", async function() {
  const players = getPlayers();
  for (const p of players) {
    // we need to pass the player server id (source) then the native arguments according to fivem natives.
    const ped = await rpc.native.PlayerPedId(p); 
    await rpc.native.SetEntityHealth(p, ped, 0);
  }
}, true)

HTTP

Perform http request from server
let r = await httpRequest("https://httpbin.org/anything", {
  method: "POST",
  data: "name=5m-js",
  headers: {
    "Content-Type": "application/x-www-form-urlencoded"
  }
})

console.log(
  r.statusCode, r.body, r.headers,
)

r = await httpRequsetJson("https://httpbin.org/anything", {
  method: "POST",
  data: {name: "5m-js"},
  headers: {
    "X-Token": "123"
  }
})

console.log(
  r.statusCode, r.body, r.headers,
)

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Declared dependencies 1

Native requirements
1 direct targetsNot calculated transitive count
Package / targetRequirementRelationship
@types/node
Environment
{
  "local_name": "@types/node",
  "alias": false,
  "peer_metadata": null
}
^18.11.7development

Distribution files

1 collected
Distribution 1

Source distribution

Source file
Checksums from source
{
  "integrity": "sha512-kd+Qf68eNA2Ab+8CISVTTl8sHdofIBxcypan34Pz0VYacsSfgu+l0ip0BURbBWOOGmvU/m9AW/Btcw60x/5fHg==",
  "shasum": "c333bb5b3381dddb0d50a7d76b9f5ec5f00d277e",
  "tarball": "https://registry.npmjs.org/5m-js/-/5m-js-0.5.5.tgz",
  "fileCount": 7,
  "unpackedSize": 8415,
  "signatures": [
    {
      "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA",
      "sig": "MEQCIDzlq1mEaq4ZL/zRipxPbd9ENPsw4Jjkb45sh5QbYSA5AiAMV+daKYargOhAuC8+EtlwOmPHYyttjiI+yQzH0L6YHQ=="
    }
  ],
  "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj2V7lACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpmtQ//T4FXgThKIK6Tbm/e7qTOD/lng1sX+4YfybR/m+UcD/h7xwJh\r\nTxLc5ivIbh6b80knUHHvlAn6SpKeHJEeeZYy2HabP6zDc6gyARmyHSPZKAkV\r\nLuWppXgjh8nb+KZU4m30KwQnkcTyPkQRlt29C7MuVljePPC8Z1qTvNtE/tWQ\r\nz8gD+fBH83OUupEFaoJtAQKkeqVX4we1u7ucrOG9m6mQfDPt83wN89rWEkc+\r\ntE2XaFKjWow61iHfY2JIu0Dss68GGr9nNpIJjcvItmLY3lKkqJE+4XXU+A9b\r\no4oFdoBMWq3X6+TbnhHJJoHwPTpOWuwFmvMERzE6rpwLcmWRpFG5pIqE4Kr8\r\nLc+wfeIUKcowwZbIC5uFPCOd/gBZpDf1orponyybeMfz/0MzbBQOZPA0tVC8\r\nVjznQmgqlATcnq23Aq+24fP6rq2n76gn2QD90152m+z7MbZzdi0JFP7F73XD\r\nHd9Og/iISSBnkUazoQ5wOHlSVXgnlrPzUoe3+fPQQ6iMoSLvZVah+gztCqDX\r\nDMXguF33ezteis5PnLqV3gYyB5sQcPd/KltbTSc4MEHKc5fre7MZvF0s1hQC\r\nYj8w8unZPNIOJWvRyqHR5lSr9oQYaSerTRYke3GzzY2KdUI4OWR51f9t2rFW\r\nstPhD+73O0WN9kgUkuOApCZ45kgHxIbBzpA=\r\n=13l1\r\n-----END PGP SIGNATURE-----\r\n"
}

Repository

PENDING
0xwaleed/5m-js

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 20:37 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package_version:2df0706cd651aff76406a4dd279cfdb81bbceb845d962dceedcb36164445f437

Other collected versions

0.8.112 May0.8.012 May0.7.11 May0.7.026 Apr0.6.226 Apr0.6.131 JanView all collected versions →