Installs: 63

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 1

Forks: 0

Open Issues: 0

Language:JavaScript

dev-main / 1.0.x-dev 2025-07-04 12:51 UTC

This package is auto-updated.

Last update: 2025-07-04 12:51:10 UTC


README

Tools

1. Installation

composer require "infinity-it/tools"

2. required packages

  • package.json

    {
      "dependencies": {
        "tools": "file:vendor/infinity-it/tools"
      }
    }
  • run

    npm i

3. usage

import { /* ... */} from 'tools'

4. Refresh Token

updates the token in all relevant locations (Axios headers, meta tags, and input fields), and optionally runs a callback with the new token and authentication data.

  • route

    use \App\Http\Middleware\VerifyCsrfToken;
    Route::post('refreshToken', fn() => refreshToken())->withoutMiddleware(VerifyCsrfToken::class)->name('refreshToken');
  • js

    • use:
      import {csrf_update} from 'tools'
      import route from 'ziggy-js'
      
      csrf_update(route('refreshToken'), 'guard-name', /*callback(token, authData)*/null, axios)
    • globally use:
    axios.interceptors.response.use(
        response => response,
        async error => {
            const originalRequest = error.config
            if (error.response && error.response.status === 419 && !originalRequest._retry) {
                originalRequest._retry = true
                return new Promise((resolve, reject) => {
                    csrf_update(route('refreshToken'), 'web', (token, authData) => {
                        originalRequest.headers['X-CSRF-TOKEN'] = token
                        axios(originalRequest)
                            .then(resolve)
                            .catch(reject)
                    }, axios)
                })
            }
            return Promise.reject(error)
        }
    )

5. app translate

  • app.blade.php
<head>
  <script>
    window._locale = '{{ app()->getLocale() }}'
    window._translations = {!! cache('translations') !!};
  </script>
</head>
  • app.js
import {__, trans} from 'tools'
  • Provider
    • Laravel 10 and below: config/app.php
      'providers' => [
          ...
          /*
          * Package Service Providers...
          */
          InfinityIt\Tools\Providers\TranslationServiceProvider::class,
          ...
      ]
    • Laravel 11 and above : bootstrap/providers.php
      return [
          ...
          InfinityIt\Tools\Providers\TranslationServiceProvider::class,
      ];